2022年C语言图书管理系统 .pdf
《2022年C语言图书管理系统 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言图书管理系统 .pdf(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程报告课 程名 称:程序设计实践专 业 班 级 :学 生 姓 名 :学号 :任 课 教 师 :学期 :名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 21 页 - - - - - - - - - 1课程报告任务书题目图书信息管理系统主要内容开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等) 。使之能提供以下基本功能:(1)图书信息录入功能 (图书信息用文件保存 )输入
2、(2)图书信息浏览功能输出(3)查询功能 (至少一种查询方式 )、排序功能 (至少一种排序方式 ):按书名查询按作者名查询 按照价钱排序按出版时间排序等等(4)图书信息的删除与修改扩展功能:可以按照自己的程度进行扩展。比如(1)简单的权限处理(2)报表打印功能( 3)甚至根据自己情况,可以加上学生信息,并扩充为图书借阅系统。(4)模糊查询(5)综合查询(6)统计功能比如统计处某一类别的图书信息或 筛选出小于指定数量库存的图书信息等等,总之,可以根据自己需求进行分析功能。任务要求一、提交材料应包括:(1)系统源代码(2)课程报告二、整个设计过程具体要求(1)需求分析要求学生对案例系统进行分析,设
3、计出需要完成的功能,完善各个模块的调用关系;(2)设计过程要求学生进一步明确各模块调用关系,进一步完善模块函数细节(函数名、参数、返回值等)(3)实现过程要求学生养成良好的编码习惯、完成各个模块并进行测试,最终完成系统整体测试;(4)总结阶段按照要求完成系统设计和实现报告,并进行总结、答辩。成绩评定报告撰写情况( 30 分)系统完成情况( 30分)答辩情况( 40 分)总分内容20 分规范程度5 分程序测试5 分基本功能 20 分扩展功能 10 分自述情况 10 分答辩情况30 分成绩评定教师:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -
4、 - - - 名师精心整理 - - - - - - - 第 2 页,共 21 页 - - - - - - - - - 21 需求分析本系统主要用于图书馆管理员的图书管理,主要任务是通过建立图书管理系统,完善学校图书录入以及图书信息的管理,通过查询可立即定位该图书的相应的信息,可以对图书进行录入、查询、浏览、增加、修改、排序等。通过建立图书管理系统,把图书馆的图书管理、读者管理、图书借阅管理等日常管理工作实行计算机统一管理,以提高工作效率和管理水平。这些管理包括:1、 图书基本信息的管理,包括增加、修改、查询、预约管理;2、 读者基本信息的管理,包括增加、修改、查询管理;3、系统管理,主要是维护
5、图书信息和退出系统。图书管理模块主要用来录入和修改图书的基本信息,图书录入用于首次录入图书信息,输入书名后快速定位图书,然后显示要修改的图书信息进行相应的修改;系统管理模块主要实现管理员的功能,管理员注册自己的账号后,输入正确的密码信息才能登录系统,管理员可以进行系统的维护。也可以对密码进行修改。其中处理的数据:运用结构体、链表处理编号、书名、作者、出版社、图书类型、出版日期、价格、在库状态。基本包含了图书管理所需的书籍信息,而且基本框架层次分明,条理清晰,可以大大的方便图书的管理操作。2 概要设计结构体的声明:structbookintnum;char bname50;char wname2
6、0;char press50;char sort50;inttime;floatprice;structbook *next;定义了一些函数:structbook *creatbook();/ 创建链表structbook *addbook(structbook *head);/ 添加图书名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 21 页 - - - - - - - - - 3intyanzheng(structbook *head,intm);/ 验证新添加的图书
7、编码是否已存在voiddeletebook(structbook *head);/ 删除图书voidfprint(structbook *head);/ 将链表写入文件structbook *load();/ 从文件中读取信息并建成链表实现函数调用:利用循环语句while() 和选择语句 swithch() 或 if ()实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。主要实现了图书的建立、插入、查询、删除、存储、修改、保存、查询、筛选、排序等功能。3 详细设计算法实现的源程序比如:if(num=0)break;elseprintf(请输入图书名 :);scan
8、f(%s,bname);getchar();运用了 if的选择语句,以及后面的break 语句等,条理清晰,有耳目一新的感觉。登录模块intmain()intchoice,n,x,y=1,c,c1=123456;char a,d,b10,b110=lyq;structbook *head=NULL;while(y)system(cls);printf(nnnnnnn);printf(*欢迎光临*nn);printf(*图 书 信 息 管 理 系 统*nnn);printf(nn);printf(=1- 用户登录 =n);printf(=0- 退出系统 =n);printf(请输入您的选择 :)
9、;scanf(%d,&n);printf(n);getchar();名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 21 页 - - - - - - - - - 4switch(n)case 0:y=0;break;case 1:printf(请输入您的用户名 :);gets(b);printf(n);printf(请输入您的密码 :);scanf(%d,&c);printf(n);if(strcmp(b,b1)!=0|c!=c1)printf(验证失败 , 请重新输入
10、!n);scanf(%c,&d);getchar();system(cls);elseprintf(验证通过 ! 请按 Enter 键进入!n);scanf(%c,&d);getchar();录入数据并形成链表structbook *creatbook()structbook *head,*tail,*p;intnum,time,n;char bname50,wname20,press50,sort50;floatprice;intsize=sizeof(structbook);head=tail=NULL;printf(请输入图书编号 :);scanf(%d,&num);printf(请输入
11、图书名 :);scanf(%s,bname);getchar();printf(请输入作者名 :);scanf(%s,wname);getchar();printf(请输入出版社 :);scanf(%s,press);getchar();printf(请输入类别 :);scanf(%s,sort);getchar();printf(请输入出版时间 :);scanf(%d,&time);getchar();printf(请输入价格 :);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第
12、5 页,共 21 页 - - - - - - - - - 5scanf(%f,&price);getchar();while(1)p=(structbook *)malloc(size);p-num=num;strcpy(p-bname,bname);strcpy(p-wname,wname);strcpy(p-press,press);strcpy(p-sort,sort);p-time=time;p-price=price;p-next=NULL;if(head=NULL)head=p;elsetail-next=p;tail=p;doprintf(请输入图书编号 :);scanf(%d,
13、&num);n=yanzheng(head,num);if(n=0)break;elseprintf(您输入的编号已存在 , 请重新输入 !n);while(1);returnhead;插入结点,并且插入后仍按一定顺序structbook *addbook(structbook *head)structbook *ptr,*p1,*p2,*p;char bname50,wname20,press50,sort50;intsize=sizeof(structbook);intnum,time,n=1;floatprice;doprintf(请输入图书编号 :);scanf(%d,&num);n=
14、yanzheng(head,num);if(n=0)break;elseprintf(您输入的编号已存在 , 请重新输入 !n);while(1);printf(请输入图书名 :);scanf(%s,bname);getchar();printf(请输入作者名 :);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 21 页 - - - - - - - - - 6scanf(%s,wname);getchar();printf(请输入出版社 :);scanf(%s,pres
15、s);getchar();printf(请输入类别 :);scanf(%s,sort);getchar();printf(请输入出版时间 :);scanf(%d,&time);getchar();printf(请输入价格 :);scanf(%f,&price);getchar();p=(structbook *)malloc(size);p-num=num;strcpy(p-bname,bname);strcpy(p-wname,wname);strcpy(p-press,press);strcpy(p-sort,sort);p-time=time;p-price=price;p2=head;
16、ptr=p;while(ptr-nump2-num)&(p2-next!=NULL)p1=p2;p2=p2-next;if(ptr-numnum)if(head=p2)head=ptr;elsep1-next=ptr;p-next=p2;elsep2-next=ptr;p-next=NULL; returnhead;验证添加的图书编号是否已存在intyanzheng(structbook *head,intm)structbook *p;p=head;while(p!=NULL)if(p-num=m)break;p=p-next;if(p=NULL)return0;名师资料总结 - - -精品
17、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 21 页 - - - - - - - - - 7elsereturn1;将新链表写入文件中voidfprint(structbook *head)FILE *fp;char ch=1;structbook *p1;if(fp=fopen(f1.txt,w)=NULL)printf(Fileopen error!n);exit(0);fputc(ch,fp);for(p1=head;p1;p1=p1-next)fprintf(fp,%d%s%s%s%s%
18、d%fn,p1-num,p1-bname,p1-wname,p1-press,p1-sort,p1-time,p1-price);fclose(fp);从文件中读取图书信息structbook *load()FILE *fp;char ch;structbook *head,*tail,*p1;head=tail=NULL;if(fp=fopen(f1.txt,r)=NULL)printf(Fileopen error!n);exit(0);ch=fgetc(fp);if(ch=1)while(!feof(fp)p1=(structbook *)malloc(sizeof(structbook
19、);fscanf(fp,%d%s%s%s%s%d%fn,&p1-num,p1-bname,p1-wname,p1-press,p1-sort,&p1-time,&p1-price);if(head=NULL)head=p1;elsetail-next=p1;tail=p1;tail-next=NULL;fclose(fp);returnhead; elsereturnNULL;将整个链表的信息输出voidprint_book(structbook *head)structbook *ptr;if(head=NULL)printf(n没有信息 !n);名师资料总结 - - -精品资料欢迎下载 -
20、 - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 21 页 - - - - - - - - - 8return;printf(图书信息列表如下 n);printf(=n);printf(编号图书名作者名出版社类别出版时间价格n);for(ptr=head;ptr;ptr=ptr-next)printf(%d%s%s%s%s%d%.2fn,ptr-num,ptr-bname,ptr-wname,ptr-press,ptr-sort,ptr-time,ptr-price);printf(=n);删除图书信息voiddel
21、etebook(structbook *head)inta;char b,ch=1;structbook *p1,*p2;FILE *fp;printf(请输入要删除的图书编号 :);scanf(%d,&a);p1=head;if(p1-num=a&p1-next=NULL)/ 对于文件中只有一组数据printf(是否清空文件 !(y/n)n);getchar();scanf(%c,&b);getchar();switch(b)case n:break;case y:if(fp=fopen(f1.txt,w)=NULL)printf(Fileopen error!n);exit(0);fclo
22、se(fp);printf(文件已清空 !n);elsewhile(p1-num!=a&p1-next!=NULL)p2=p1;p1=p1-next;if(p1-next=NULL)if(p1-num=a)p2-next=NULL;printf(是否确定从文件中彻底删除该图书?(y/n)n);getchar();scanf(%c,&b);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 21 页 - - - - - - - - - 9switch(b)case n:brea
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C语言图书管理系统 2022 语言 图书 管理 系统
限制150内