1目录一、设计任务书…………………………………………………………3二、本组课题及本人任务………………………………………………3三、程序功能简介………………………………………………………4四、主体内容……………………………………………………………41.设计分析………………………………………………………………………42.程序结构………………………………………………………………………53.各模块的功能及程序说明……………………………………………………54.源程序………………………………………………………………………65.操作方法…………………………………………………………………….176.试验结果……………………………………………………………………187.设计体会……………………………………………………………………22五、附录………………………………………………………………231.流程图………………………………………………………………………232.过程列表……………………………………………………………………262一、设计任务书1.目的1)复习、巩固C语言的基础知识,进一步加深对C语言的理解和掌握。2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。3)培养学生在项目开发中团队合作精神、创新意识及能力。2.要求:1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理。2)系统设计要实用,编程简练,可用,功能全面。3)说明书、流程图要清楚。4)记录设计情况(备查,也为编写设计说明书作好准备)。5)要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过和按设计报告格式。6)设计上交内容:设计报告一份(按格式书写);源程序一份,能编译成可执行文件并能正常运行。二、本组课题及本人任务课题:图书信息管理系统设计图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时3间、价格等。试设计一图书信息管理系统,使之能提供以下功能:1.系统以菜单方式工作。2.图书信息录入功能(图书信息用文件保存)--输入。3.图书信息浏览功能--输出。4.查询和排序功能:(至少一种查询方式)--算法。a.按书名查。b.按作者名查询。本人任务:负责设计和编写图书信息管理系统的修改图书信息部分。三、程序功能简介本系统是以visualC++6.0环境下用C语言开发的一个图书管理系统。本系统具有图书信息录入、浏览、删除、修改、查找(包括按书名、作者查找)功能。其中图书信息包括登录号、书名、作者名、分类号、出版单位、出版时间、价格,并且对信息以文件形式储存。另外本系统具备实用性的同时代码逻辑谨慎清晰易懂,且界面美观。四、主体内容1.设计分析本系统共分为一个主页面模块(主函数部分),五个功能模块(功能函数)分别为图书信息录入、图书信息浏览、图书信息查询、图书信息删除、图书信息修改。设计时应该先写好主函数、定义好全局变量和功能函数,再对五个功能函数进行设计。在每个功能函数和主函数应中加入控制条件使用户可以随时退出系统,并在用户输入指令错误的时候给予提醒和退出选项。小组中的五个4人分别承担一个功能模块进行设计。并在每个人设计完成后通过主函数进行链接调试正确后方为完成。2.程序结构(流程图)3.各模块的功能及程序说明A、录入模块:本模块主要执行信息录入功能。B、浏览模块:本模块主要是执行把已有信息输出浏览功能。系统运行选择功能1.信息录入键入信息2.信息浏览返回主菜单返回主菜单3.信息查询按书名查找按作者查找返回主菜单输入书名输入作者信息存在?是否输出信息返回主菜单4.信息删除输入删出信息代号输出删除后的信息返回主菜单5.信息修改输入修改信息代号修改信息存在?是信息修改否返回主菜单输出修改后的信息6.退出系统5C、查询模块:本模块主要是执行按书名和按作者名查找图书信息的功能。D、删除模块:本模块主要执行删除图书信息的功能。E、修改模块(本人设计模块):本模块主要执行图书信息修改功能。在用户选择该功能后。首先,系统会弹出已存在信息列表并让用户选择所要修改的信息项目。然后,当用户选定要修改的信息后会弹出信息目录,用户需按顺序依次修改信息内容。最好当所有信息项目都修改完成之后,按回车键会在窗口上输出修改后的内容。4.源程序#includestdio.h#includestring.h#includestdlib.h#includeconio.h#defineMAX100structStudent{intnum;/*登录号*/charname[100];/*书名*/charauthor[100];/*作者名*/charfn[100];/*分类号*/charplace[100];/*出版单位*/charday[100];/*出版时间*/floatmoney;/*价格*/}stu[MAX];main()/*主函数*/{6voidInput();/*输入*/voidDisplay();/*输出*/voidFind();/*查找*/voidModify();/*删除*/voidChange();/*修改*/intn;for(;;){printf(\n);printf(※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n);printf(※※\n);printf(※欢迎来到图书信息管理系统※\n);printf(※※\n);printf(※※\n);printf(※主菜单※\n);printf(※※\n);printf(※▲1.图书信息录入▲※\n);printf(※※\n);printf(※▲2.图书信息浏览▲※\n);printf(※※\n);printf(※▲3.图书信息查询▲※\n);printf(※7※\n);printf(※▲4.图书信息删除▲※\n);printf(※※\n);printf(※▲5.图书信息修改▲※\n);printf(※※\n);printf(※▲6.退出系统▲※\n);printf(※※\n);printf(※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n);printf(请输入选择项(1-6):);scanf(%d,&n);printf(\n\n\n\n);if(n0&&n7){switch(n){case1:Input();break;case2:Display();break;case3:Find();break;case4:Modify();break;case5:Change();break;case6:printf(※※※※※※※※※※※※※※※※※※※※※※※※\n);printf(※※\n);printf(※谢谢使用!※\n);printf(※再见!8※\n);printf(※※\n);printf(※※※※※※※※※※※※※※※※※※※※※※※※\n);exit(0);}}else{printf(※※※※※※※※※※※※※※※※※※※※※※※※\n);printf(※※\n);printf(※输入错误!※\n);printf(※请退出!※\n);printf(※※\n);printf(※※※※※※※※※※※※※※※※※※※※※※※※\n);break;}}}voidFind()/*查找*/{FILE*fp;inti;intchoose,t;charans[100];9do{printf(1.按书名查找\n);printf(2.按作者名查找\n);printf(返回主菜单(其他数字)\n);scanf(%d,&choose);if(choose==1){printf(输入所查书名:\n);scanf(%s,ans);t=-1;if(choose==1){for(i=0;iMAX;i++)if(strcmp(ans,stu[i].name)==0){t=i;fp=fopen(student,rb);for(i=0;fread(&stu[i],sizeof(structStudent),1,fp)==1;i++)printf(%d%s%s%s%s%s%f\n,stu[t].num,stu[t].name,stu[t].author,stu[t].fn,stu[t].place,stu[t].day,stu[t].money);}}if(t==-1)printf(不存在该信息\n);}elseif(choose==2){printf(输入所查作者名:\n);scanf(%s,ans);t=-1;if(choose==2){for(i=0;iMAX;i++)10if(strcmp(ans,stu[i].author)==0){t=i;fp=fopen(student,rb);for(i=0;fread(&stu[i],sizeof(structStudent),1,fp)==1;i++)printf(%d%s%s%s%s%s%f\n,stu[t].num,stu[t].name,stu[t].author,stu[t].fn,stu[t].place,stu[t].day,stu[t].money);}}if(t==-1)printf(不存在该信息\n);}elsereturn;}while(1);}voidDisplay()/*输出*/{FILE*fp;inti;fp=fopen(student,rb);printf(※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n);printf(图书列表\n);printf(-----------------------------------------------------------\n);printf(登录号书名作者名分类号出版单位出版时间价格\n);printf(-----------------------------------------------------------\n);for(i=0;fread(&stu[i],sizeof(structStudent),1,fp)==1;i++)11{printf(%6d%8s%8s%8s%8s%8s%8.2f\n,stu[i].num,stu[i].name,stu[i].author,stu[i].fn,stu[i].place,stu[i].day,stu[i].money);}fclose(fp);}voidInput()/*输入*/{FILE*fp;intn;fp=fopen(student,ab+);for(n=0;nMAX;n++){printf(n=%d输入序号n(当输入n=-1时,返回),n=,n++);scanf(%d,&n);if(n==-1){fclose(fp);return;}else{printf(请输入登录号书名作者名分类号出版单位出版时间价格\n);scanf(%d%s%s%s%s%s%f,&stu[n].num,stu[n].name,stu[n].author,stu[n].fn,stu[n].place,stu[n].day,&stu[n].money);fwrite(&stu[n],sizeof(structStudent),1,fp);}}fclose(fp);}12voidModify()/*删除*/{FILE*fp;inti,flag,n,s,j;fp=fopen(student,rb+);rewind(fp);printf(图书列表\n);printf(-----------------------------------------------------------\n);printf(登录号书名作者名分类号出版单位出版时间价格\n);printf(--------------------------------------