C语言图书管理系统文档格式.docx
- 文档编号:16339738
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:26
- 大小:150.42KB
C语言图书管理系统文档格式.docx
《C语言图书管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《C语言图书管理系统文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
系统总体流程图如图2所示。
图2系统流程图
三详细设计
1create_link()创建函数
在主函数中,通过输入“1”对创建函数进行调用,通过管理员输入的创建书籍的数量,系统对输入信息进行计算,并和创建数量进行比较。
当小于创建数量时系统会重复显示让操作者输入书籍的基本信息:
编号、书名、出版社、作者、价格。
当输入数量等于要创建的书籍数量时,系统会自动显示主菜单。
函数流程图如图3所示。
图3create_link()创建函数流程图
插入函数流程图如图4所示。
将变量赋给头指针
开始
变量值大?
Y
N
寻找插入位置
结束
按编号大小插入
输入创建书籍的数量
输入数据并赋给变量
图4create_link()创建函数流程图
2delete_link()删除函数
在主函数中,通过输入“2”对创建函数进行调用。
当借阅者借阅某种图书,或者当管理者不需要某种图书时,就要对图书进行删除操作。
系统会提示管理员输入需要删除的图书的编号,当图书库中没有该图书时,系统会提示没有找到相应的书籍。
如果有该图书,系统会进行删除操作,并显示已删除。
删除函数流程图如图5所示。
图5delete_link()删除函数流程图
3print_link()全显函数
在主函数中,通过输入“3”对全显函数进行调用。
系统会按编号顺序显示当前图书库信息。
全显函数流程图如图6所示。
图6print_link()全显函数流程图
4modify_link()修改函数
在主函数中,通过输入4对修改函数进行调用。
调用函数后,先输入要修改书籍的编号,系统自动查找相应的书籍编号,然后将其删除。
若图书库中没找到
要删除的书籍,系统将会提示没有找到相关书籍。
修改函数如图7所示。
图7modify_link()修改函数
5功能模块的测试
(1)主界面
当进入系统时,系统会自动调用菜单函数,将所有功能显示在屏幕上。
主界面如图8所示。
图8主界显示图
(2)创建函数
根据提示1回车
请输入本次所创建的图书数:
1回车
请输入编号书名出版社作者价格
1父亲中国物资梁晓声29回车
(3)删除函数
根据提示2回车
显示结果如图9所示。
图9删除函数显示图
(4)全显函数
根据提示3回车
编号书名出版社作者价格
1父亲中国物资梁晓声29
(5)修改函数
根据提示4回车
请输入要修改书籍的号码:
1
此书籍的信息为:
1父亲中国物资梁晓声29
2父亲中国物资梁晓声30
修改成功!
四总结
通过近几天的课程设计,对C语言有了进一步认识,通过查找资料学习了结构体、链表的基本结构,明白了主函数和其他函数的关系。
对很多函数有了进一步认识,同时也学会了运用功能函数。
在老师的指导下学会了对软件的基本操作。
本次设计以图书管理系统为题目,对图书进行录入、删除、显示、修改等功能。
在本次设计中主要应用了链表,解决了添加、删除图书的无序性。
用结构体可以将不同类型的变量存储在相邻的存储单元中,解决了图书信息多、存储混乱的问题。
拿到题目时,感觉很茫然,无从下手。
通过从网上查阅相关资料,对图书管理系统有了一定的了解。
经过参考课本,明白了函数的定义、使用,对图书管理系统的设计有了自己的想法,接下来开始对各个模块进行设计。
在设计过程中遇到了相当大的问题,形参与实参的传递、数组的使用、结构体的定义、链表的使用都需要查询资料。
当程序基本结束时,又遇到更大的麻烦,在程序运行中接二连三的出现问题,经过自己耐心的查找、修改,终于解决了麻烦,看到了希望。
本次设计主要实现了图书的载入、删除、全显、修改等功能。
载入书籍模块可以将最新信息录入图书库;
删除书籍模块可以将过时书籍或丢失的书籍及时删除,以免影响管理员对图书库书籍的准确管理;
全显书籍模块可以将图书库中所有信息显示在主界面,随时查阅当前图书库信息;
修改书籍模块可以避免因输入错误信息而造成的失误。
由于时间和自己的能力有限,只能实现比较简单的功能。
本次设计没有实现对载入书籍信息的保存功能和按不同方式对图书查找的功能。
这次课程设计使我受益匪浅,不但磨练了我对追求知识的毅力,而且增强了对以后学习的信心。
参考文献
[1]谭浩强,张基温.C语言程序设计教程[M].第3版.高等教育出版社,2006
[2]刘振安.C语言程序设计[M].机械工业出版社,2007
附录
源程序如下:
#include<
stdio.h>
iostream>
usingnamespacestd;
structbook{
intnumber;
charname[20];
charaddr[30];
charwriter[12];
doubleprice;
structbook*next;
};
typedefstructbooknode;
typedefnode*link;
voidprintstart(){
printf("
------------------------------------\n"
);
}
voidWrong(){
\n=====提示:
输入错误!
\n"
voidNotfind(){
printf("
没有找到相应书籍!
voidprintc(){
编号\t书名\t出版社\t作者\t价格\n"
linkinserte_link1(linkhead){
char*na=newchar[12];
char*ad=newchar[30];
char*writer=newchar[12];
linkpPre,p2,pBac;
请输入"
printc();
scanf("
%d%s%s%s%lf"
&
number,na,ad,writer,&
price);
p2=newnode;
p2->
number=number;
strcpy(p2->
name,na);
addr,ad);
writer,writer);
price=price;
next=NULL;
deletena;
if(p2->
number>
head->
number){
next=head;
head=p2;
returnhead;
}
else{
pPre=head;
pBac=pPre->
next;
while
(1){
pBac->
number&
&
p2->
number<
pPre->
next=pBac;
pPre->
next=p2;
pPre=pBac;
pBac=pBac->
linkcreate_link(linkhead){
head=newnode;
head->
number=-1;
intm,i;
请输入本次所创建的图书数:
scanf("
%d"
m);
for(i=0;
i<
m;
i++)
head=inserte_link1(head);
intprint_link(linkhead){
linkp1;
p1=head;
if(p1->
next==NULL){
printstart();
此图书库为空!
return0;
while(p1->
next){
cout<
<
p1->
'
\t'
name<
addr<
writer<
price<
endl;
p1=p1->
}
voidmenu(){
\n\n\n"
--------------------------------------------------------------------\n"
\t1载入书籍信息\t\t\t\t2删除书籍信息\n\n"
\t3全显书籍信息\t\t\t\t4修改书籍信息\n\n"
\t0退出系统\n\n"
*******************************************************************"
linkdelete_link(linkhead){
if(head==NULL){
///////////////////////////\n"
returnNULL;
linkp1,p2;
intnum;
请输入所要删除书籍的号码:
num);
while(head!
=NULL&
number==num){/*所删除的在链头*/
p2=head;
head=head->
deletep2;
已删除!
p2=head->
while(p2!
=NULL){
number==num){
p1->
next=p2->
else
p1=p2;
p2=p1->
Notfind();
linkmodify_link(linkhead){
intnum,number;
char*na=newchar[20];
请输入要修改书籍的号码:
next!
此书籍的信息为:
cin>
>
na>
ad>
writer>
price;
strcpy(p1->
修改成功!
voidmain(){
intt;
linkhead=NULL;
intchoice;
do{
menu();
请输入操作的序号!
choice);
switch(choice){
case1:
head=create_link(head);
break;
case2:
head=delete_link(head);
case3:
t=print_link(head);
case4:
head=modify_link(head);
case0:
谢谢使用!
exit(0);
default:
Wrong();
}while
(1);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 图书 管理 系统