C语言图书管理系统课程设计报告.docx

上传人:碎****木 文档编号:95047157 上传时间:2023-08-14 格式:DOCX 页数:22 大小:118.85KB
返回 下载 相关 举报
C语言图书管理系统课程设计报告.docx_第1页
第1页 / 共22页
C语言图书管理系统课程设计报告.docx_第2页
第2页 / 共22页
点击查看更多>>
资源描述

《C语言图书管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《C语言图书管理系统课程设计报告.docx(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第三章 图书治理系统的设计与实现3.1 系统的需求分析图书登记治理系统作为一个应用软件将为学校的教师和学生供给一个对学校图书馆深入了解并借阅、还书的平台。依据系统界面的提示信息对图书馆信息进展查询、初始化等操作系统功能需求分析描述如下:(1) 系统主菜单:进入系统和退出系统(2) 功能菜单:显示可以进展的操作(3) 查询主菜单:依据图书编号、书名、作者进展查询,并可显示全部图书信息(4) 借还书主菜单:可以进展借书和还书等操作3.2 系统的设计3.2.1 系统的总统设计下面从系统的整体流程的功能模块、系统界面及数据构造进展总体设计。(1) 总体思想本系统主要设计思想是实现图书馆的功能机治理系统

2、信息的查询、借书、还书等主要功能。系统的设计方法是构造化实际方法,系统用C语言进开放发用户可以清楚的了解图书馆内的状况。2系统模块构造图依据需求分析结果,图书治理系统可以分为三大模块:查询0图书治理系统图书模块、借书功能模块、还书功能模块。系统模块构造如图:图图借还书书书书管查功功理询能能主系系系菜统统统单3.2.2 系统的概要设计系统主菜单。显示系统的主菜单,里面有相应的功能代码,依据选择各功能代码进入不同的界面。功能主要包括:退出系统、查询图书、借书、还书。查询图书信息进入此菜单功能模块,输入您要查询的图书的编号、名字、作者等。图书查询模块流程如图:开头提示输入图书编号、书名、作者1输入正

3、确否是是重输入否退出系统3.3 测试结果系统主界面2功能菜单查询系统菜单借还系统菜单3.4 源代码#include#include#includetypedef struct linkchar number100; char bookname100; char author100; char publish100; char time100; float price;char status100; struct link *next;link;link *Cbookint n=0;link *p,*q,*head;FILE *fp;fp=fopen(“图书信息.txt“,“r+“); if(f

4、p=NULL)printf(“没有找到文件,请检查“); p=(link *)malloc(sizeof(link); if(p=NULL)printf(“申请内存出错!n“);fscanf(fp,“%s%s%s%s%s“,p-number,p-bookname,p-author,p-publish,p-time); fscanf(fp,“%f“,&p-price);fscanf(fp,“%s“,p-status); while(feof(fp)=0) n+;if(n=1)head=p;elseq=p;p=(link *)malloc(sizeof(link); if(p=NULL)print

5、f(“申请内存出错!n“);fscanf(fp,“%s%s%s%s%s“,p-number,p-bookname,p-author,p-publish,p-time); fscanf(fp,“%f“,&p-price);fscanf(fp,“%s“,p-status); q-next=p;10p-next=NULL; fclose(fp);printf(“信息已录入!“); return head;void mainmenuprintf(“n*n“);printf(“n*欢送使用图书治理系统*n“);printf(“n*1.进入系统0.退出系统*n“);printf(“n*n“); print

6、f(“n请选择“);void menu1printf(“n*n“);printf(“n*1.进入图书查询系统*n“);printf(“n*2.进入图书借还系统*n“);printf(“n*3.保存全部图书信息*n“);printf(“n*4.返回上级菜单*n“);printf(“n*n“); printf(“n 请选择“);void cxmenuprintf(“n*n“);printf(“n*1.显示全部图书信息*n“);printf(“n*2.按编号查询图书*n“);printf(“n*3.按书名查询图书*n“);printf(“n*4.按作者查询图书*n“);printf(“n*5.返回上

7、级菜单*n“);printf(“n*n“);printf(“n 请选择“);void jhmenuprintf(“n*n“); printf(“n*1.借书*n“);printf(“n*2.还书*n“);printf(“n* 3.返回上级菜单*n“); printf(“n*n“); printf(“n 请选择“);void print(link *head)link *p; p=head; printf(“n“);printf(“n*n“);printf(“n 编号tt 书名tt 作者tt 出版社tt 出版时间tt 价格tt 状态n“);while(p!=NULL)printf(“n“);pr

8、intf(“%st%st%st%st%s“,p-number,p-bookname,p-author,p-publish,p-time); printf(“tt%.2f“,p-price); printf(“tt%s“,p-status); printf(“n“);p=p-next;voidhold(link *head)link *p;FILE *fp;fp=fopen(“图书信息.txt“,“w+“); if(fp=NULL)printf(“文件操作出错!“); exit(1);p=head; for(;p!=NULL;p=p-next)fprintf(fp,“%st%st%st%st%s

9、“,p-number,p-booknam e,p-author,p-publish,p-time);fprintf(fp,“tt%.2f“,p-price); fprintf(fp,“tt%s“,p-status); fprintf(fp,“n“);fclose(fp);printf(“信息已保存。“);void holdcx(link *t)link *p=NULL;FILE *fp;fp=fopen(“查询.txt“,“a+“); p=t;fprintf(fp,“查询到的信息为:n“); fprintf(fp,“n“);fprintf(fp,“n*n“);fprintf(fp,“n 编号t

10、t 书名tt 作者tt 出版社tt 出版时间tt 价格tt 状态n“);fprintf(fp,“n“);fprintf(fp,“%st%st%st%st%s“,p-number,p-booknam e,p-author,p-publish,p-time);fprintf(fp,“tt%.2f“,p-price); fprintf(fp,“tt%s“,p-status); fprintf(fp,“n“);fclose(fp);printf(“信息已保存“);link *findnumber(link *head)char key100; link *h,*t1=NULL;printf(“请输入图

11、书的编号:“); getchar;gets(key); for(h=head;h!=NULL;h=h-next)if(strcmp(key,h-number)=0)t1=h; break;return t1;link *findboookname(link *head)char key100; link *h,*t2=NULL;printf(“请输入图书的书名:“); getchar;gets(key); for(h=head;h!=NULL;h=h-next)if(strcmp(key,h-bookname)=0)t2=h; break;returnt2;link *findauthor(l

12、ink *head)char key100; link *h,*t3=NULL;printf(“请输入作者姓名:“); getchar;gets(key); for(h=head;h!=NULL;h=h-next)if(strcmp(key,h-author)=0)t3=h; break;returnt3;link *sortnumber(link *head)link *p,*q,*temp;temp=(link *)malloc(sizeof(link); if(temp=NULL)printf(“申请内存出错!“); exit(1);for(p=head;p!=NULL;p=p-next

13、)for(q=p-next;q!=NULL;q=q-next)if(strcmp(p-number,q-number)0)strcpy(temp-number,p-number); strcpy(temp-bookname,p-bookname); strcpy(temp-author,p-author); strcpy(temp-publish,p-publish); strcpy(temp-time,p-time);temp-price=p-price; strcpy(temp-status,p-status);strcpy(p-number,q-number); strcpy(p-boo

14、kname,q-bookname); strcpy(p-author,q-author); strcpy(p-publish,q-publish); strcpy(p-time,q-time);p-price=q-price;strcpy(p-status,temp-status);strcpy(q-number,temp-number); strcpy(q-bookname,temp-bookname); strcpy(q-author,temp-author); strcpy(q-publish,temp-publish); strcpy(q-time,temp-time);q-price

15、=temp-price;strcpy(q-status,temp-status);return head;link *borrowbook(link *head)link *h,*p;char ch,ch1100=“在库“,ch2100=“不在库“; h=head;printf(“n*n“);printf(“tt 欢送使用借书系统n“); p=findboookname(h);if(p=NULL)printf(“借书失败,书库中没有这本书!“); else if(strcmp(p-status,ch2)=0) printf(“借书失败,图书不在库!“);elseprintf(“确认借出?Y/N

16、:“); scanf(“%c“,&ch); getchar; if(ch=”Y”|ch=”y”)strcpy(p-status,ch2);printf(“借书成功,请返回上级菜单保存信息!“);if(ch=”N”|ch=”n”)printf(“你没有借任何书!“);return head;link *returnbook(link *head)link *h,*p;char ch,ch1100=“在库“,ch2100=“不在库“; h=head;printf(“n*n“);printf(“tt 欢送使用还书系统n“);p=findboookname(h); if(p=NULL)printf(“

17、还书失败,这不是本书库的书!“); elseprintf(“确认还书?Y/N:“); scanf(“%c“,&ch); getchar; if(ch=”Y”|ch=”y”)strcpy(p-status,ch1);printf(“还书成功,请返回上级菜单保存信息!“);if(ch=”N”|ch=”n”)printf(“你没有还书!“);return head;void mainint a,b,c,d; link *h,*t; L:system(“cls“); mainmenu; while(1)scanf(“%d“,&a); switch(a)case 1:B: system(“cls“);

18、menu1;while(1)scanf(“%d“,&b); switch(b)case 1:system(“cls“); cxmenu; while(1)scanf(“%d“,&c); switch(c)case 1:print(h);break; case 2:t=findnumber(h); if(t=NULL)printf(“没有要查询的图书!“); if(t!=NULL)printf(“查询的图书为:“); printf(“n“);printf(“n*n“);printf(“n 编号tt 书名tt 作者tt 出版社tt 出版时间tt 价格tt 状态n“);printf(“n“); pr

19、intf(“%st%st%st%st%s“,t-number,t-bookname,t-author,t-publish,t-time);printf(“tt%.2f“,t-price); printf(“tt%s“,t-status); printf(“n“);break; case 3:t=findboookname(h); if(t=NULL)printf(“没有要查询的图书!“); if(t!=NULL)printf(“查询的图书为:“); printf(“n“);printf(“n*n“);printf(“n 编号tt 书名tt 作者tt 出版社tt 出版时间tt 价格tt 状态n“

20、);printf(“n“); printf(“%st%st%st%st%s“,t-number,t-bookname,t-author,t-publish,t-time);printf(“tt%.2f“,t-price); printf(“tt%s“,t-status); printf(“n“);break; case 4:t=findauthor(h); if(t=NULL)printf(“没有要查询的图书!“); if(t!=NULL)printf(“查询的图书为:“); printf(“n“);printf(“n*n“);printf(“n 编号tt 书名tt 作者tt 出版社tt 出版

21、时间tt 价格tt 状态n“);printf(“n“); printf(“%st%st%st%st%s“,t-number,t-bookname,t-author,t-publish,t-time);printf(“tt%.2f“,t-price); printf(“tt%s“,t-status); printf(“n“);break; case 5:goto B;break;break; case 2:system(“cls“); jhmenu; while(1)scanf(“%d“,&d); switch(d)case 1:borrowbook(h);break; case 2:retur

22、nbook(h);break; case 3:goto B;break;break; case 3:hold(h);break; case 4:goto L;break;break; case 0:printf(“ttt 感谢使用,再见!“); exit(0);第四章 心得体会经过一个多星期的编译原理课程设计,在我的努力下,顺当完成该课程设计。通过该课程设计,把握了编译程序工作的根本过程及其各阶段的根本任务,生疏了编译程序总流程框图,了解了编译程序的生成过程及其相关的技术,对课本上的学问也有了更深的理解。教师常说,课本上的学问是机械的,外表的,要学会去运用,要举一反三。现在最终深刻的了解了这句

23、话。经过这次的课程设计, 觉察书本上很浅显的学问变的更为简洁,同样,对试验原理也了有更深的理解。知道和理解了该理论在计算机中是怎样执行的, 对该理论在实践中的应用有深刻的理解 。通过该课程设计,把死板的课本学问变得生动好玩,激发了学习的乐观性。能够把课堂上学的学问通过自己设计的程序表示出来,加深了对理论学问的理解。课程设计中程序比较简洁,在调试时应当认真,在程序调试时,留意指针,将不必要的命令去除。除了课堂外,课程设计是最能学到东西的,最考验人的。在做课程设计的这段时间,时刻都感到自己学的学问有多么的贫瘠。经过这次课程设计,让我对C+这门语言有了更深的生疏,操作力气有了提高要想是写出的代码能运行,需要急躁细心,毅力以及充分的体力。只有经过屡次编辑,屡次编译,再屡次运行,才能编写出更好的程序,有时候需要屡次的更正才能到达所要的运行结果。参考文献谭洁强 C 程序设计 清华大学出版社张基温 C 程序设计案例教程 清华大学出版社王宏C#程序设计案例教程 清华大学出版社

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