您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > C语言课程设计-图书管理系统
课程设计报告课程名称C语言程序设计课题名称图书管理系统专业通信工程班级1302学号201303020230姓名胡博指导教师罗雅博廖智曹燚2014年6月29日目录一、课程设计目的····························································································1二、课程设计要求····························································································1三、设计题目分析····························································································13.1题目简介····································································································13.2设计要求····································································································1四、课程设计内容···························································································24.1总体设计···································································································24.2详细设计····································································································34.3调试与测试·······························································································12五、设计心得与总结······················································································14六、建议·······································································································15七、源代码····································································································16八、计算机与通信学院课程设计评分表·······························································301一、课程设计目的《C语言程序设计》是通信工程专业重要的基础课,通过本课程设计使学生进一步巩固课堂所学知识,全面熟悉、掌握C语言程序设计的基本方法和技巧,进一步提高编写程序、阅读分析程序及上机操作、调试程序的能力。二、课程设计要求1、课程设计目2、课程设计要求3、设计题目分析3、1题目简介3、2设计要求4、课程设计内容4、1总体设计:包括系统总体设计框架和系统功能模块图;4、2详细设计:包括主要功能模块说明(如函数功能、函数参数说明、函数调用关系描述)和对应的工作流程图;4、3调试与测试:包括程序调试过程、数据测试结果分析,测试过程中遇到的主要问题及采取的解决措施;5、设计心得与总结:包括课程设计过程中的学习体会和收获,对C语言和本次课程设计的认识等内容。6、建议7、报告最后附上评分表(见任务书末页)三、设计题目分析3.1题目简介图书管理系统(能够实现对图书信息的查询,如:书名、作者、出版单位、出版时间、分类号、价格等)。3.2设计要求图书信息包括:书名、作者名、分类号、出版单位、出版时间、价格等;系统以菜单方式2工作;具有图书信息录入,修改、插入、删除功能;能按书名查询或作者名查询;所有信息保存在文件中(每次使用,上次保存的信息能从文件中读取四、课程设计内容4.1总体设计系统总体设计框架和系统功能模块图开始菜单根据菜单中输入的key值选择功能选项key=0退出系统key=1图书信息录入key=2图书信息修改key=3图书信息插入key=4图书信息删除key=5图书信息查找结束按任意键继续保存34.2详细设计包括主要功能模块说明(如函数功能、函数参数说明、函数调用关系描述)和相应的工作流程图;1、主函数:main();在主函数中执行菜单函数menu();,然后当菜单函数执行完后会执行printf(“退出系统!’);语句在显示屏显示退出系统!然后程序结束。开始菜单key=3图书信息插入key=2图书信息修改key=1图书信息录入key=4图书信息删除key=5图书信息查找key=0退出系统输入key值执行相应功能代码结束42、主菜单函数:menu();通过主菜单显示系统的功能,并通过主菜单进入各功能函数。开始输入key值key=3insert_data();key=2update();key=1input_data();key=4delete();key=5ffnd_menu();key=0Exit结束53、图书信息录入函数:input_data();本函数的功能:录入图书信息并保存在文件中。NYNYY开始key=1?intkey=1flose(fp);录入图书信息fp=fopen(F:\\Books_Management_Systen_BMS.dat,a+))=NULL?创建文件F:\\Books_Management_Systen_BMS.datfwrite(&BOOK,sizeof(structbook),1,fp);输入key值结束64、图书信息修改函数:uodate();本函数的功能是:修改图书信息并将修改后的信息保存在文件中。NNYNYYN开始intflag=0intkey=1key=1?结束fclose(fp);fp=fopen(F:\\Books_Management_Systen_BMS.dat,rb+);(fread(&BOOK,sizeof(structbook),1,fp))=1?输入要修改的书名strcmp(BOOK.title,title)==0?录入新的图书信息并文件中Flag==1?输入key值flag=1break75、图书信息插入函数:insert_data();本函数的功能是:实现对图书信息的补录。YN开始intkey=1fp=fopen(F:\\Books_Management_Systen_BMS.dat,a+);key=1?录入图书信息写入文件中输入key值结束fclose(fp)86、图书信息删除函数:delete();本函数的功能是:将已写入文件的图书信息进行删除。NYNYNY开始结束fp=fopen(F:\\Books_Management_Systen_BMS.dat,rb+);intkey=1输入key的值key=1?fclose(fp)输入您要删除图书信息的图书名(fread(&BOOK,sizeof(structbook),1,fp))=1?删除图书信息strcmp(title,BOOK.title)=0?breakintflag=0flag=1?flag=197、图书信息查找菜单:find_menu();本函数的功能是:显示一个菜单供用户选择是按书名查找信息还是按作者名查找图书信息。开始图书查找菜单输入key值key=2Find_author_name();key=1Find_title();key=0退出结束108、按书名查找函数:find_title();本函数的功能是能通过输入图书名查询相关图书的信息。NYNYNYYYN开始结束intkey=1intflag=0fp=fopen(F:\\Books_Management_Systen_BMS.dat,rb);key=1?输入书名(fread(&BOOK,sizeof(structbook),1,fp))=1?strcmp(title,BOOK.title)=0?flag=1breakflag=1?输出查询到的图书信息输入key值fclose(fp);119、按作者名查找图书信息find_author_name():本函数的功能是:通过输入作者名来差查询图书信息。NYNNYYYN开始结束输入作者名fclose(fp);输出图书信息intkey=1intflag=0输入key的值key=1?flag=1breakflag=1?fp=fopen(F:\\Books_Management_Systen_BMS.dat,rb);(fread(&BOOK,sizeof(structbook),1,fp))=1?strcmp(title,BOOK.title)=0?124.3调试与测试包括程序调试过程、数据测试结果分析,测试过程中遇到的主要问题及采取的解决措施;调试与测试:13在测试程序中遇到的问题1:当关闭程序后再运行程序并且录入新的信息,然后去查询以前的信息时,发现以前的信息不存在了。原因:在录入函数中数据写入文件的方式是“wb”,”wb”将数据写入文件的特点是从文件的开头开始写的,当下一次运行程序并录入新的数据时会将原有的信息覆盖。解决方法:在录入函数中将数据写入文件的方式改”a+”,因为”a+”的特点是从文件的末尾开始写入新的数据的,不会覆盖以前的数据。问题2:实现删除功能时是将要删除的信息用空字符串覆盖掉,实质上计算机为原有数据分配的内存空间还存在,这会导致内存的浪费。解决方法:暂且还没有找到解决的方法。14五、设计心得与总结心得与总结进入大学已有一年了,这次的c语言课程设计第一次让我在大学里体验到了疲劳与充实和为了做好一件事的那种激情与奋斗!在这学期刚开始接触c语言的时候感觉这门课程很难学,后来还是坚持下来去认真学并坚持经常敲代码。因为这几个月坚持学c使我有了一定的自学能力,我也体会到了不为考试而学习的那种轻松、愉快的感觉。在本次课程设计中我学到了很多平时没有学到的知识并加强和巩固了我的c语言基础。为了能够独立完成课程设计,我在实习周的前的半个月时间重点学习了文件和结构体的有关内容。经历了这次课程设计,我对文件方面的内容有了进一步的了解。在做这次课程设计的时候,我发现我的基础知识掌握的还不够牢固,平时所敲得代码量还远远不够。这次的课设让我知道了该如何学习其它的编程语言,在平时的学习中要成多问、多看、多敲、多想的习惯。在本次课设中我遇到了一些问题并请教了老师和学长及同学,很感谢他们对我的帮助。通过和罗老师以及张孝勇学长的聊天,我知道了在写程序时要有一个良好的逻辑思维,要想清楚如何去解决一个问题并理清思路,在当自己的程序完成之后要仔细的去找程序中存在的不足并完善,要清楚自己程序中每一个语句的作用。在本次课设中当我完成自己的答辩后,我积极去帮其他同学解决问题。在帮他们修改程序虽然花去了我很多时间和精力,同时我也收获了很多。帮助别人真的是一件很快乐的事情,并且在帮助人的过程中也会有意想不到的收获。在帮同学看程序时,我发现很多代码写的很混乱,给人的第一感觉就是不想看这个程序,有些代码格式也不是很规范,让人看着很不舒服。我发现学会去敲非常规范的代码很重要;在写程序时注释是非常重要的,这也是为了自己和别人能快速的去读懂自己的程序;学习编程语
本文标题:C语言课程设计-图书管理系统
链接地址:https://www.777doc.com/doc-5539007 .html