《图书信息管理系统设计(共18页).doc》由会员分享,可在线阅读,更多相关《图书信息管理系统设计(共18页).doc(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上课 程 设 计课设报告打印须知:在打印之前,先在打印对话框的属性打印内容中,选择文档,不要选显示标记的文档,否则打印出来的报告包含标注。 课程名称 高级语言程序课程设计 题目名称 图书信息管理系统设计 学生学院 自动化学院 专业班级 自动化06级( )班 学 号 学生姓名 蓝源炽 指导教师 杨其宇 2007年6月18日广东工业大学课程设计任务书题目名称填入你所选择的题目,小四,宋体加粗图书信息管理系统设计学生学院自动化学院专业班级自动化06级( )班姓 名你的姓名蓝源炽学 号学号一、课程设计的内容将所选的题目的内容copy过来,包括功能要求等等。不记得可以看附录。字体
2、是楷体,注意排版,不要让下一页(老师签名那页)跨页!C题目二:图书信息管理系统设计图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:系统以菜单方式工作v图书信息录入功能(图书信息用文件保存)输入v图书信息浏览功能输出v查询和排序功能:(至少一种查询方式)算法vl 按书名查询l 按作者名查询图书信息的删除与修改(可选项)v 二、课程设计的要求与数据1、进一步掌握和利用C语言进行程设计的能力;2、进一步理解和运用结构化程序设计的思想和方法;3、初步掌握开发一个小型实用系统的基本方法;4、学会调试一个较长程序的基本方法;5、学会利用
3、流程图或N-S图表示算法;6、掌握书写程序设计开发文档的能力。三、课程设计应完成的工作1、编写完成相应题目的程序;2、编写课程设计报告,课程设计报告的内容应包括以下6个部分:1) 需求分析:包括设计题目、设计要求以及系统功能需求分析;2) 总体设计:包括系统总体设计框架和系统功能模块图;3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;4) 调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等,适当的包含结果截图);5) 总结:课程设计完成了哪些功能,有没有什么扩展功能?还有哪些地方需要改进?课程
4、设计过程中的学习体会与收获、对本次课程设计的认识以及自己的建议等内容; 6) 附录:主要源程序代码,含必要的注释。3、答辩:在实验室建立程序运行的环境,并在指导教师的监督下,独立解 决问题、运行程序和回答教师提出的问题。四、课程设计进程安排序号设计各阶段内容地点起止日期1下达任务书,说明设计要求;收集资料实验3#5176.182总体方案设计、详细设计实验3#5176.193编写程序,调试分析实验3#5176.204撰写报告并上交,答辩实验3#5176.21五、应收集的资料及主要参考文献注意参考文献的格式要求,依照下面的两个的格式填写,可以是网页,书,杂志, 合计最少3本(已有的两个谭老师的算2
5、本).1 谭浩强.C程序设计(第三版)M,北京:清华大学出版社,2005.92 谭浩强. C程序设计题解与上机指导(第三版)M,北京:清华大学出版社,2005.7发出任务书日期: 2007年 6 月 18 日 指导教师签名:计划完成日期: 2007年 6 月 22 日 基层教学单位责任人签章:主管院长签章:前面的排版注意不要使这页跨页!切记切记!目 录1 设计目的与要求页码2 总体设计页码3 详细设计页码3.1功能模块设计页码3.1.1 XX功能模块(可选) 页码3.1.1 YY功能模块(可选) 页码3.1.1 ZZ功能模块(可选)页码3.2数据结构设计页码4调试分析 页码5 总结页码6 附录
6、页码6 答辩记录(正文处请留出适当空白) 页码7 指导教师意见(正文处请留出十行空白) 页码1 目的与要求正文内容采用5号宋体写.题目:图书信息管理系统设计图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:系统以菜单方式工作v图书信息录入功能(图书信息用文件保存)输入v图书信息浏览功能输出v查询和排序功能:(至少一种查询方式)算法vl 按书名查询l 按作者名查询图书信息的删除与修改(可选项)v需求说明:图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等并且要求职工号不重复;录入的图书信息要求用文件形式保存,
7、并可以对其进行浏览、查询、修改、删除等基本操作;对图书信息查询应能够分别按书名及作者名两种方式进行,要求能返回所有符合条件的职工的信息;对职工信息的修改应逐个地进行,一个职工信息的更改不应影响其他的职工记录;系统应以菜单方式工作,应为用户提供清晰的使用提示,依据用户的选择来进行各种处理。 2 总体设计文件保存图书信息管理系统按作者名查询删除按书名查询按登陆号排序 菜单选择输入修改输出查询菜单选择模块完成用户命令的接收,此模块也是图书信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能;输入模块完成图书信息的输入功能,输入信息包括登陆号、书名、作者名、
8、分类号、出版社、出版日期、价钱等;输出模块完成已录入图书信息的显示;查询模块完图书信息的查询,查询时对应有按书名查询和按作者名查询两种方式;修改模块完成图书信息的修改功能;删除模块完成图书信息的删除功能;按登陆号排序模块完成对信息的排序;文件保存模块完成文件的保存。3 详细设计(内容可以适当调整,清晰的有条理的把你的设计思路表达出来)3.1功能模块设计3.1.1 XX功能模块(可选)3.1.2 YY功能模块(可选)3.1.3 ZZ功能模块(可选)3.2数据结构设计(可选) 菜单选择模块:(给出信息提示;绘制菜单(包含输入、显示、查询、修改、删除、退出、排序);提示菜单选择并读入到变量;根据读入
9、变量的值调用不同的模块函数;) 信息输入模块:(打开职工信息文件;发出输入提示信息; 输入职工信息;提示是否继续输入;读入到变量;根据读入变量的值进入菜单或输入函数模块;) 信息输出模块:(输出所有图书的所有信息。) 信息查询模块:(调用switch函数; 给出信息提示;提示菜单选择并读入到变量;根据读入变量的值进入不同的case;Case 1 给出信息提示;提示菜单选择并读入到变量;Strcmp函数将保存的信息与变量比较,如有相同,就输出该图书的所有信息;否则,提示出错。Case 2 给出信息提示;提示菜单选择并读入到变量;Strcmp函数将保存的信息与变量比较,如有相同,就输出该图书的所有
10、信息;否则,提示出错。)5 信息修改模块:(给出信息提示;提示菜单选择并读入到变量;Strcmp函数将保存的信息与变量比较,如有相同,就输出该图书的所有信息,并提示输入新的图书信息;否则,提示出错。)6信息删除模块:(给出信息提示;提示菜单选择并读入到变量;Strcmp函数将保存的信息与变量比较,如有相同,就输出该图书的所有信息,并删除该图书的图书信息;否则,提示出错。)7排序模块(看能不能打开程序;如能,则用冒泡法排序;输出排序后的所有信息)8 文件保存模块(看文件能不能读;否则提示出错。看文件的长度符不符合要求;否则提示出错。保存文件)4 调试分析一实现程序:首先进入如下界面: 1:inp
11、ut 2:output 3:save 4:search 5:xiugai 6:del7:sort 0:exit;二输入“1”,后按“num登陆号”, book_name书名,writer作者名,sort。name分类号,出版社pubconpany,出版时间pubtime,价钱price顺序输入两组数据:“1,we,er,1,as,1234,34”“2,ew,re,2,sa,4321,43”三输入“3”保存。四输入“2”输出数据:“1,we,er,1,as,1234,34”“2,ew,re,2,sa,4321,43”五输入“4”查找,“请选择按书名或作者名查询: 1:书名。 2作者名 “输入“1
12、“或”2“分别查询。输入“1“和“we“,输出“1,we,er,1,as,1234,34”;输入2和“re“,输出“2,ew,re,2,sa,4321,43” 符合要求六 输入”5”或“6“进行修改或删除。输入修改的书名“we”显示“1,we,er,1,as,1234,34”及“please input xiugais the informations”,后输入新信息,再输入“3”保存。七输入7按登陆号排序。运行正常,输入0退出。调试过程中,问题很多比如说编写排序和文件保存函数时,对fopen函数认识不够,一开始是用if(fp=fopen(f:c,rb)=NULL)这个语句,调试的时候一直都最
13、少都是一个错误:后来怎么弄都纠正不了。后来慢慢的查书,逐行检查。才终于改正为 if(fp=fopen(file.c,wb)=NULL)。程序终于可以运行。通过这我懂得:写程序时一定要严谨,尽可能写下的每一行不出错。否则调试时会很麻烦。5 总 结 本次课程设计是我这学期编写的第一个大程序,从花费的过去三天总计十七个小时中,我得到如下收获:1 用好C语言某种程度上关键就是用好所需的各种函数的调用,c语言的确是一种结构化的语言。2 学会和加深了对于结构体和共用体的理解,以及在程序中怎样实现文件函数的输入输出和文件的定位。3 只有上机实践才能检验自己写的程序,看是看不出来的。4 深深懂得调试、书写规范
14、和检错的重要性。5 连续三天每天六小时端坐在电脑前动都不能动,绞尽脑汁艰苦奋斗的经历告诉我:程序员这种工作,真的不是人干的.7.附录#include #include #include #define N 10struct library int num; char book_name30; char writer30; char sort_num3; char pub_company30; char pub_time30; char prise30;typedef struct library LIB;LIB libN;FILE *fp;int all=0;int menu(void);vo
15、id input(void);void output(void);void save(void);void del(void);void search(void);void xiugai(void);void sort(void);main() for(;) switch(menu() case 1:input();break; case 2:output();break; case 3:save();break; case 4:search();break; case 5:xiugai();break; case 6:del();break;case 7:sort();break; case
16、 0:exit(1);break; int menu(void) /*显示主菜单*/ char m3; int n; printf(tt1:inputn); printf(tt2:outputn); printf(tt3:saven); printf(tt4:searchn); printf(tt5:xiugain); printf(tt6:deln); printf(tt7:sortn); printf(tt0:exitn); printf(ttplease choose a operation(0-6):n); scanf(%s,m); n=atoi(m); return(n);void
17、input(void) /*显示输入函数*/ int i; char m3; for(i=all;iN;i+) all+; printf(please input informations:n); printf(ttnum:n); scanf(%d,&libi.num); printf(ttbook_name:n); scanf(%s,libi.book_name); printf(ttwriter:n); scanf(%s,libi.writer); printf(ttsort_num:n); scanf(%s,libi.sort_num); printf(ttpub_company:n);
18、 scanf(%s,libi.pub_company); printf(ttpub_time:n); scanf(%s,libi.pub_time); printf(ttprise:n); scanf(%s,libi.prise);a: printf(ttyes/no continue input?n); printf(tt1:yesn); printf(tt2:non); scanf(%s,m); if(atoi(m)=1) continue; else if(atoi(m)=2) return; else printf(ttinput error!n); goto a; void outp
19、ut(void) /*显示输出函数*/ int i; for(i=0;iall;i+) printf(tt%dn,libi.num); printf(%stt%stt%sn,libi.book_name,libi.writer,libi.sort_num); printf(%stt%stt%sn,libi.pub_company,libi.pub_time,libi.prise); void sort(void)/*从登陆号从大到小排序的函数*/int b,i;struct library flash;if(fp=fopen(file.c,wb)=NULL) printf(cannot ope
20、n filen); return; for(b=0;bN;b+)for(i=b+1;iN;i+)if(strcmp(libb.sort_num,libi.sort_num)0)flash=libb;libb=libi;libi=flash;printf(the down object is:n);printf( num bookname writer sort_num pub_company pub_time prisen);for(b=0;bN;b+)if(libb.sort_num0!=0)printf(%d %s %s %s %s %s %sn,libb.num,libb.book_na
21、me,libb.writer,libb.sort_num,libb.pub_company,libb.pub_time,libb.prise);else break;void save(void) /*文件保存*/ int i;if(fp=fopen(file.c,wb)=NULL) printf(can not open the file); exit(1); for(i=0;iall;i+) if(fwrite(&libi,sizeof(LIB),1,fp)!=1) printf(can not write!); exit(1); fclose(fp);void search(void)
22、/*书名和作者名查找*/ int i,flag; char m3; char name30; printf(tt请选择按书名或作者名查询:n); printf(tt1:书名n); printf(tt2:作者名n); scanf(%s,m); i=atoi(m); switch(i) case 1: printf(ttplease input the book_name:n); scanf(%s,name); flag=0; for(i=0;iN;i+) if(strcmp(name,libi.book_name)=0) printf(tt%dn,libi.num); printf(%stt%s
23、tt%sn,libi.book_name,libi.writer,libi.sort_num); printf(%stt%stt%sn,libi.pub_company,libi.pub_time,libi.prise); flag=1;break; if(flag=0) printf(ttnot find the book!n); break; case 2: printf(ttplease input the writer:n); scanf(%s,name); flag=0; for(i=0;iN;i+) if(strcmp(name,libi.writer)=0) printf(tt%
24、dn,libi.num); printf(%stt%stt%sn,libi.book_name,libi.writer,libi.sort_num); printf(%stt%stt%sn,libi.pub_company,libi.pub_time,libi.prise); flag=1;break; if(flag=0) printf(ttnot find the wtiter!n); break; void xiugai(void) /*显示修改函数*/ int i,flag; char name30,n3; printf(ttplease input the book_name of
25、xiugai :n); scanf(%s,name); flag=0; for(i=0;iN;i+) if(strcmp(name,libi.book_name)=0) printf(tt%dn,libi.num); printf(%stt%stt%sn,libi.book_name,libi.writer,libi.sort_num); printf(%stt%stt%sn,libi.pub_company,libi.pub_time,libi.prise); printf(ttplease input xiugais the informations:n); printf(ttnum:n)
26、; scanf(%d,&libi.num); printf(ttbook_name:n); scanf(%s,libi.book_name); printf(ttwriter:n); scanf(%s,libi.writer); printf(ttsort_num:n); scanf(%s,libi.sort_num); printf(ttpub_company:n); scanf(%s,libi.pub_company); printf(ttpub_time:n); scanf(%s,libi.pub_time); printf(ttprise:n); scanf(%s,libi.prise
27、); flag=1;break; if(flag=0) printf(ttnot find xiugais the book!n);void del(void) /*显示删除函数*/ int i,flag,n; char name30; printf(ttplease input the book_name of del:n); scanf(%s,name); flag=0; for(i=0;iN;i+) if(strcmp(name,libi.book_name)=0) printf(tt%dn,libi.num); printf(%stt%stt%sn,libi.book_name,lib
28、i.writer,libi.sort_num); printf(%stt%stt%sn,libi.pub_company,libi.pub_time,libi.prise); libi.num=libn-1.num; strcpy(libi.book_name,libn-1.book_name); strcpy(libi.writer,libn-1.writer); strcpy(libi.sort_num,libn-1.sort_num); strcpy(libi.pub_company,libn-1.pub_company); strcpy(libi.pub_time,libn-1.pub_time); strcpy(libi.prise,libn-1.prise); n=n-1; flag=1; printf(ttdel ok!n); break; if(flag=0) printf(ttno information of the book!n);7 答辩记录序号问 题回 答123458 指导教师意见 指导教师签名:专心-专注-专业