图书信息管理系统-C语言课程设计报告_第1页
图书信息管理系统-C语言课程设计报告_第2页
图书信息管理系统-C语言课程设计报告_第3页
图书信息管理系统-C语言课程设计报告_第4页
图书信息管理系统-C语言课程设计报告_第5页
已阅读5页,还剩66页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计报告课程名称C语言程序设计课题名称图书信息管理系统专业电子技术班级1101班学号201101040240姓名陈正军指导教师2012年6月19日湖南工程学院课程设计任务书课程名称课题C语言程序设计图书信息管理系统专业班级电子技术1101班学生姓名陈正军学号201101040240指导老师审批任务书下达日期2012年6月19日任务完成日期2012年7月4日一、设计内容与设计要求1设计内容:图书信息管理系统设计涉及的知识点:掌握并熟练运用C语言的基本数据类型与各种表达式,程序的流程控制语句;掌握数组的基本概念。熟练掌握一维数组、二维数组的应用、掌握字符数组与字符串的关系以及字符串的简单处理。

2、掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示,结构体变量的赋值含义,结构体与指针、函数的关系。掌握文件、文件类型指针的基本概念,熟练掌握文件的打开与关闭以及文件的建立、读写等有关操作。2设计要求:1)用C语言实现系统;利用结构体数组实现图书信息的数据结构设计;系统的各个功能模块要求用函数的形式实现;应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观。2)建立一个图书信息数据库,文件名为book.txt,并从该文件中读

3、取数据;3)图书信息管理系统应能提供以下功能:系统以菜单方式工作图书信息显示功能;能以表格形式显示图书库中所有信息,且应有表头。图书信息追加功能;追加一条(或多条)新记录,要求在追加过程中有相应的提示信息,完成追加后能重新排序和显示;图书信息查询功能;a.按书名查询;b.按单价查询;c.按出版单位查询;d.按出版时间查询e.按分类号查询;f.按入库时间查询要求系统在上述查询方式中至少应有两种以上的查询方式,且能显示符合条件的所有记录。图书信息的删除;要求可按指定的图书编号和指定的图书书名两种定位方式删除图书记录。图书信息的修改;要求能按指定的图书编号和按指定的图书书名两种定位方式进行修改,且可

4、以按用户要求修改记录中除图书编号和书名以外的指定内容,并重新显示;图书信息的统计:能按指定的图书分类号或按指定的单价两种方式分别进行统计,并将统计的结果以及被统计的图书信息用表格的形式显示;能按图书单价排序(降序)要求在删除模块、修改模块和查询模块中若找不到所需的记录时,系统设计中应有一定的提示信息。4)说明:(1)要求将修改后的数据写入到一个新的数据文件newbook.txt中。(2)对系统有兴趣的同学可以在实现基本要求的基础上,完善系统的其它功能。5)图书信息管理系统采用一个结构体数组,图书信息包括:图书编号、分类号、书名、作者名、出版单位、出版时间、入库时间、价格等,其数据库结构如下:i

5、ntbh/*图书编号*/intflh/*分类号*/charsname15/*书名*/charzname10/*作者名*/charcbdw20;/*出版单位*/charcbdate8/*出版时间*/charrkdate8/*入库时间*/doubledj/*单价*/注意:图书编号不能重复且不少于4位数字,各项字符串的长度要求在410之间,数据库应有10条或多于10条以上的记录。6)要求:要求每个学生必须独立思考,认真并按时完成本课程设计所包含的所有内容;要求学生必须按照课程设计报告的完整格式说明设计内容,设计任务分析过程和算法,给出程序流程图和全部源程序;设计报告的完整格式应包括以下部分的内容:系

6、统设计总体思路;系统的主要功能;系统功能模块的划分(要求画出总体模块框图);主要功能的实现和各个程序模块说明(每个功能模块的框图、系统主模块的流程图,各个功能模块至少要有一个主要的流程图);程序调试过程及各模块调试中相应的部分截图;课程设计总结与体会(不少于500字)。课程设计参考文献;程序清单;课程设计周内,凡规定的集中上机时间必须到机房调试程序;子文档。7)分组及安排所选题目根据学生班号和学号确定,(班号+学号)%6+1。如你的班号为01班、学号为01,则所选题目号为:(1+1)%6+13,即课题号为3。8)成绩评定程序设计方案是否合理;程序设计是否正确;调试结果;设计说明书的质量高低;答

