您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > C语言的图书管理系统
实用标准文案精彩文档图书管理系统1.课程设计的目的一直以来人们使用传统的人工方式管理图书馆的日常工作,对于图书馆的借书和还书过程处理借书、还书业务流程的效率很低,其次处理能力比较低为方便对图书馆书籍、读者资料、借还书等进行高效的管理,特编写该程序以提高图书馆的管理效率。使用该程序之后,工作人员可以查询某位读者、某种图书的借阅情况,还可以对当前图书借阅情况进行一些统计,给出统计表格,以便全面掌握图书的流通情况。通过本次课程设计,可以增进对C语言的了解,培养学生的动手动脑能力,加强了对利用C语言编写系统的能力,为今后编写相关程序打下基础。经过本次程序设计实践,完成用C语言一个小型软件的设计,可以学习C语言程序设计的基本方法,掌握常用程序调试的方法和技巧,理解结构化程序设计的基本理念,理解程序设计的系统分析,概要设计,编码,调试等过程,培养基本算法的设计能力,培养严密逻辑思考能力,培养程序设计的实验能力,培养团队协作精神。本次课程设计我设计主要目的是利用VisualC++6.0开发工具编制图书借阅管理系统中数据的录入,用以实现图书数据的输入添加图书信息,以便于图书的浏览,查询和删除,通过图书信息的录入,使得图书借阅管理系统得以运行。2.设计方案论证2.1系统设计思路图书管理系统应具有信息录入,浏览,查询,修改,删除等功能,所以这个图书管理系统分为6个部分,各模块功能如下:(1)图书信息录入模块:添加新书的信息如图书登陆号,图书书名,图书作者名,图书出版社,图书出版时间,图书分类号,图书价格,(2)图书信息浏览模块:显示全部图书信息。(3)图示信息查询模块:根据查询的条件查寻需要的图书借阅记录。(4)图书信息修改模块:根据所要修改的图书信息进行修改。(5)图书信息删除模块,删除相关图书的借阅记录。(6)退出系统模块:退出图书借阅管理系统。主功能模块图如图1所示:实用标准文案精彩文档图1主功能模块图2.2图书信息录入模块的设计思路定义结构体指针变量s指向开辟的新结点首地址p为中间变量,利用调用的函数可以方便快捷的对图书信息的录入,遍历到尾结点,p指向尾结点依次进行图书信息登录号,书名,作者名,出版社,出版时间,图书分类号,图书价格的信息输入,待到录入完成一本图书信息后,设定是否继续添加,方便图书入库和更新。定义flag函数,方便用户选择重复输入,避免多次重新输入的麻烦。定义fflush函数,对图书信息按要求录入。最后利用return语句返回主函数。3.设计结果与分析3.1主界面的设计代码编写完之后,检查有无错误,然后执行程序,进入界面。主界面的主要功能为:使本系统操作起来更为简单明了,便于用户操作使用。对于图书信息的管理其结果如下图所示:图书管理系统图书信息录入图书信息浏览图书信息查询图书信息修改图书信息删除退出系统实用标准文案精彩文档图2主界面3.2图书信息录入模块的设计进入选择菜单后,输入数字1,进入图书信息录入模块,根据系统提示输入图书名,图书作者等信息。本模块的主要功能为:对图书信息按要求依次进行录入,用于添加图书信息,进行图书信息的储存,便于对图书信息的浏览、修改和删除。本模块使用效果图如图所示:图3图书信息录入的界面图图书信息录入模块的代码如下:voidInsertDoc(structbooks_list*head){实用标准文案精彩文档/*定义结构体指针变量s指向开辟的新结点首地址p为中间变量*/structbooks_list*s,*p;charflag='Y';/*定义flag,方便用户选择重复输入*/p=head;/*遍历到尾结点,p指向尾结点*/while(p-next!=NULL){p=p-next;}/*开辟新空间,存入数据,添加进链表*/while(flag=='Y'||flag=='y'){s=(structbooks_list*)malloc(sizeof(structbooks_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,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(stdin);scanf(%c,&flag);printf(\n);if(flag=='N'||flag=='n')实用标准文案精彩文档{break;}elseif(flag=='Y'||flag=='y'){continue;}}save(head);/*保存数据至文件*/return;}4.设计体会这次图书借阅管理系统课程设计,我主要采用是用VisualC++6.0开发工具编制。在这次课程设计当中,我受益匪浅,就图书借阅管理这个课题,我实现了数据的输入和输出,能通过直接写程序进行简单的操作。在这次课程设计中,虽然没有使用库函数和文件操作,但是自己扎实的掌握了定义函数和调用函数,在小组共同努力下完成了这次课程设计,有种自豪感,从开始不清晰的思路到完成程序设计,这也是一种跨越。通过这次课程设计,使我更加扎实的掌握了C语言方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后终于游逆而解。同时,在课程设计过程中我学得到很多实用的知识。编写程序中,真的是细节决定成败,因为不管程序的语句是多是少,但是只要有一条语句或语法不正确,就不能使程序得到所需要的结果。没能够使自己编写出来的程序等到想要的结果,意味着这是一个不理想的程序,对于本次编写来说则是失败的。我们认为,在这学期的实验中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。锻炼自己的c语言编程能力,养成良好的c语言编程风格。不管怎样,这些都是一种锻炼,一种知识的积累,能力的提高。完全可以把这个当作基础东西,只有掌握了这些最基础的,才可以更进一步,取得更好的成绩。很少有人会一步登天吧。永不言弃才是最重要的。5.参考文献[1]谭浩强著.C程序设计(第三版).北京:清华大学出版社,200546-54[2]谭浩强著.C程序设计教程.北京:清华大学出版社,200572-86[3]C编写组编.常用C语言用法速查手册.龙门书局,1995100-120实用标准文案精彩文档[4]HMPeitel,PJDeitel.CHowtoProgram.SecondEdition.蒋才鹏等译.C程序设计教程.北京;机械工业出版社,200078-90[5]HerbertSchildt著。戴健鹏译.C语言大全(第二版).北京:电子工业出版社,199492-113附录:源程序includestdio.h#includemath.h#includestring.h#includestdlib.hstructbooks_list{charauthor[20];charbookname[20];实用标准文案精彩文档charpublisher[20];charpbtime[15];charloginnum[10];floatprice;charclassfy[10];structbooks_list*next;};structbooks_list*Create_Books_Doc();voidInsertDoc(structbooks_list*head);voidDeleteDoc(structbooks_list*head);voidPrint_Book_Doc(structbooks_list*head);voidsearch_book(structbooks_list*head);voidinfo_change(structbooks_list*head);voidsave(structbooks_list*head);structbooks_list*Create_Books_Doc(){structbooks_list*head;head=(structbooks_list*)malloc(sizeof(structbooks_list));/*分配头节点空间*/head-next=NULL;/*头节点指针域初始化,定为空*/returnhead;}voidsave(structbooks_list*head){structbooks_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┃%-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);}voidInsertDoc(structbooks_list*head){structbooks_list*s,*p;charflag='Y';/*定义flag,方便用户选择重复输入*/p=head;while(p-next!=NULL){p=p-next;}/*开辟新空间,存入数据,添加进链表*/while(flag=='Y'||flag=='y'){s=(structbooks_list*)malloc(sizeof(structbooks_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,s-publisher)
本文标题:C语言的图书管理系统
链接地址:https://www.777doc.com/doc-4749432 .html