




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 图书管理系统1.课程设计的目的一直以来人们使用传统的人工方式管理图书馆的日常工作,对于图书馆的借书和还书过程处理借书、还书业务流程的效率很低,其次处理能力比较低为方便对图书馆书籍、读者资料、借还书等进行高效的管理,特编写该程序以提高图书馆的管理效率。使用该程序之后,工作人员可以查询某位读者、某种图书的借阅情况,还可以对当前图书借阅情况进行一些统计,给出统计表格,以便全面掌握图书的流通情况。通过本次课程设计,可以增进对C语言的了解,培养学生的动手动脑能力,加强了对利用C语言编写系统的能力,为今后编写相关程序打下基础。经过本次程序设计实践,完成用C语言一个小型软件的设计,可以学习C语言程序设计的
2、基本方法,掌握常用程序调试的方法和技巧,理解结构化程序设计的基本理念,理解程序设计的系统分析,概要设计,编码,调试等过程,培养基本算法的设计能力,培养严密逻辑思考能力,培养程序设计的实验能力,培养团队协作精神。本次课程设计我设计主要目的是利用Visual C+6.0开发工具编制图书借阅管理系统中数据的录入,用以实现图书数据的输入添加图书信息,以便于图书的浏览,查询和删除,通过图书信息的录入,使得图书借阅管理系统得以运行。2设计方案论证2.1系统设计思路图书管理系统应具有信息录入,浏览,查询,修改,删除等功能,所以这个图书管理系统分为6个部分,各模块功能如下:(1)图书信息录入模块:添加新书的信
3、息如图书登陆号,图书书名,图书作者名,图书出版社,图书出版时间,图书分类号,图书价格,(2)图书信息浏览模块:显示全部图书信息。(3)图示信息查询模块:根据查询的条件查寻需要的图书借阅记录。(4)图书信息修改模块:根据所要修改的图书信息进行修改。(5)图书信息删除模块,删除相关图书的借阅记录。(6)退出系统模块:退出图书借阅管理系统。主功能模块图如图1所示:图书管理系统图书信息录入图书信息浏览图书信息查询图书信息修改图书信息删除退出系统图1 主功能模块图2.2图书信息录入模块的设计思路定义结构体指针变量 s指向开辟的新结点首地址 p为中间变量,利用调用的函数可以方便快捷的对图书信息的录入,遍历
4、到尾结点,p指向尾结点依次进行图书信息登录号,书名,作者名,出版社,出版时间,图书分类号,图书价格的信息输入,待到录入完成一本图书信息后,设定是否继续添加,方便图书入库和更新。定义flag函数,方便用户选择重复输入,避免多次重新输入的麻烦。定义fflush函数,对图书信息按要求录入。最后利用return语句返回主函数。3.设计结果与分析3.1主界面的设计代码编写完之后,检查有无错误,然后执行程序,进入界面。主界面的主要功能为:使本系统操作起来更为简单明了,便于用户操作使用。对于图书信息的管理其结果如下图所示:图2主界面3.2图书信息录入模块的设计进入选择菜单后,输入数字1,进入图书信息录入模块
5、,根据系统提示输入图书名,图书作者等信息。本模块的主要功能为:对图书信息按要求依次进行录入,用于添加图书信息,进行图书信息的储存,便于对图书信息的浏览、修改和删除。本模块使用效果图如图所示:图3图书信息录入的界面图图书信息录入模块的代码如下:void InsertDoc(struct books_list *head) /*定义结构体指针变量 s指向开辟的新结点首地址 p为中间变量*/ struct books_list *s, *p; char flag=Y; /*定义flag,方便用户选择重复输入*/ p=head; /*遍历到尾结点,p指向尾结点*/ while(p-next!= NUL
6、L) p=p-next; /*开辟新空间,存入数据,添加进链表*/ while(flag=Y|flag=y) s=(struct books_list *)malloc(sizeof(struct books_list); printf(n 请输入图书登陆号:); fflush(stdin); scanf(%s,s-loginnum); printf(n 请输入图书书名:); fflush(stdin); scanf(%s,s-bookname); printf(n 请输入图书作者名:); fflush(stdin); scanf(%s,s-author); printf(n 请输入图书出版社
7、:); fflush(stdin); scanf(%s,s-publisher); printf(n 请输入图书出版时间:); fflush(stdin); scanf(%s,s-pbtime); printf(n 请输入图书分类号:); fflush(stdin); scanf(%s,s-classfy); printf(n 请输入图书价格:); fflush(stdin); scanf(%f,&s-price); printf(n); p-next=s; /*将新增加的节点添加进链表*/ p=s; /*p指向尾节点,向后移*/ s-next=NULL; printf( 添加成功!); pr
8、intf(n 继续添加?(Y/N):); fflush(stdin); scanf(%c,&flag); printf(n); if(flag=N|flag=n) break; else if(flag=Y|flag=y) continue; save(head); /*保存数据至文件*/ return;4.设计体会这次图书借阅管理系统课程设计,我主要采用是用Visual C+6.0开发工具编制。在这次课程设计当中,我受益匪浅,就图书借阅管理这个课题,我实现了数据的输入和输出,能通过直接写程序进行简单的操作。在这次课程设计中,虽然没有使用库函数和文件操作,但是自己扎实的掌握了定义函数和调用函数
9、,在小组共同努力下完成了这次课程设计,有种自豪感,从开始不清晰的思路到完成程序设计,这也是一种跨越。通过这次课程设计,使我更加扎实的掌握了C语言方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后终于游逆而解。同时,在课程设计过程中我学得到很多实用的知识。编写程序中,真的是细节决定成败,因为不管程序的语句是多是少,但是只要有一条语句或语法不正确,就不能使程序得到所需要的结果。没能够使自己编写出来的程序等到想要的结果,意味着这是一个不理想的
10、程序,对于本次编写来说则是失败的。我们认为,在这学期的实验中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。锻炼自己的c 语言编程能力,养成良好的c语言编程风格。不管怎样,这些都是一种锻炼,一种知识的积累,能力的提高。完全可以把这个当作基础东西,只有掌握了这些最基础的,才可以更进一步,取得更好的成绩。很少有人会一步登天吧。永不言弃才
11、是最重要的。5参考文献1 谭浩强著.C程序设计(第三版).北京:清华大学出版社,2005 46-542 谭浩强著.C程序设计教程.北京:清华大学出版社,2005 72-863 C编写组编.常用C语言用法速查手册.龙门书局,1995 100-1204 H M Peitel,P J Deitel.C How to Program.Second Edition.蒋才鹏等译.C程序设计教程.北京;机械工业出版社,2000 78-905 Herbert Schildt著。戴健鹏译.C语言大全(第二版).北京:电子工业出版社,1994 92-113附录:源程序include#include#include
12、#includestruct books_list char author20; char bookname20; char publisher20; char pbtime15; char loginnum10; float price; char classfy10; struct books_list * next; ; struct books_list * Create_Books_Doc(); void InsertDoc(struct books_list * head); void DeleteDoc(struct books_list * head); void Print_
13、Book_Doc(struct books_list * head);void search_book(struct books_list * head); void info_change(struct books_list * head); void save(struct books_list * head);struct books_list * Create_Books_Doc() struct books_list * head; head=(struct books_list *)malloc(sizeof(struct books_list); /*分配头节点空间*/ head
14、-next=NULL; /*头节点指针域初始化,定为空*/ return head;void save(struct books_list * head) struct books_list *p; FILE *fp; p=head; fp=fopen(data.txt,w+); /*以写方式新建并打开 data.txt文件*/ fprintf(fp,n); /*向文件输出表格*/ fprintf(fp,登录号 书 名 作 者 出版单位 出版时间 分类号 价格 n); fprintf(fp,n); while(p-next!= NULL) p=p-next; fprintf(fp,%-6.6s
15、%-10.10s%-10.10s%-10.10s%-12.12s%-6.6s%.2f n,p-loginnum,p-bookname,p-author,p-publisher,p-pbtime,p-classfy,p-price); fprintf(fp,n); fclose(fp); printf( 已将图书数据保存到 data.txt 文件n);void InsertDoc(struct books_list *head) struct books_list *s, *p; char flag=Y; /*定义flag,方便用户选择重复输入*/ p=head; while(p-next!=
16、NULL) p=p-next; /*开辟新空间,存入数据,添加进链表*/ while(flag=Y|flag=y) s=(struct books_list *)malloc(sizeof(struct books_list); printf(n 请输入图书登陆号:); fflush(stdin); scanf(%s,s-loginnum); printf(n 请输入图书书名:); fflush(stdin); scanf(%s,s-bookname); printf(n 请输入图书作者名:); fflush(stdin); scanf(%s,s-author); printf(n 请输入图书
17、出版社:); fflush(stdin); scanf(%s,s-publisher); printf(n 请输入图书出版时间:); fflush(stdin); scanf(%s,s-pbtime); printf(n 请输入图书分类号:); fflush(stdin); scanf(%s,s-classfy); printf(n 请输入图书价格:); fflush(stdin); scanf(%f,&s-price); printf(n); p-next=s; /*将新增加的节点添加进链表*/ p=s; /*p指向尾节点,向后移*/ s-next=NULL; printf( 添加成功!);
18、 printf(n 继续添加?(Y/N):); fflush(stdin); scanf(%c,&flag); printf(n); if(flag=N|flag=n) break; else if(flag=Y|flag=y) continue; save(head); /*保存数据至文件*/ return;void search_book(struct books_list *head) struct books_list * p; char temp20; p=head; if(head=NULL | head-next=NULL) /*判断数据库是否为空*/ printf( 图书库为空
19、!n); else printf(请输入您要查找的书名: ); fflush(stdin); scanf(%s,temp); /*指针从头节点开始移动,遍历至尾结点,查找书目信息*/ while(p-next!= NULL) p=p-next; if(strcmp(p-bookname,temp)=0) printf(n图书已找到!n); printf(n); printf(登录号: %stn,p-loginnum); printf(书名: %stn,p-bookname); printf(作者名: %stn,p-author); printf(出版单位: %stn,p-publisher);
20、 printf(出版时间: %stn,p-pbtime); printf(分类号: %stn,p-classfy); printf(价格: %.2ftn,p-price); if(p-next=NULL) printf(n查询完毕!n); return;void Print_Book_Doc(struct books_list * head) struct books_list * p; if(head=NULL | head-next=NULL) /*判断数据库是否为空*/ printf(n 没有图书记录! nn); return; p=head; printf(n); printf(登录号
21、 书 名 作 者 出版单位 出版时间 分类号 价格 n); printf(n); /*指针从头节点开始移动,遍历至尾结点,依次输出图书信息*/ while(p-next!= NULL) p=p-next; printf(%-6.6s%-10.10s%-10.10s%-10.10s%-12.12s%-6.6s%.2f n,p-loginnum,p-bookname,p-author,p-publisher,p-pbtime,p-classfy,p-price); /*循环输出表格*/ printf(n); printf(n);void info_change(struct books_list
22、* head) struct books_list * p; int panduan=0; char temp20; p=head; printf(请输入要修改的书名:); scanf(%s,temp); while(p-next!= NULL) p=p-next; if(strcmp(p-bookname,temp)=0) printf(n 请输入图书登陆卡号:); fflush(stdin); scanf(%s,p-loginnum); printf(n 请输入图书书名:); fflush(stdin); scanf(%s,p-bookname); printf(n 请输入图书作者名:);
23、 fflush(stdin); scanf(%s,p-author); printf(n 请输入图书出版社:); fflush(stdin); scanf(%s,p-publisher); printf(n 请输入图书出版时间:); fflush(stdin); scanf(%s,p-pbtime); printf(n 请输入图书分类号:); fflush(stdin); scanf(%s,p-classfy); printf(n 请输入图书价格:); fflush(stdin); scanf(%f,&p-price); printf(n); panduan=1; if(panduan=0)
24、printf(n 没有图书记录! nn); return;void DeleteDoc(struct books_list * head) struct books_list *s,*p; char temp20; int panduan; panduan=0; p=s=head; printf( 请输入您要删除的书名:); scanf(%s,temp); while(p!= NULL) if(strcmp(p-bookname,temp)=0) panduan+; break; p=p-next; if(panduan=1) for(;s-next!=p;) s=s-next; s-next=p-next; free(p); printf(n 删除成功! n); else printf( 您输入的书目不存在,请
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年能源互联网分布式能源交易市场潜力分析报告
- 2025年网络直播行业规范化发展趋势与商业模式创新策略研究
- 商务信息咨询公司合同付款管理办法
- 巷道掘进培训课件
- 2025年春运出行预测分析报告
- 岩石沙和黏土教学课件
- 屋面拆除安全教育培训课件
- 小麦春季管理课件
- 知识产权担保借款协议
- 专业物流公司特种车辆驾驶员合同样本
- 物业轮岗活动方案
- 医院医疗服务培训
- 中国大麻酚油(CBD油)行业发展监测及投资战略研究报告
- 《工业机器人技术与应用》高职人工智能技术应用专业全套教学课件
- 中医院依法执业管理制度
- 广西b证继续教育考试试题及答案
- 2025年新高考1卷(新课标Ⅰ卷)语文试卷(含答案)
- JG/T 463-2014建筑装饰用人造石英石板
- DB32/T 3946-2020平原水网地区闸控航道通航标准
- 2025年初级银行从业资格之初级个人理财考试题库
- 2025-2030年中国核子及核辐射测量仪器行业竞争格局及发展趋势分析报告
评论
0/150
提交评论