7、辩时回答问题情况;课程设计周表现情况;总评成绩记入“课程设计成绩评分表”。二、进度安排第19周星期一8:0012:00星期二8:0012:00星期三14:0018:00星期四14:0018:00讲课、布置任务机房上机调试程序机房上机调试程序机房上机调试程序、答辩附:课程设计报告排版、打印和装订要求1.课程设计报告装订顺序:封面、任务书、目录、正文、附件、评分表。按A4大小的纸张排版和打印。2.设计报告的页码从目录之后开始使用;3.正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22磅。正文中程序清单(英文)用英文字体TimesNewRoman,单倍行间距。4.正

8、文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图)三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试(各模块至少有一个程序调试的截图);五、总结(不少于500字);六、参考文献;t、附件(包含所有程序的原代码,且程序中应有必要的注释)八.正文总字数要求在5000字以上(不含程序原代码)。5设计报告中任务书和评分表不需重新排版。目录一系统的主要思路.1二、系统的主要功能.21、显示功能.22、追加功能.23、修改模块.24、删除模块.25、查询模块.26、统计模块.27、排序模块.38、退出模块.3三系统功能模块的划分.31.总体模块功能框图.3四总流程图.4

9、1.总流程图.42.八大模块的流程图.6五程序调试.151.显示模块.162.追加模块.173.修改模块.194.删除模块.225.查询模块.256.统计模块.287.排序模块.308.退出模块.32六心得与体会.32七参考文献:.33八附件:.33一系统的主要思路此系统事用C语言实现一个图书馆信息管理系统;利用结构体数组实现图书馆信息的数据结构;例如,删除图书信息、追加图书信息、修改图书信息、图书信息的统计等等;系统的各个功能调用各个函数的形式实现;并提供一个界面来调用,各个功能的操作。首先我们要对系统操作就必须先创建一个数据库,用来存放各图书的信息,如:图书编号、分类号、书名、作者名、出版

10、单位、出版时间、入库时间、单价等。并用读函数fscanf读取数据,然后才能进入主控程序。然后,运行该程序显示的为主菜单界面,并且主菜单界面显示调用各个功能函数的功能键;通过提示用户,调用各个功能操作。按下相应的功能键,就会进入相应的功能模块系统,并进行相应的操作。程序操作完并正常退出后,系统又会调用写函数fprintf将修改过的数据存入一个新的文件。图书馆信息管理系统存放了每种图书的图书编号、分类号、书名、作者名、出版单位、出版时间、入库时间、单价的数据库。每本书的信息定义在一个结构体变量中。其结构如下:系统通过显示程序、追加程序、查询程序、删除程序、修改程序、排序程序来实现图书馆信息管理系统

11、的显示功能、追加功能、查询功能、删除功能、修改功能、排序功能和统计功能。各个功能的调用通过主函数中的switch语句来实现。1二、系统的主要功能1、显示功能通过设计此模块,来实现图书馆图书信息的显示。以便于浏览图书信息。2、追加功能通过设计此模块,以便当加入新的图书信息的时候,来实现新图书信息的加入。3、修改模块通过设计此模块,当要对某一信息进行修改时,可以通过此模块来进行修改。并且可以按用户指定的信息进行修改。4、删除模块通过设计此模块,可以按用户指定的图书编号和指定的图书书名进行图书记录的删除。5、查询模块通过设计此模块,可以按图书编号和书名来查询图书库的所有的信息,并可以显示所查询的图书

12、信息。6、统计模块通过设计此模块,当输入所要统计的图书的单价或分类号时,可以按图书的单价和分类号进行统计,并显示统计之后的图书总数。27、排序模块通过设计此模块,来实现书籍库的信息按图书单价进行排序。8、退出模块通过设计此模块,来实现退出系统主菜单。三系统功能模块的划分1.总体模块功能框图主函数显示模块追加模块查询模块删除模块修改模块排序模块退出模块退出3四总流程图1.总流程图4进入输出Sele=?Sele=1Sele=2Sele=3Sele=4Sele=5Sele=6追加模块修改模块删除模块查询模块统计模块排序模块显示模块输出退出程序退出52.八大模块的流程图2.1显示模块开始输入1显示模块

