1、2.3图书名查询模块 42.4出版社查询模块 52.5作者名查询模块 6第3章 调试分析 7第4章 使用说明 84.1 总体查询模块图 84.2 图书名查询模块图 84.3 出版社查询模块图 84.4 作者名查询模块图 9参考文献 10附 录(程序清单) 11第1章 概要设计1.1题目的内容与要求设计一个简单的图书管理程序,可实现对图书馆的图书信息查询。具体内容包括: 1、建立图书信息表,包括:图书名、出版社、作者、ISBN以及简介等信息; 2、作者最多记录3个其他的人以“XX等”表示;。 3、可以按图书名、出版社、作者进行查询1.2总体结构 本程序主要分为四个模块(功能模块图见图1.1):主
2、模块,总体查询模块,图书名查询模块,出版社查询模块,作者名查询模块。总体查询模块:输入文本文件名,显示整个图书信息。图书名查询模块:以图书名的方式查询图书信息。出版社查询模式:以出版社的方式进行查询图书信息。作者名查询模块:输入作者名称来进行相关图书的信息查询。图1.1 功能模块图第2章 详细设计2.1主模块控制整个程序的运行,控制菜单操作,通过主函数模块分别调用各个模块,实现各项功能,流程如图2.1所示。图2.1 主模块流程图2.2总体图书信息模块通过此模块,我们可以了解全部图书信息,包括:图书名,作者,出版社,ISBN等。具体流程如图2.2所示:图2.2 总体图书信息模块流程图2.3图书名
3、查询模块执行此模块时,要输入所要查找图书的图书名,当与图书库中的图书匹配成功后,便将此图的相关信息输出来。具体如图2.3所示:图2.3 图书名查询模块流程图2.4出版社查询模块执行此模块时,要输入所要查找图书的出版社名,当与图书库中的图书的出版社名匹配成功后,便将此图的相关信息输出来。具体如图2.4所示:图2.4 出版社查询模块流程图2.5作者名查询模块执行此模块时,要输入所要查找图书的作者名,当与图书库中的图书作者名匹配成功后,便将此图的相关信息输出来。具体如图2.5所示:图2.5 作者名查询模块流程图第3章 调试分析1.调试时发现文件不能打开,原来打开的方式弄错了。开始我是以写的方式进行的
4、,发现错误后改用了以读写的方式打开文件,这回才真的OK。2.程序中有些错误时由于马虎造成的,比如有的忘记加;。3.结构体数组开始时不怎么会用,请教同学后又看看书,总算理解了,改正时程序中的错误。第4章 使用说明 4.1 总体查询模块图进行程序调试时,输入功能选项1,可以查询整个图书信息。如图4.1所示:图4.1 查询模块4.2 图书名查询模块图输入功能选项2,按图书名进行查询信息。如图4.2所示:图4.2 图书名查询模块4.3 出版社查询模块图输入功能选项3,按出版社进行查询信息。如图4.3所示:图4.3出版社查询模块4.4 作者名查询模块图输入功能选项4,按作者名进行查询信息。如图4.4 所
5、示:图4.4 作者名查询模块参考文献1 张长海.C语言课程设计M.北京:高等教育出版社,20062 谭浩强.C语言程序设计(第五版)M.北京:清华大学出版社,20113 黄晓宇,丁敬忠.大学计算机基础M.北京:邮电大学出版社,20104 陈世清. C语言程序设计M.浙江:浙江大学出版社,20125 张基温.C程序设计案例教程M.北京 清华大学出版社,2006附 录(程序清单)#includestring.hstdlib.hstruct st char shuming20; char chuban20; char zuozhe20; char shuhao20;std5;void read()
6、int i; FILE *fp; char path5; printf(请输入操作的文件名:); scanf(%s,&path); fp=fopen(path,r+ if(fp=NULL) printf(can not open the file exit(-1); for(i=0;i5;i+) fscanf(fp,%s %s %s %snstdi.shuming,&stdi.chuban,&stdi.zuozhe,&stdi.shuhao);%s%s%s%sn,stdi.shuming,stdi.chuban,stdi.zuozhe,stdi.shuhao); fclose(fp);void
7、 serch1() char x20;请输入所要查询的图书名n:x); if(strcmp(stdi.shuming,x)=0) printf(%s%s%sn,stdi.chuban,stdi.zuozhe,stdi.shuhao);void serch2() int a; char y20;请输入所要查询图书的出版社n:y); for(a=0;aa+) if(strcmp(stda.chuban,y)=0),stda.shuming ,stda.zuozhe,stda.shuhao);void serch3() char z20;请输入所要查询图书的作者n:z);10; if(strcmp(
8、stdi.zuozhe,z)=0),stdi.shuming ,stdi.chuban,stdi.shuhao);void main() int m; *欢迎使用图书查询软件* n按1,读取图书信息 n按2, 按图书名查询 n按3,按出版社查询 n按4,按作者查询 n按5,完成退出n do请输入您想要的功能选项:n scanf(%dm); if(m=1) read(); else if(m=2) serch1(); else if(m=3) serch2(); else if(m=4) serch3(); else if(m=5) 完成退出break; else printf(!错误!按键范围
9、15n while(1);课程设计总结:通过此次课程设计,我掌握了编程工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程及其相关的技术,对课本上的知识也有了更深的理解。老师常说,课本上的知识是机械的,表面的,要学会去运用,要举一反三。现在终于深刻的了解了这句话。经过这次的课程设计,发现书本上很深奥的知识变的更为简单,同样,对实验原理也了有更深的理解。知道和理解了该理论在计算机中是怎样执行的, 对该理论在实践中的应用有深刻的理解 。通过该课程设计,把死板的课本知识变得生动有趣,激发了学习的积极性。能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,注意指针,将不必要的命令去除。除了课堂外,课程设计是最能学到东西的,最考验人的。在做课程设计的这段时间,时刻都感到自己学的知识有多么的贫瘠。经过这次课程设计,让我对C+这门语言有了更深的认识,操作能力有了提高要想是写出的代码能运行,需要耐心细心,毅力以及充沛的体力。只有经过多次编辑,多次编译,再多次运行,才能编写出更好的程序,有时候需要多次的更正才能达到所要的运行结果。指导教师评语:指导教师(签字): 年 月 日课程设计成绩