• 946.50 KB
  • 2022-04-21 发布

c 语言程序设计基础课程设计手册_v6_2015.1

  • 39页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
  4. 网站客服QQ:403074932
福建船政交通职业学院课程设计(综合实训)报告组长姓名:欧鹏程小组成员:周剑龙危佳辰郑丁榕郑坛木专业/班级:14计算机网络技术1课程名称:C语言程序设计课程设计指导导师:程伍端总评成绩:信息工程系2015.0116n《C语言程序设计》课程设计评分表指导教师:程伍端执行时间:2015年1月组号姓名学号承担角色个人得分统计小组得分设计报告源程序日志总结个人得分4欧鹏程144104138组长周剑龙144104131组员1危佳辰144104113组员2郑丁榕144104115组员3郑坛木144104125组员4成绩考核说明:一、小组团队合作题目考核说明1、成绩分为:优、良、中、及格、不及格五个档次。2、组长个人起点基准成绩高一个等级,起点为中;其余每个组员的起点基准成绩为及格。3、课题系统获得通过,小组成绩整体同步提升一至二个档次。系统设计中重要模块承担者(组员)将优先考虑再给予提高一个档次的成绩。4、课题系统不能如期获得通过,组员成绩将可能下降一个档次;组长成绩将必然下降一至二个档次。设计中重要模块承担者(组员),如果未能完成将责过一等。5、少于5人的个别组,课题系统获得通过,成绩可以考虑提升一个档次。【教师点评】16n《C语言程序设计》课程设计任务说明【整体说明】l学分说明《C语言程序设计》课程设计是一门独立的集中性实训课程,是学习了计算机编程语言《C语言程序设计》后,相关联的实训课程,所占学分:1学分。l实训目的实训目的在于整体性的融合《C语言程序设计》所学的理论基础知识,运用平时课堂实训学会的编程技巧和能力,通过进行一个整体性的系统化项目课题的编程练习,贯穿所学课程的主要知识要点,从而认识到C语言的学习目的和重要性,进一步提高自身的程序设计能力。l设计课题题目:学院图书查询系统要求针对图书的属性(如:图书的编号、图书的书名、图书的作者、图书的库存),以及借阅者的属性(如:借书人、借书证号、借的图书名),进行编程,要求实现以下的功能:1、添加信息2、删除信息3、查询信息4、浏览信息该管理系统运行时是一个循环式的菜单选项,能依据选项选择各种功能。并能依据需求,将结果打印在屏幕【任务要求】应用C语言知识,依据以上题目,全部必须应用链表等有关知识点进行设计,要求系统具有智能性、适用于任何不同的规模情形,智能化地应用内存。小组团队合作题目的任务要求如下:1.课程设计以小组为单位,每个小组5人为一个小组。自由组合,自选组长,自行分工协作,但要求每人每日填写总结日志,叙述该日你完成的任务。2.要求以功能模块为单位分工,每个模块功能以程序函数实现,同时配置相应的主程序测试你所完成的功能函数。3.设计结束时,每人提交一份个人设计报告(在每个人任务书上完成)16n,总结你个人的工作。每个小组以小组为单位提交一份整体课程设计报告(要求打印)。所有内容按以下要求编制成册,进行提交,用以考核评分。课程设计报告中要有能够说明系统所实现功能运行过程的截屏,也可进一步提交运行录像。1.可以在题目要求完成的主要功能基础上,设想实现其他功能,予以实现。2.提交文档顺序说明:⑴封面⑵课程设计评分表⑶课程设计任务说明(题目部分仅保留你选择的题目)⑷小组课程设计报告⑸按组长和组员1、组员2……等顺序提交每个人的个人设计报告和每日工作日志。⑹整个系统原代码16n实训小组实训报告《C语言程序设计》课程设计实训报告实训题目:学院图书查询系统一、任务要求:要求针对图书的属性(如:图书的编号、图书的书名、图书的作者、图书的库存),以及借阅者的属性(如:借书人、借书证号、借的图书名),进行编程,要求实现以下的功能:1、添加信息1.1、添加图书信息;1.2、添加借阅者信息。2、删除信息2.1、按图书的编号进行信息删除。3、查询信息3.1、按借阅者进行信息查询;3.2、按图书编号进行信息查询;3.3、按图书名进行信息查询;3.4、按作者名进行信息查询。2、浏览信息4.1、浏览图书信息;4.2、浏览借阅者信息。该管理系统运行时是一个循环式的菜单选项,能依据选项选择各种功能。并能依据需求,将结果打印在屏幕。二、小组成员与分工:1、组长(欧鹏程):完成链表的建立;完成查询功能中的按借阅者进行信息查询、按图书编号进行信息查询、按书名进行信息查询、按作者名进行信息查询的函数,完成删除功能中的按编号删除的函数。2、组员1(周剑龙):完成结构体的建立;完成添加系统信息中的添加图书相关信息、添加借阅者相关信息的函数,完成浏览系统信息中的浏览图书相关信息、浏览借阅者相关信息的函数。3、组员2(郑坛木):完成静态界面的设计,完成整个程序的流程图。4、组员3(危佳辰):完成静态界面的美观与清屏。5、组员4(郑丁榕):针对各个函数功能实现的调试与整个程序的测试。三、实现的功能说明(一)、总体功能说明16n实训小组实训报告添加图书信息(书号、书名、作者、库存)添加系统信息voidAdd();voidInsert();voidsetData()添加借阅者信息(借阅者、借书证号、借阅的书名)voidmenu_2()voidAdd_1();voidInsert_1();voidsetData()按图书编号删除(输入编号)删除图书信息voidDel();linklistQur();voiddestroy()按借阅情况查询(输入借书证号)linklistQur_1();voidchaxun_1()主菜单按编号查询(输入书的编号)查询图书信息linklistQur();voidchaxun_2()按书名查询(输入书名)voidmenu_1()voidmenu();linklistQur_2();voidchaxun_3()charsl()按作者查询(输入作者)linklistQur_3();voidchaxun_4()浏览图书信息浏览系统信息voidDisp();voidprintTitle();voidshow()浏览借阅者信息voidmenu_1()voidDisp_1();voidprintTitle_1();voidshow_1()小组成员与分工情况开发团队16n实训小组实训报告(二)、各个模块的功能及实现各个函数及其如何实现功能如下:1、intmain();/*主函数*/:建立头节点,进入主菜单,再调用判断各个函数功能的函数。(图1)(图1)2、voidmenu();/*主菜单*/显示各个功能选项。3、voiddestroy();/*释放节点*/:将建立好的的节点释放掉。(图3)(图3)4、charsl();/*进行各个功能的判断*/:判断函数的功能选项,以便调用相应的函数。(图4)16n实训小组实训报告(图4)5、voidmenu_2();/*添加系统信息菜单*/:显示添加系统信息的菜单,并判断函数的功能选项,以便调用相应的函数。(图5)(图5)6、voidAdd();/*添加图书信息函数*/:先申请节点,再调用建立链表函数。(图6)7、voidInsert(linklistp);/*只为录入新书信息建立链表*/:先调用录入信息函数,再建立链表。(图7)(图6)(图7)8、voidsetData(linklistp);/*录入新书信息*/:将已经建立好的节点传进函数,并录入信息。9、voidInsert_1(linklistp);/*只为录入借阅信息建立链表*/:先调用录入信息函数,再建立链表。10、voidAdd_1();/*添加借阅人信息函数*/:先申请节点,再调用建立链表函数。(图10)(图10)(图11)(图12)16n实训小组实训报告11、voidsetData_1(linklistp);/*录入借阅者信息*/:将已经建立好的节点传进函数,并录入信息。(图11)12、voidDel();/*删除节点*/:先调用查询函数,找到对应的信息,后再释放节点(图12)13、voidprintTitle();/*打印图书信息界面*/14、voidprintTitle_1();/*打印借阅者信息界面*/15、voidshow(linklistp);//*打印图书信息*/:将建立好的节点传进函数,方便打印相关信息。16、voidshow_1(linklistp);/*打印借阅者信息*/:将建立好的节点传进函数,方便打印相关信息。17、voidDisp();/*为打印图书信息做准备*/:先调用打印图书信息界面函数,再进行判断,以便调用打印函数。(图17)18、voidDisp_1();/*为打印借阅者信息做准备*/:先调用打印借阅者信息界面函数,再进行判断,以便调用打印函数。(图18)(图17)(图18)19、voidmenu_1();/*查询菜单*/:显示查询菜单,并判断函数的功能选项,以便调用相应的函数。(图19)(图19)20、voidchaxun_1();/*按借阅者进行查询打印*/:先调用查询函数,在对其查询结果进行打印。(图20)21、linklistQur_1();/*按借阅情况进行查询*/:对输入的借书证号进行对比查询。(图21)22、linklistQur();/*按图书的编号进行查询*/:对输入的图书编号进行对比查询。(图22)16n实训小组实训报告(图20)(图21)(图22)23、voidchaxun_2();/*按编号进行查询打印*/:先调用查询函数,在对其查询结果进行打印。(图23)24、voidmenu_3();/*浏览菜单*/:显示浏览信息菜单,并判断各个函数的功能选项,以便调用相应的函数。(图24)(图23)(图24)25、linklistQur_2();/*按书名进行查询*/:对输入的书名进行对比查询。(图25)26、linklistQur_3();/*按作者进行查询*/:对输入的作者姓名进行对比查询。(图26)16n实训小组实训报告(图25)(图26)27、voidchaxun_3();/*按书名进行查询打印*/:先调用查询函数,在对其查询结果进行打印。(图27)(图27)28、voidchaxun_4();/*按作者进行查询打印*/:先调用查询函数,在对其查询结果进行打印。(图27)(图29)16n实训小组实训报告(三)、测试结果1、主菜单:2、按1进入添加系统信息,再按1进入添加图书信息或按2进入添加借阅者信息3、按2进入删除图书信息,输入书的编号进行删除4、按3进入查询图书信息,再按1进入按借阅者进行查询或按2进入按编号进行查询或按3进入按书名进行查询或按4进入按作者进行查询16n实训小组实训报告1、按4进入浏览系统信息,再按1进入浏览图书信息或按2进入浏览借阅者信息2、按5进入开发团队,显示小组分工简略情况,按任意键返回主菜单7、进入添加图书信息,按y/Y继续添加图书信息,按任意键结束添加信息16n实训小组实训报告8、进入添加借阅者信息,按y/Y继续添加图书信息,按任意键结束添加信息9、进入浏览图书信息或浏览借阅者信息,按任意键返回主菜单16n实训小组实训报告10、进入查询图书信息按借阅情况进行图书查询(输入借书证号)按图书的编号进行图书查询(输入图书的编号)按图书的书名进行图书查询(输入图书名)16n实训小组实训报告按作者名进行图书查询(输入作者名)11、进入删除图书信息(输入图书的编号)16n成员个人实训报告学院图书查询系统组长:欧鹏程学号:144104138执行时间:2015年1月16日【任务要求】:整体性地进行项目的策划,给组员分配任务,指挥协调各组员之间的协作,规划各组员之间的程序衔接,及时纠正各组员程序中严重的方向性错误。完成链表的建立;完成查询功能中的按借阅者进行信息查询、按图书编号进行信息查询、按书名进行信息查询、按作者名进行信息查询的函数,完成删除功能中的按编号删除的函数。我这一组要完成的实训内容其实是图书管理系统中的一个部分(图书查询系统),我作为组长就要整体性地规划整个程序该实现哪些功能。我的规划是:该图书查询系统,先要有初始的图书相关信息和借阅者的相关信息(这就需要使用者先添加系统信息),才能对该系统信息进行删除、查询和浏览;在删除图书信息时是按图书的编号进行查询并删除;在查询系统信息时分为:按借阅者进行查询(输入借书证号)、按图书编号进行查询(输入图书编号)、按图书名进行查询(输入图书名)、按作者名进行(输入作者名);在浏览系统信息时分为:浏览图书的相关信息、浏览借阅者相关信息。此次的实训题目,相对于比较简单,在写程序的过程中,让我对链表知识的重新认识,也培养了我独自思考的能力,也提升了团队合作意识,更让我得知遇到问题,要及时问,及时解决,以防止下一次再出现类似的问题。本次的C语言课程设计,还让我及时发现自己身上不足的地方,去寻找问题的所在,并能够对该问题进行分析解决,更让我懂得了取他之长,补己之短的道理。21n成员个人实训报告学院图书查询系统组员1:周剑龙学号:144104131执行时间:2015年1月16日【任务要求】:接受组长的安排,承担完成结构体的建立;完成添加系统信息中的添加图书相关信息、添加借阅者相关信息的函数,完成浏览系统信息中的浏览图书相关信息、浏览借阅者相关信息的函数。我作为这一组的成员之一,就需要对该项目的一些的函数功能的实现负责。组长给我分配的主要任务是:承担完成结构体的建立;完成添加系统信息中的添加图书相关信息、添加借阅者相关信息的函数,完成浏览系统信息中的浏览图书相关信息、浏览借阅者相关信息的函数。在建立结构体时,需要对图书的属性和借阅者的属性进行分析,这一点我并不是做很好;在进行添加系统信息时,偶尔把变量混在一起,后来根据组长的解释,就去重新分析结构体的定义。此次的实训题目,要求要用到链表,对于链表这一块,我并不是很熟悉,但是自己有去尝试用数组写了该程序,最后还是没有写成功,只好认真的听组长给我的解释。本次实训让我知道了,上课认真听讲是前提,课前预习、课后复习是关键,多写程序才能帮到自己更快的理解与消化。为了让我的C语言更上一层楼,我必须课下自己去独自思考有关于C语言的题目。21n成员个人实训报告学院图书查询系统组员2:危佳辰学号:144104113执行时间:2015年1月16日【任务要求】:接受组长的安排,承担完成静态界面的美观与清屏。我作为这一组的成员之一,我就要对该程序的的界面进行负责。组长给我分配的主要任务是:承担完成静态界面的美观与清屏。在我负责界面美观时,有很多东西不懂,自己美观的成果一直不理想,针对这个问题,我去问了其他组已经作完界面美观的成员,从他们那里得知自己的不足和缺陷。对于这些缺陷,我特意的问了组长该如何解决,也从组长那里得知了组长的本意是如何的,针对组长的本意,我一次又一次的修改自己的界面美观,一直修改到组长满意为止。在负责清屏时,时常搞不懂清屏函数是什么,该如何清屏,该在哪里清屏,经过组长的细细解释,我清屏这一块做的很快,也很符合组长的本意。此次的实训,让我懂得了遇到问题,要先自己自主思考问题的所在,实在解决不了,才去询问同学或组长得到帮助,更让我知道自己身上的不足之处,然后才能将自己的不足之处进行一一化解。21n成员个人实训报告学院图书查询系统组员3:郑丁榕学号:144104115执行时间:2015年1月16日【任务要求】:接受组长的安排,承担针对各个函数功能实现的调试与整个程序的测试。我作为这一组的组员之一,我要承担的是该项目程序的调试。组长给我分配的主要任务是:承担针对各个函数功能实现的调试与整个程序的测试。我的每一次调试,自认为是成功的,但是组长查看我的调试时,发现我的调试结果其实都是错误的,后来组长发现是程序的某一些函数功能的书写错误,由于自己的能力不足,无法帮助组长修改程序的错误所在,只好让组长来修改。经过组长对程序的修改,我重新调试该函数,还特意让组长看我是如何调试的,以免又发生错误,自己无法帮助组长来修改程序。组长写完一整个程序时,我就要调试一整个程序的功能的实现,偶尔也会一些小错误,自知自己不能帮助组长,也只好让组长来解决这一些小错误。此次的实训题目,让我得知了自己身上的许多不足之处,虽然自己没办法解决,但是也会认真听组长给我的解释;也让我懂得了当遇到问题时,要及时从组长那得到帮助,将自己的不足之处进行一一化解。21n成员个人实训报告学院图书查询系统组员4:郑坛木组号:144104125执行时间:2015年1月16日【任务要求】:接受组长的安排,承担完成静态界面的设计,完成整个程序的流程图。我作为这一组的成员之一,我就要对该程序的的界面进行负责。组长给我分配的主要任务是:承当完成静态界面的设计,完成整个程序的流程图。在设计界面时,组长要求我要先用Word中的表格画出界面,再将该界面用输出语句打印在屏幕上,我设计的比较漂亮,组长很喜欢,就采用我的设计界面,但是在用输出语句打印在屏幕上时,出现了一些小问题,我求教了组长,组长也耐心的教会我。组长还要我去画整个程序的流程图,但是我并不是很清楚流程图的走向,组长让我根据测试结果来画程序流程图,我认真的分析了测试结果,也向组长询问各个函数都是实现哪些功能,最后自主画出了让组长满意的程序流程图。此次的实训让我知道了,有问题应该主动去询问组长或者其他组已经完成该项目的同学;更让我得知了自己身上的不足之处,并认真听组长给我的解释,也让我对C语言有了新的认识。21n课程设计(综合实训)工作日志姓名欧鹏程日期工作任务完成百分比遇到的问题、获得的帮助及解决方案2015年1月12日完成链表的建立,协助组员(周剑龙)完成结构体的建立。80%遇到的问题:链表建立不起来;在添加信息时会出现内存错误。解决:查看书上的链表建立,类比到自己的程序;问叶凌得知只要在每一次的输入之前填一个清空缓存区函数。2015年1月13日完成查询功能中的按借阅者进行信息查询、按图书编号进行信息查询、按书名进行信息查询、按作者名进行信息查询的函数。100%遇到的问题:在进行按图书的书名查询时,会出现内存错误。解决:找到该查询函数,发现定义的数组长度太小,后发现只要把数组长度加长就没有问题。2015年1月14日完成删除功能中的按编号删除的函数;解决前一天遗留的问题。90%遇到的问题:在删除节点时,不懂如何再去街接上下一个节点。解决:查看书上的删除节点的函数,然后重新分析是如何断开节点,再去接下一个节点,后来看了林淳的删除节点函数,再类比到自己的程序。2015年1月15日测试一下各个功能的实现,并对不足的地方进行重新分析和修改;解决前一天遗留的问题。100%遇到的问题:在添加信息时,把图书信息和借阅者信息混在一起;在浏览信息时会多输出一次乱码。解决:问老师得只要在录入信息时,分出另外一个菜单,其功能分为添加图书信息和添加借阅者信息,在浏览信息时也分出另外一个菜单,其功能分为浏览图书信息和浏览借阅者信息;只要不同时输入图书信息和借阅者信息就不会多输出一次乱码。2015年1月16日写C语言程序设计报实训报告,并对报告内容进行排版和不足的地方进行修改。100%39n课程设计(综合实训)工作日志姓名周剑龙日期工作任务完成百分比遇到的问题、获得的帮助及解决方案2015年1月12日协助组长(欧鹏程)完成链表的建立;自主完成结构体的建立。80%问题:不知道结构体该定义哪些内容。解决:上网查询图书和借阅者都有哪些属性,得知有图书的编号、图书的书名、图书的作者、图书的库存,借阅者有借阅者的姓名、借书证号、借阅的图书。2015年1月13日完成添加系统信息中的添加图书相关信息、添加借阅者相关信息的函数;解决前一天遗留的问题。90%问题:添加图书与借阅者相关的信息时,无法对其相关信息的打印。解决:问组长(欧鹏程)得知,只要在打印函数时将头指针传进函数。2015年1月14日完成浏览系统信息中的浏览图书相关信息、浏览借阅者相关信息的函数;解决前一天遗留的问题。90%问题:在打印时没有搞清楚变量的名称。解决:重新查看结构体的相关定义,在对其相应的变量进行分析得知,只要写输出的内容对应的变量名称。2015年1月15日协助组长(欧鹏程)进行修改程序。100%问题:在进行录入借阅者信息时不知道是否得再次建立一个关于借阅者的结构体。解决:通过组长(欧鹏程)问老师得知,如果再次建立结构体,就相当于重新写一次程序,由于时间关系,就只好在原先有的结构体里多定义关于借阅者信息。2015年1月16日写个人的实训报告,并协助组长(欧鹏程)进行实训报告内容的排版。100%39n课程设计(综合实训)工作日志姓名危佳辰日期工作任务完成百分比遇到的问题、获得的帮助及解决方案2015年1月12日与组员(郑坛木)一起用Word以表格形式画出主菜单和子菜单界面。90%问题:不知道主菜单和子菜单都有哪些内容。解决:问组长(欧鹏程)该程序都有哪些功能,得知应该有添加信息功能、删除信息功能、查询信息功能、浏览信息功能。2015年1月13日独自完成用输出语句输出表格,并将功能内容嵌入表格。100%问题:组长(欧鹏程)要求要能以表格形式打印在屏幕,但是不知道该如何用输出语句来输出表格。解决:上网搜索如何在输出语句中显示表格线。2015年1月14日与组员(郑坛木)一起完善主菜单和子菜单的功能内容以及完善界面的美观。90%问题:完善菜单内容时,组长(欧鹏程)要求要对其菜单美观,但是美观的结果不符合组长(欧鹏程)的本意。解决:询问清楚组长(欧鹏程)的本意是如何,然后根据组长(欧鹏程)的本意去上网搜索相关的内容,并对其进行修改。2015年1月15日完成对调用完函数进行屏幕清屏。90%问题:不知道清屏的函数是什么;在清屏时会出现编译错误。解决:问组长(欧鹏程)清屏的函数是什么;通过组长(欧鹏程)向老师询问得知,只要把清屏函数放在定义语句之后,便可以通过编译。2015年1月16日写个人的实训报告,并协助组长(欧鹏程)进行实训报告的排版。100%39n课程设计(综合实训)工作日志姓名郑丁榕日期工作任务完成百分比遇到的问题、获得的帮助及解决方案2015年1月12日协助组员(郑坛木、危佳辰)用Word画出主菜单和子菜单。90%问题:不知道主菜单和子菜单都有哪些内容。解决:问组长(欧鹏程)该程序都有哪些功能,得知应该有添加信息功能、删除信息功能、查询信息功能、浏览信息功能。2015年1月13日协助组员(危佳辰)进行菜单的美化。90%问题:完美化菜单内容时,美观的结果不符合组长(欧鹏程)的本意。解决:询问清楚组长(欧鹏程)的本意是如何,然后根据组长(欧鹏程)的本意去上网搜索相关的内容,并对其进行修改。2015年1月14日协助组员(郑坛木)画程序的流程图。90%问题:没见过程序流程图是什么样的。解决:根据组长(欧鹏程)的描述,并结合自己的理解,配合组员(郑坛木)一起画出程序流程图。2015年1月15日完成对各个函数功能实现的调试与整个程序的测试。100%问题:在编译时偶尔会出现编译错误。解决:由于自己的能力不足,所以就将错误内容描述给组长(欧鹏程)听,并认真听组长(欧鹏程)的解释,然后再将组长(欧鹏程)改好的程序再次进行调试。2015年1月16日写个人的实训报告。100%39n课程设计(综合实训)工作日志姓名郑坛木日期工作任务完成百分比遇到的问题、获得的帮助及解决方案2015年1月12日与组员(危佳木)一起用Word以表格形式画出主菜单和子菜单界面。90%问题:不知道主菜单和子菜单都有哪些内容。解决:问组长(欧鹏程)该程序都有哪些功能,得知应该有添加信息功能、删除信息功能、查询信息功能、浏览信息功能。2015年1月13日完成主菜单与子菜单进行排版设计;完成一整个程序的界面的设计。90%问题:进行设计时,设计的结果不符合组长(欧鹏程)的本意。解决:询问清楚组长(欧鹏程)的本意是如何,然后根据组长(欧鹏程),并对自己已经写好的设计内容进行修改。2015年1月14日与组员(郑丁榕)一起画程序流程图,并能在程序流程图中显示该功能的相关函数。90%问题:没见过程序流程图是什么样的;不知道该程序都有哪些函数。解决:根据组长(欧鹏程)的描述,并结合自己的理解,与组员(郑丁榕)一起画出程序流程图;让组长(欧鹏程)列出所有的函数名,并根据组员(郑丁榕)的程序调试过程将各个函数列在该功能的下面。2015年1月15日配合组员(郑丁榕)一起完成对各个函数功能实现的调试与整个程序的测试。100%问题:在编译时偶尔会出现编译错误。解决:由于自己的能力不足,所以就将错误内容描述给组长(欧鹏程)听,并认真听组长(欧鹏程)的解释,然后再将组长(欧鹏程)改好的程序再次进行调试。2015年1月16日写个人的实训报告。100%39n附件:程序源代码源代码#define_CRT_SECURE_NO_WARNINGS#include#include#include#include#includetypedefstruct//结构体{charbooknum[50];//书号charbookname[50];//书名charbookzuozhe[20];//作者charbookkucun[20];//库存charbookjiechu[10];//借书人charbookjieyue[20];//借书证号}books;//定义,衔接以下的结构体typedefstructnode//指针{booksp;structnode*pre;structnode*next;}node,*linklist;//定义linklisthead,last;//头结点、尾节点voidsetData(linklistp);/*录入新书信息*/voidsetData_1(linklistp);/*录入借阅者信息*/voidInsert();/*只为录入新书信息建立链表*/voidInsert_1();/*只为录入借阅信息建立链表*/voidAdd();/*添加图书信息函数*/voidAdd_1();/*添加借阅人信息函数*/voidDel();/*删除节点*/voidprintTitle();/*打印图书信息界面*/voidprintTitle_1();/*打印借阅者信息界面*/voidshow(linklistp);//*打印图书信息*/voidshow_1(linklistp);/*打印借阅者信息*/voidDisp();/*为打印做准备*/voidDisp_1();/*为打印借阅者信息做准备*/charsl();/*进行各个功能的判断*/voiddestroy();/*释放节点*/voidmenu();/*主菜单*/voidmenu_1();/*查询菜单*/voidmenu_2();/*添加系统信息菜单*/39n附件:程序源代码voidmenu_3();/*浏览菜单*/linklistQur();/*按图书的编号进行查询*/linklistQur_1();/*按借阅情况进行查询*/linklistQur_2();/*按书名进行查询*/linklistQur_3();/*按作者进行查询*/voidchaxun_1();/*按借阅者进行查询打印*/voidchaxun_2();/*按编号进行查询打印*/voidchaxun_3();/*按书名进行查询打印*/voidchaxun_4();/*按作者进行查询打印*//*录入新书信息*/voidsetData(linklistp){printf("nnn");printf("tt★★★★★★★★★★★★★★★★★★★n");printf("tt★录入新书信息★n");printf("tt★★★★★★★★★★★★★★★★★★★n");printf("nn");printf("请输入图书的编号:");fflush(stdin);//清空缓存区scanf("%s",&p->p.booknum);printf("请输入图书的书名:");fflush(stdin);//清空缓存区scanf("%s",&p->p.bookname);printf("请输入图书的作者:");fflush(stdin);//清空缓存区scanf("%s",&p->p.bookzuozhe);printf("请输入图书的库存:");fflush(stdin);//清空缓存区scanf("%s",&p->p.bookkucun);}/*录入借阅者信息*/voidsetData_1(linklistp){printf("nnn");printf("tt★★★★★★★★★★★★★★★★★★★n");printf("tt★录入借阅者信息★n");printf("tt★★★★★★★★★★★★★★★★★★★n");printf("nn");printf("请输入借阅者:");fflush(stdin);//清空缓存区scanf("%s",&p->p.bookjiechu);printf("请输入借书证号:");fflush(stdin);//清空缓存区scanf("%s",&p->p.bookjieyue);39n附件:程序源代码printf("请输入要借书的书名:");fflush(stdin);//清空缓存区scanf("%s",&p->p.bookname);}/*只为录入新书信息建立链表*/voidInsert(linklistp){setData(p);p->next=last;last->pre->next=p;p->pre=last->pre;last->pre=p;}/*只为录入借阅信息建立链表*/voidInsert_1(linklistp){setData_1(p);p->next=last;last->pre->next=p;p->pre=last->pre;last->pre=p;}/*添加的函数*/voidAdd(){charch;do{linklistp=(linklist)malloc(sizeof(node));//申请节点system("cls");//清屏Insert(p);//建立链表printf("n");printf("是否继续?n按Y继续,否则任意键退出!!n");fflush(stdin);//清空缓存区ch=getchar();}while(ch=='y'||ch=='Y');}/*添加的函数*/voidAdd_1(){charch;39n附件:程序源代码do{linklistp=(linklist)malloc(sizeof(node));//申请节点system("cls");//清屏Insert_1(p);//建立链表printf("n");printf("是否继续?n按Y继续,否则任意键退出!!n");fflush(stdin);//清空缓存区ch=getchar();}while(ch=='y'||ch=='Y');}/*按图书的编号进行查询*/linklistQur(){charnum[10];linklistp=head->next;printf("请输入图书的编号:");fflush(stdin);//清空缓存区scanf("%s",num);while(p!=last){if(strcmp(num,p->p.booknum)==0)break;p=p->next;}if(p==last){printf("未找到n");system("pause");}returnp;}/*按借阅者进行查询*/linklistQur_1(){charnum_1[10];linklistp=head->next;printf("请输入借书证号:");fflush(stdin);//清空缓存区scanf("%s",num_1);while(p!=last){if(strcmp(num_1,p->p.bookjieyue)==0)break;p=p->next;}39n附件:程序源代码if(p==last){printf("未找到n");system("pause");}returnp;}/*按书名进行查询*/linklistQur_2(){charname[50];linklistp=head->next;printf("请输入图书名:");fflush(stdin);//清空缓存区scanf("%s",name);while(p!=last){if(strcmp(name,p->p.bookname)==0)break;p=p->next;}if(p==last){printf("未找到n");system("pause");}returnp;}/*按作者进行查询*/linklistQur_3(){charname_1[10];linklistp=head->next;printf("请输入作者名:");fflush(stdin);//清空缓存区scanf("%s",name_1);while(p!=last){if(strcmp(name_1,p->p.bookzuozhe)==0)break;p=p->next;}if(p==last){printf("未找到n");system("pause");39n附件:程序源代码}returnp;}/*删除节点*/voidDel(){linklistp=Qur();if(p==last)return;p->pre->next=p->next;p->next->pre=p->pre;free(p);printf("删除成功n");system("pause");}/*打印图书信息界面*/voidprintTitle(){system("cls");printf("tt★★★★★★★★★★★★★★★★★★★n");printf("tt★图书信息如下★n");printf("tt★★★★★★★★★★★★★★★★★★★n");printf("nn");printf("图书编号t图书的书名ttt图书的库存n");}/*打印图书信息*/voidshow(linklistp){printf("%-8st《%-10s》ttt%-10sn",p->p.booknum,p->p.bookname,p->p.bookkucun);fflush(stdin);//清空缓存区}/*为打印图书信息做准备*/voidDisp(){linklistp=head->next;printTitle();while(p!=last){show(p);p=p->next;}system("pause");39n附件:程序源代码}/*为打印借阅者信息做准备*/voidDisp_1(){linklistp=head->next;printTitle_1();while(p!=last){show_1(p);p=p->next;}system("pause");}/*打印借阅者信息界面*/voidprintTitle_1(){system("cls");printf("tt★★★★★★★★★★★★★★★★★★★n");printf("tt★借阅者信息如下★n");printf("tt★★★★★★★★★★★★★★★★★★★n");printf("nn");printf("借阅者t借书证号t借的图书n");}/*打印借阅者信息*/voidshow_1(linklistp){printf("%-6st<%8s>t《%-8s》n",p->p.bookjiechu,p->p.bookjieyue,p->p.bookname);fflush(stdin);//清空缓存区}/*主菜单*/voidmenu(){system("cls");printf("nnn");printf("tt★★★★★★★★★★★★★★★★★★★★★★★n");printf("tt★欢迎使用学院图书查询系统!!!★n");printf("tt★★★★★★★★★★★★★★★★★★★★★★★n");printf("t┌──┬─────────────────────────┐n");printf("t│选择│★★★★★★学院图书查询系统★★★★★★│n");printf("t├──┼─────────────────────────┤n");printf("t│1.│★添加系统信息│n");39n附件:程序源代码printf("t├──┼─────────────────────────┤n");printf("t│2.│★删除图书信息│n");printf("t├──┼─────────────────────────┤n");printf("t│3.│★查询图书信息│n");printf("t├──┼─────────────────────────┤n");printf("t│4.│    ★浏览系统信息│n");printf("t├──┼─────────────────────────┤n");printf("t│5.│    ★开发团队│n");printf("t├──┼─────────────────────────┤n");printf("t│0.│★退出图书查询系统│n");printf("t└──┴─────────────────────────┘n");printf("n");}/*添加菜单*/voidmenu_2(){intnum;system("cls");printf("nnn");printf("tt★★★★★★★★★★★★★★★★★★★★★★★n");printf("tt★欢迎使用学院图书查询系统!!!★n");printf("tt★★★★★★★★★★★★★★★★★★★★★★★n");printf("t┌──┬─────────────────────────┐n");printf("t│选择│★★★★★★添加系统信息★★★★★★│n");printf("t├──┼─────────────────────────┤n");printf("t│1.│★添加图书信息│n");printf("t├──┼─────────────────────────┤n");printf("t│2.│★添加借阅者信息│n");printf("t└──┴─────────────────────────┘n");printf("n");printf("请选择:");fflush(stdin);//清空缓存区scanf("%d",&num);switch(num){case1:Add();break;case2:Add_1();break;default:break;}}voidmenu_3()39n附件:程序源代码{intnum;system("cls");printf("nnn");printf("tt★★★★★★★★★★★★★★★★★★★★★★★n");printf("tt★欢迎使用学院图书查询系统!!!★n");printf("tt★★★★★★★★★★★★★★★★★★★★★★★n");printf("t┌──┬─────────────────────────┐n");printf("t│选择│★★★★★★浏览系统信息★★★★★★│n");printf("t├──┼─────────────────────────┤n");printf("t│1.│★浏览图书信息│n");printf("t├──┼─────────────────────────┤n");printf("t│2.│★浏览借阅者信息│n");printf("t└──┴─────────────────────────┘n");printf("nnn");printf("请选择:");fflush(stdin);//清空缓存区scanf("%d",&num);switch(num){case1:Disp();break;case2:Disp_1();break;}}/*查询菜单*/voidmenu_1(){intnum;system("cls");printf("t┌──┬─────────────────────────┐n");printf("t│选择│★★★★★★★查询图书信息★★★★★★★│n");printf("t├──┼─────────────────────────┤n");printf("t│1.│★按借阅情况查询★│n");printf("t├──┼─────────────────────────┤n");printf("t│2.│    ★按编号查询★│n");printf("t├──┼─────────────────────────┤n");printf("t│3.│★按书名查询★│n");printf("t├──┼─────────────────────────┤n");printf("t│4.│★按作者查询★│n");printf("t├──┼─────────────────────────┤n");printf("t│0.│★返回★│n");printf("t└──┴─────────────────────────┘n");printf("nnn");39n附件:程序源代码printf("请选择:");fflush(stdin);//清空缓存区scanf("%d",&num);switch(num){case1:chaxun_1();break;case2:chaxun_2();break;case3:chaxun_3();break;case4:chaxun_4();break;default:menu();break;}}/*按借阅者进行查询打印*/voidchaxun_1(){linklistp=Qur_1();if(p!=last){system("cls");printf("tt★★★★★★★★★★★★★★★★★★★n");printf("tt★图书信息如下★n");printf("tt★★★★★★★★★★★★★★★★★★★n");printf("nn");printf("图书的书名t借阅者t借书证号n");printf("《%-6s》t%6st<%8s>n",p->p.bookname,p->p.bookjiechu,p->p.bookjieyue);system("pause");}}/*按编号进行查询打印*/voidchaxun_2(){linklistp=Qur();if(p!=last){system("cls");printf("tt★★★★★★★★★★★★★★★★★★★n");printf("tt★图书信息如下★n");printf("tt★★★★★★★★★★★★★★★★★★★n");printf("nn");39n附件:程序源代码printf("图书编号t图书的书名t图书的作者t图书的库存n");printf("%-8st《%-6s》t%10st%10sn",p->p.booknum,p->p.bookname,p->p.bookzuozhe,p->p.bookkucun);system("pause");}}/*按书名进行查询打印*/voidchaxun_3(){linklistp=Qur_2();if(p!=last){system("cls");printf("tt★★★★★★★★★★★★★★★★★★★n");printf("tt★图书信息如下★n");printf("tt★★★★★★★★★★★★★★★★★★★n");printf("nn");printf("图书的书名t图书的作者t图书的库存n");printf("《%-6s》t%10st%10sn",p->p.bookname,p->p.bookzuozhe,p->p.bookkucun);system("pause");}}/*按作者进行查询打印*/voidchaxun_4(){linklistp=Qur_3();if(p!=last){system("cls");printf("tt★★★★★★★★★★★★★★★★★★★n");printf("tt★图书信息如下★n");printf("tt★★★★★★★★★★★★★★★★★★★n");printf("nn");printf("图书编号t图书的书名t图书的作者n");printf("%-8st《%-6s》t%10sn",p->p.booknum,p->p.bookname,p->p.bookzuozhe);system("pause");}}/*进行各个功能的判断*/charsl(){charchoose;printf("请选择:");39n附件:程序源代码fflush(stdin);//清空缓存区choose=getchar();switch(choose){case'1':menu_2();break;case'2':Del();break;case'3':{menu_1();break;}case'4':{system("cls");menu_3();break;}case'5':{system("cls");printf("nnn");printf("tt★★★★★★★★★★★★★★★★★★★n");printf("tt★★n");printf("tt★欢迎使用学院图书查询系统!!★n");printf("tt★★n");printf("tt★★★★★★★★★★★★★★★★★★★n");printf("nnn");printf("tt★★★★★★★★★★★★★★★★★★★★★★★★n");printf("tt★开发团队★n");printf("tt★★★★★★★★★★★★★★★★★★★★★★★★n");printf("tt★★n");printf("tt★郑坛木和危佳辰:界面设置和界面美观。★n");printf("tt★周剑龙协助组长欧鹏程进行函数功能的实现。★n");printf("tt★郑丁榕程序的调试和所有函数功能的测试。★n");printf("tt★★n");printf("tt★★★★★★★★★★★★★★★★★★★★★★★★n");printf("nnn");system("pause");break;}default:system("cls");system("pause");break;}39n附件:程序源代码returnchoose;}/*释放节点*/voiddestroy(){linklistp=head->next;while(p!=last){head->next=p->next;free(p);p=head->next;}free(head);free(last);}/*主函数*/intmain(){head=(linklist)malloc(sizeof(node));last=(linklist)malloc(sizeof(node));head->next=last;last->next=NULL;last->pre=head;head->pre=NULL;do{menu();}while(sl()!='0');destroy();return0;}39

相关文档