13、输出退出62.2追加模块开始输入2追加模块输出追加几显示模块退出72.3修改模块开始输入3修改模块输入nnSele=1输入修改信息(图书编Sele=2输入修改信息(图书书输入mSele=1m=?Sele=2显示模块退出82.4删除模块开始输入4删除模块输入删除信息输入1或2Sele=1n=?Sele=2退出92.5查询模块10开始输入5查询模块输入nSele=3n=?Sele=1Sele=2图书编号图书书名查询信息输入mSele=1m=?Sele=2退出112.6统计模块12开始输入6统计模块输入统计信输出显示信息退出132.7排序模块开始输入7排序模块输入排序信息输出排序信息n=?Sele=

14、1Sele=2退出142.8退出模块开始输入8退出五程序调试在VC的环境下,调试程序,进入菜单界面151.显示模块从菜单界面输入“1”,进入显示模块16显示的信息如上图所示。2.追加模块17请输入数字2,进行追加两条信息追加信息如上图所示:若选择1,则继续追加;若选择2,则退出此模块,并进入显示模块183.修改模块输入数字3,进入修改模块19若输入数字1,则按图书编号修改20修改后结果如上:若输入2,则退出此模块,如下图所示:214.删除模块选择数字4,进入删除模块:22选择1,按图书编号删除,如上图所示。23删除后的结果如上。24按任意键退出,返回主界面。如上图所示。5.查询模块输入数字5,

15、进入查询模块25输入1,则进行查询若输入1,则按图书编号查询26若输入2,则按书名进行查询若输入1,则继续进行查询27若输入2,则退出此模块。并进入现实模块6.统计模块输入数字6,进入统计模块28若输入数字1,则按单价进行统计若输入数字2,则按分类号进行统计297.排序模块输入数字7,进入排序模块若输入数字1,则按单价升序排序30若输入数字2,则按单价降序进行排序318.退出模块输入数字8,进入退出系统模块六心得与体会通过这次课程设计,我体会到了C语言课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。.随着科学

16、技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。万事开头难啊!回顾起此次课程设计,至今我仍感慨颇多,的确,从拿到题目到完成整个编程,从理论到实践,在整整一个半个月的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。32通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这

17、毕竟第一次做课程设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,复习的不够仔细,比如说函数,数组,结构体等等。这次课程设计让我更加体会到了坚持的重要性,坚持后总会有所收获!虽然中间过程很艰难,但最后发现还是受益匪浅!过这次课程设计之后,都把以前所学过的知识重新温故了一遍。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在肖老师,王老师和黄老师的辛勤指导下,终于顺利完成。同时,在肖老师的教导里我学得到很多实用的知识和学好C语言的方法,在次我表示衷心的感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示由衷

18、的感谢!在今后的日子里,一定要学会多自学,多思考,做一个优秀的大学生!七参考文献:1陈世清,李杰君,C语言程序设计,浙江大学出版社,2012.12黄晓宇,肖伟平,丁敬忠,陈志斌,大学计算机基础,北京邮电大学出版社,2010.83谭浩强,C程序设计(第五版),北京:清华大学出版社,2011.1八附件:#includestdio.h#includestring.h#includeconio.hintN=0;33structstuintbh;/*图书编号*/intflh;/*分类号*/charsname15;/*书名*/charzname10;/*作者名*/charcbdw20;/*出版单位*/ch

19、arcbdate8;/*出版时间*/charrkdate8;/*入库时间*/doubledj;/*单价*/s40;voidRe_file()FILE*fp;fp=fopen(E:310book.txt,r);while(fscanf(fp,%dn%dn%sn%sn%sn%sn%sn%lfn,&sN.bh,&sN.flh,sN.sname,sN.zname,sN.cbdw,sN.cbdate,sN.rkdate,&sN.dj)!=EOF)N+;fclose(fp);voidWr_file()34inti;FILE*fp;fp=fopen(E:310newbook.txt,w);for(i=0;i

20、N;i+)fprintf(fp,%dn%dn%sn%sn%sn%sn%sn%lfn,si.bh,si.flh,si.sname,si.zname,si.cbdw,si.cbdate,si.rkdate,si.dj);fclose(fp);voidDisp()/*显示模块*/inti;printf(-);printf(图书馆信息管理系统);printf(*);printf(图书编号分类号书号作者名出版单位出版时间入库时间单价n);for(i=0;iN;i+)35printf(%-8d%-6d%-12s%-8s%-14s%-8s%-10s%-10lfn,si.bh,si.flh,si.sname,

21、si.zname,si.cbdw,si.cbdate,si.rkdate,si.dj);printf(*);printf(-n);voidAppe()/*追加模块*/inti,j,k;printf(-n);printf(-n);printf(请问您要追加几条信息?n);printf(-n);printf(-n);printf(请您输入要追加几条信息的数字:);scanf(%d,&j);for(i=1;i=j;i+)36printf(您添加的图书编号为:);scanf(%d,&sN.bh);printf(您添加的分类号:);scanf(%d,&sN.flh);printf(您添加的书名为:);s

22、canf(%s,sN.sname);printf(您添加的作者名为:);scanf(%s,sN.zname);printf(您添加的出版单位为:);scanf(%s,sN.cbdw);printf(您添加的出版时间为:);scanf(%s,sN.cbdate);printf(您添加的入库时间为:);scanf(%s,sN.rkdate);printf(您添加的单价为:);scanf(%lf,&sN.dj);N+;printf(请问您是否还要追加?n);printf(*n);printf(继续请按1否则请按2printf(*n);37n);scanf(%d,&k);switch(k)case1:

23、Appe();break;case2:;break;voidModi()/*修改模块*/inti,j,k,n,m,x,y,z;charsm50,ch20;printf(-n);printf(-n);printf(*(1)按图书编号修改*(2)按图书书名修改*n);printf(-n);printf(-n);printf(请您选择1或2,进入编号修改或书名修改n);scanf(%d,&m);if(m=1)38printf(*n);printf(-n);printf(请输入您所要修改的图书编号n);printf(-n);printf(*n);scanf(%d,&n);for(i=0;iN;i+)i

24、f(n=si.bh)printf(*);printf(图书编号分类号书号作者名出版单位出版时间入库时间单价n);printf(%-8d%-6d%-12s%-8s%-14s%-8s%-10s%-10lfn,si.bh,si.flh,si.sname,si.39zname,si.cbdw,si.cbdate,si.rkdate,si.dj);printf(*);printf(n);k=1;j=i;elseif(m=2)printf(*n);printf(-n);printf(请输入您所要修改的图书书名n);printf(-n);printf(*n40);scanf(%s,sm);for(i=0;i

25、N;i+)if(!strcmp(sm,si.sname)printf(*);printf(图书编号分类号书号作者名出版单位出版时间入库时间单价n);printf(%-8d%-6d%-12s%-8s%-14s%-8s%-10s%-10lfn,si.bh,si.flh,si.sname,si.zname,si.cbdw,si.cbdate,si.rkdate,si.dj);printf(*);printf(n);k=1;j=i;if(k=1)41printf(*n);printf(*n);printf(*n);printf(*1.图书编号2.分类号*n);printf(*n);printf(*3.

26、图书书号4.作者名*n);printf(*n);printf(*5.出版单位6.出版时间*n);printf(*n);printf(*7.入库时间8.单价*n);printf(*n);printf(*n);printf(*n);printf(请输入您的选择进行继续修改:);scanf(%d,&x);switch(x)case1:scanf(%d,&y);sj.bh=y;break;case2:scanf(%d,&y);sj.flh=y;break;case3:scanf(%s,ch);strcpy(sj.sname,ch);break;42case4:scanf(%s,ch);strcpy(s

27、j.zname,ch);break;case5:scanf(%s,ch);strcpy(sj.cbdw,ch);break;case6:scanf(%s,ch);strcpy(sj.cbdate,ch);break;case7:scanf(%s,ch);strcpy(sj.rkdate,ch);break;case8:scanf(%lf,&y);sj.dj=y;break;default:printf(无此选项!n);break;elseprintf(*n);printf(*n);printf(*您的输入有错误,没有您所要的信息*n);printf(*n);printf(*n);43print

28、f(请问还要继续修改吗?n);printf(1.是2.否n);printf(请您选择:n);scanf(%d,&z);switch(z)case1:Modi();break;case2:;break;voidDele()/*删除模块*/intm,n,k=0,j,i,t;charsh10;printf(-n);printf(-n);printf((1)按图书编号删除*(2)按图书书名删除*printf(-n);printf(-n);printf(请您选择1或2:);scanf(%d,&m);44n);if(m=1)printf(-n);printf(-n);printf(请输入要删除的图书编号n

29、);printf(-n);printf(-n);scanf(%d,&n);for(i=0;iN;i+)if(n=si.bh)k=1;j=i;elseif(m=2)printf(-n);printf(-n);printf(请输入要删除的图书书名号n);printf(-n);printf(-n);scanf(%s,sh);for(i=0;iN;i+)45if(!strcmp(si.sname,sh)k=1;j=i;if(k=1)for(i=j;iN;i+)si=si+1;N-;elseprintf(-n);printf(-n);printf(没找到您所要删除的信息printf(-n);printf

30、(-n);printf(*n);printf(*是否要继续*n);printf(*1.是2.否*n);printf(*n);46n);scanf(%d,&t);if(t=1)Dele();voidQuery()/*查询模块*/inti,m,j,d;charc10;printf(tt*n);printf(tt*n);printf(tt*欢迎进入查询模块*n);printf(tt*n);printf(tt*nn);for(i=0;i+)printf(tt*n);printf(tt*1.查询*n);printf(tt*2.退出*n);printf(tt*n);scanf(%d,&m);if(m!=1

31、&m!=2)47printf(*-*-*-*-*-*-*-*-*-*-*n);printf(*无此选项/请重新输入*n);printf(*-*-*-*-*-*-*-*-*-*-*n);continue;elseif(m=2)break;elseprintf(tt*n);printf(tt*按什么方式查询*n);printf(tt*1.图书编号*n);printf(tt*2.书名*n);printf(tt*3.返回上级*n);printf(tt*n);scanf(%d,&j);if(j!=1&j!=2&j!=3)printf(*n);printf(*查询方式有误*n);printf(*n);48

32、switch(j)case3:break;case2:printf(输入书名:);scanf(%s,c);for(i=0;iN;i+)if(strcmp(c,si.sname)=0)printf(=n);printf(%s%st%st%st%s%s%s%sn,图书编号,分类号,书名,作者名,出版单位,出版时间,入库时间,单价);printf(-=n);printf(%dt%dt%st%st%st%st%7s%6lfn,si.bh,si.flh,si.sname,si.zname,si.cbdw,si.cbdate,si.rkdate,si.dj);49printf(=-=n);break;if

33、(i=N)printf(*-*-*-*-*-*-*-*-*n);printf(*图书库无此图书!*n);printf(*-*-*-*-*-*-*-*-*n);break;case1:printf(输入图书编号:n);scanf(%d,&d);for(i=0;iN;i+)if(d=si.bh)printf(=n);printf(%s%st%st%st%s%s%s%sn,图书编号,分类号,书名,作者名,出版单位,出版时间,入库时间,单价);50printf(=-=n);printf(%dt%dt%st%st%st%st%7s%6lfn,si.bh,si.flh,si.sname,si.zname,

34、si.cbdw,si.cbdate,si.rkdate,si.dj);printf(=n);break;if(i=N)printf(*-*-*-*-*-*-*-*-*n);printf(*图书库无此图书!*n);printf(*-*-*-*-*-*-*-*-*n);break;voidTotal()/*统计模块*/51intx,i,d,n,j=0;printf(你可以选择的统计方式n);printf(1.按单价进行统计2.按分类号进行统计n);scanf(%d,&x);switch(x)case1:printf(输入你想要统计的图书单价为:);scanf(%d,&d);(double)d;pr

35、intf(*);printf(图书编号分类号书号作者名出版单位出版时间入库时间单价n);printf(*);for(i=0;iN;i+)if(d=si.dj)52printf(%-8d%-6d%-12s%-8s%-14s%-8s%-10s%-10lfn,si.bh,si.flh,si.sname,si.zname,si.cbdw,si.cbdate,si.rkdate,si.dj);j+;printf(*);printf(图书单价为%d的书本数为:%d个,d,j);break;case2:printf(输入你想要统计分类号为:);scanf(%d,&n);printf(*);printf(图书

36、编号分类号书号作者名出版单位出版时间入库时间单价n);printf(*53*);for(i=0;iN;i+)if(n=si.flh)printf(%-8d%-6d%-12s%-8s%-14s%-8s%-10s%-10lfn,si.bh,si.flh,si.sname,si.zname,si.cbdw,si.cbdate,si.rkdate,si.dj);j+;printf(*);printf(图书本数为%d个,j);break;54voidSort()/*排序模块*/inti,j,f,k;n);printf(tt*printf(tt*n);printf(tt*欢迎进入排序模块*n);printf(tt*n);printf(tt*nn);printf(tt*n);printf(tt*按什么方式排序*n);printf(tt*1.单价升序*n);printf(tt*2.单价降序*n);printf(tt*3.返回上级*n);printf(tt*n);scanf(%d,&k);if(k!=1&k!=2&k!=3)printf(*n);排序printf(*inputerror/方式有误*n);print

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论