《图 书 信 息 管 理 系 统14》由会员分享,可在线阅读,更多相关《图 书 信 息 管 理 系 统14(19页珍藏版)》请在金锄头文库上搜索。
1、西安郵電學院高级语言课程设计报告题 目: 图 书 信 息 管 理 系 统 系部名称:电信系专业名称:科技班 级:0701班内序号:14学生姓名 : 张利萍指导教师:黄茹时间:2008年6月10日 至2008年6月20日实验题目:图书管理系统一、 实验目的1. 熟悉c语言的编译连接和运行过程。2. 掌握c语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。3. 掌握if语句及switch语句的运用方法及嵌套应用方法。4. 掌握实现循环结构的三种语句while、do-while.、for 的使用。5. 掌握函数的定义方法和调用方法。6. 能够采用模块化思想调试程序。二实验内容1.
2、 编写程序并进行调试运行。2. 输入图书资料,并保存于文件。每种图书包含信息如:图书序号、图书名称、图书种类、图书总库存量、图书现库存量、作者等。3. 对已存入的图书信息进行更新操作,包括添加一个新图书信息、删除某个图书信息和修改某个图书信息。4. 通过输入书名、输入作者、输入作者的方式查询图书信息。5. 并且可以输出图书信息,供需要时打印。 二、 需求分析1. 该程序可用于对图书基本信息的存储、更新、查询、统计、排行、输出等操作,以实现对图书的管理。2. 其中更新功能包括:添加信息、删除信息、修改信息,可根据需要添加一个或多个图书信息,也可对个别图书信息进行适当的删除或修改,以便随时更新图书
3、信息。3. 程序中设计的查询功能可根据需要从若干数据中查询某个图书信息,并且可根据四种不同的方法查询:按名称查询、按种类查询、按作者查询、按书名和作者查询,以满足不同的需要。四、概要设计1、方案设计对系统进行分析,给出结构图 分析:系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计 结构图如下:图书管理系统 退出系统统计模块排序模块查询模块更新模块输出模块输入模块退出系统按总库存统计按现库存统计退出系统按现库存排序按总库存排序退出系统按种类和作者查询按种类查询按作者查寻按书名查询修改学生信息删除学生信息添加学生信息
4、 退出系统2.模块功能说明 (对各个模块进行功能的描述)(1).输入模块:录入需要管理的图书信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。(2).添加模块:可添加一个或多个图书信息,并将所添加图书信息保存,方便查找。 (3).删除模块:可对图书信息做删除处理。(4).修改模块:可根据需要对多个图书信息进行修改,也可随时对个别项进行修改。(5).查询模块:可对已建立的图书信息进行查询,并且可根据需要选择按书名、种类、作者或按书名和作者查询。(6).保存模块:用于对信息进行保存。 (7).输出模块:将所有图书信息或想要查询的图书信息显示于屏幕,用于打印图书信息或查找某些图书信息。
5、(8).统计模块和排序模块: 便于查看图书整体信息.(9).退出系统:选择该项,自动退出该系统。五、详细设计及运行结果流程图, 函数之间相互调用的图示 ,程序设计及编码, 运行结果。(其他小模块类似)开 始输入i的值判断i的值输入模块输出模块统计模块更新模块退出系统排序模块查询模块输要查询的值输要更新的 值判断i的值判断i的值退出系统按总库存退出系统添加信息修改信息删除信息按现库存 六 调试情况及运行结果1、 对自己设计进行评价,指出合理和不足之处,提出改进的方案。此次实践课编写的是一个应用程序,相对于以前我们见到的程序,它要大得多,运行的结果也没有预想中的好,数据的输出格式不太规范,而且各模
6、块也出现了一些小问题,在同学们的帮助下,我很有耐心的一次又一次的进行修改,最后运行的结果基本上达到了预期的目的。可着毕竟是第一次独立完成这样的大程序,结果还不是太理想。由于时间很短,在选题报告中设想到的好多功能都没有实现。已有的那些功能虽已能基本上满足用户的需要,但如果还有更多的功能程序就会更加完美。如:没有借书和还书的相关模块。2、在设计过程中的感受。本次C 语言的实习课让我对C 语言的学习又有了更深入的了解,也让我更深刻地领悟到了“实践出真理”这个道理,在上机实践过程中学到的知识远远超过了在课堂上十几周学到的,学校组织的这次实习让我们这些实践知识匮乏的大学生增添了许多社会经验,为我们将来走
7、上工作岗位其了不小的铺垫作用。本次实习中遇到了很多以前没有遇到过的问题,也曾想过要放弃,但看到那些同学都在那认真的写程序,给了我继续的信心。在同学和老师的帮助下,我顺利的结束了本次实习,让我知道原来凭借自己努力取得的成功会让自己这么欣慰,也让我知道了友谊和团结的重要性。七参考文献C语言程序设计 王曙燕 曹锰 科学出版社 2006年6月 八。附录: #include#include #define M 2#define N 2#define PRINT1 printf(-n)#define PRINT2 printf(图书号-图书名称-图书种类-图书总量-图书现库存量-出版日期-作者-出版商n)
8、#define PRINT3 printf(%12d%8s%8s%8d%8d%8d-%2d-%2d%8s%12s, booksi.num,booksi.name,booksi.kind,booksi.add,booksi.current_add,booksi.pub_time.year,booksi.pub_time.month,booksi.pub_time.day,booksi.writer,booksi.factory);int sum; /*用来记录图书数目*/ /*日期结构体类型*/struct dateint year; int month; int day;/*图书结构体类型*/
9、struct books_typeint num;char name10;char kind10;int add; /*图书总库存量*/int current_add; /*图书现库存量*/struct date pub_time;char writer10;char factory10;booksM; /*存放M种图书记录的结构体数组*/*保存信息*/save_message(int sum)FILE *fp;int i;if(fp=fopen(tushuguanli.txt,wb)=NULL) printf(读文件错误!n); return; for(i=0;isum;i+)if(fwri
10、te(&booksi,sizeof(struct books_type),1,fp)!=1)printf(写文件错误!n);fclose(fp);/*输入模块*/input_message()int i=0,s=M; clrscr(); printf(nn 录入图书信息(最多%d种)n,s); printf( -n); do printf(n 第种%d图书,i+1); printf(n 图书号:); scanf(%d,&booksi.num); if(booksi.num=0) break ; printf(n 图书名称:) ; scanf(%s,booksi.name); printf(n
11、图书种类:); scanf(%s,booksi.kind); printf(n 图书总量:); scanf(%d,&booksi.add); printf(n 图书现库存量:); scanf(%d,&booksi.current_add) ; printf(n 出版日期:); scanf(%d-%d-%d,&booksi.pub_time.year,&booksi.pub_time.month,&booksi.pub_time.day); printf(n 作者:); scanf(%s,booksi.writer); printf(n 出版商:); scanf(%s,booksi.factor
12、y); i+; while(iM); printf(n -%d种图书信息输入完毕!-n,i); sum=i; printf(n 按任意键返回主菜单!); bioskey(0);/*读取信息*/int read_message()FILE *fp; int i=0; if(fp=fopen(tushuguanli.txt,rb)=NULL) printf(nn*暂时还没有任何库存信息,按任意键进入主菜单选择基本信息的录入!*n); return 0; while(feof(fp)!=1) fread(&booksi,sizeof(struct books_type),1,fp); if(booksi.num=0) break; else i+; fclose(fp); return(i); /*输出模块*/output_message()int i=0,j=0,count,page=1; clrscr(); printf(nn -图书信息表- 第%d页nn,page); PRINT2; PRINT1; do if(booksi.n