C语言的图书管理系统(共33页).doc

上传人:飞****2 文档编号:13854293 上传时间:2022-05-01 格式:DOC 页数:33 大小:106.50KB
返回 下载 相关 举报
C语言的图书管理系统(共33页).doc_第1页
第1页 / 共33页
C语言的图书管理系统(共33页).doc_第2页
第2页 / 共33页
点击查看更多>>
资源描述

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

1、精选优质文档-倾情为你奉上 图书管理系统1.课程设计的目的一直以来人们使用传统的人工方式管理图书馆的日常工作,对于图书馆的借书和还书过程处理借书、还书业务流程的效率很低,其次处理能力比较低为方便对图书馆书籍、读者资料、借还书等进行高效的管理,特编写该程序以提高图书馆的管理效率。使用该程序之后,工作人员可以查询某位读者、某种图书的借阅情况,还可以对当前图书借阅情况进行一些统计,给出统计表格,以便全面掌握图书的流通情况。通过本次课程设计,可以增进对C语言的了解,培养学生的动手动脑能力,加强了对利用C语言编写系统的能力,为今后编写相关程序打下基础。经过本次程序设计实践,完成用C语言一个小型软件的设计

2、,可以学习C语言程序设计的基本方法,掌握常用程序调试的方法和技巧,理解结构化程序设计的基本理念,理解程序设计的系统分析,概要设计,编码,调试等过程,培养基本算法的设计能力,培养严密逻辑思考能力,培养程序设计的实验能力,培养团队协作精神。本次课程设计我设计主要目的是利用Visual C+6.0开发工具编制图书借阅管理系统中数据的录入,用以实现图书数据的输入添加图书信息,以便于图书的浏览,查询和删除,通过图书信息的录入,使得图书借阅管理系统得以运行。2设计方案论证2.1系统设计思路图书管理系统应具有信息录入,浏览,查询,修改,删除等功能,所以这个图书管理系统分为6个部分,各模块功能如下:(1)图书

3、信息录入模块:添加新书的信息如图书登陆号,图书书名,图书作者名,图书出版社,图书出版时间,图书分类号,图书价格,(2)图书信息浏览模块:显示全部图书信息。(3)图示信息查询模块:根据查询的条件查寻需要的图书借阅记录。(4)图书信息修改模块:根据所要修改的图书信息进行修改。(5)图书信息删除模块,删除相关图书的借阅记录。(6)退出系统模块:退出图书借阅管理系统。主功能模块图如图1所示:图1 主功能模块图2.2图书信息录入模块的设计思路定义结构体指针变量 s指向开辟的新结点首地址 p为中间变量,利用调用的函数可以方便快捷的对图书信息的录入,遍历到尾结点,p指向尾结点依次进行图书信息登录号,书名,作

4、者名,出版社,出版时间,图书分类号,图书价格的信息输入,待到录入完成一本图书信息后,设定是否继续添加,方便图书入库和更新。定义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!= NULL) p=p-next; /*开辟新空间,存入数据,添

6、加进链表*/ 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 请输入图书出版社:); fflush(stdin); scanf(%s

7、,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( 添加成功!); printf(n 继续添加?(Y/N):); fflush

8、(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语言编程风格。不管怎样,这些都是一种锻炼,一种知识的积累,能力的提高。完全可以把这个当作基础东西,只有掌握了这些最基础的,才可以更进一步,取得更好的成绩。很少有人会一步登天吧。永不言弃才是最重要的。5参考文献1 谭浩强著.C程序设计(第三版

11、).北京:清华大学出版社,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#includestruct books_list c

12、har 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_Book_Doc(struct books_list

13、* 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-next=NULL; /*头节点指针域初始化,定为空

14、*/ 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%-10.10s%-10.10s%-10.10s%-1

15、2.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!= NULL) p=p-next; /*开辟新空间,存入数

16、据,添加进链表*/ 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 请输入图书出版社:); fflush(stdin); scanf

17、(%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( 添加成功!); printf(n 继续添加?(Y/N):); ffl

18、ush(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( 图书库为空!n); else printf(请输入您要查找的书名

19、: ); 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); printf(出版时间: %stn,p-pbtime

20、); 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(登录号 书 名 作 者 出版单位 出版时间 分类号 价格 n

21、); 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 * head) struct books_list *

22、 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 请输入图书作者名:); fflush(stdin); scanf(%s,p-

23、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) printf(n 没有图书记录! nn); retur

24、n;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

25、删除成功! n); else printf( 您输入的书目不存在,请确认后输入!n); return;int main(void) struct books_list * head; char choice; head=NULL; for(;) /*实现反复输入选择*/ printf( n); printf( socat 图书管理系统 n); printf( n); printf( 1图书信息录入 n); printf( n); printf( 2图书信息浏览 n); printf( n); printf( 3图书信息查询 n); printf( n); printf( 4图书信息修改 n);

26、 printf( n); printf( 5图书信息删除 n); printf( n); printf( 6退出系统 n); printf( n); printf( 请选择:); fflush(stdin); scanf(%c,&choice); if(choice=1) if(head=NULL) head=Create_Books_Doc(); InsertDoc(head); else if(choice=2) Print_Book_Doc(head); else if(choice=3) search_book(head); else if(choice=4) info_change(head); else if(choice=5) DeleteDoc(head); else if(choice=6) printf(n); printf( 感谢使用图书管理系统 n); break; else printf( 输入错误,请重新输入!); break; return 0; 沈 阳 大 学 NO. 沈 阳 大 学课程设计说明书 NO. 沈 阳 大 学课程设计说明书 NO. 沈 阳 大 学课程设计说明书 NO. 沈 阳 大 学课程设计说明书 NO. 沈 阳 大 学专心-专注-专业

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

当前位置:首页 > 教育专区 > 教案示例

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

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