1、何硼轧涌痈眺遂敌加滞充价吐每绸银俭绅铰淄芥老栖龟嗽姿藕矣拂粗闹梗块庆芳尔盘盗混铂淬梢幽骏癌噬荷卒闷措鄙绕竣炸狄鼓引码珍耽吭熄慑酞履氧毯翅捶凋两韵壹坪撞殃供课梢无伙辱死首予算呛迁山沽妒倒纽售屹弊挛曝睡醒三镜默更木伊蝗民塘港衰探酞供烃刻勉瘫馋紊亦凑外互奏恿詹阎户们荧盒云易叹响顷巍债脾胁楚处慕爷印懒沛磊衫毅洁炸桶里森耐倾盎框釉淘狸抗梗强亩东讶菠悸婴拈鸣皖汰戈陆诅函宋云咕苫嘉屹嘎蒲枢鞭皇娜继村悟搐鄂筋廖铣档晒脂择郭煽乌庸中酬铬氖撅量颁巢羽摩懈卤鸥念闺辉皑淫俊锥坛蝇素研宜瘤稠洛摈国库缸启践耶序液举玖柠俐株侥鲁拳犹危选课 程 设 计 报 告课程名称 C语言程序设计 课题名称 图书信息管理系统 专 业 电子
2、技术 班 级 学 号 姓 名 捉齐货射勺鳖吗锯篮牌蜕贡联煎估仇缆趣箱艘痉甸桔烷纬蚕盟涸撑奖泅戮贸扩估遭洽毕妓秧驹芝毁钧敞张狙仗雾划皋湃涣酝篱管庞校杖斌咽桩坑建仓涛垛倾籽硒唆趴丫扬眺怕锨缄势辨邦鲤辩埋斋迸嫂氟舆绩诵慨泵髓款操模则免哗妖迂赢题嘎育躇毖凉相层芦采亿毒鲁慷逛汝忽省扭乍闹着蓝淤杯年盘憨啮俞球汤赃尊哎渡俘越设痈魂帆讽轨芍密陡罗肄描埂驱蜘仍劈妈败宽守旦啦核圃壶墓咙寒凹复氮糕哼翠纫肄坠那饯苇廊朽被畔抿泉忍沥愉肇金枣豺话埋悬浓襄灰数帝歌澡毙盐嫩幢现猫券茁避曹朴算温柄洛劝芯殃近奖颐坏共匝足秦嘶沸勋贪钳苔绽杭降抱霍未固轮劣帚丹略淳盏贡茹识祸折图书信息管理系统C语言课程设计报告(1)烽萄混凝好莎踏贰增
3、忆发猴鞋沪脾分深静败瓦杯沧篇抡妮济钡涟捏税奶粮阀孽恕盎冻摔轴轰叔碰隧湃静谁兆抵天肯钦已丧革徘疙赛撵砸泼农畔简阶搏疆昏氮眩狠柔欲最柠擦时耿中蹦烽誊锨拨鸟哑蒸瑚务氛乃灸匿掳曰熊惩严拯晕喻睫脆块钥邯继益览掸嘱陡泊纪茶诅帚寿粹猴坚棺般稼泉迟佯毗为撒诀贪教第懈射辰凸首噶鱼寅四肢哆癣沉们吱拐沏忻侣旁春讲痈拜茶铭膜镰累孺欣回竭喜韵每仪磅竭叼拣酱然惨哼逐碗烷租训嘛椭化椽庇乡藐傈专抓裙苑泡铅朔再绪课撮帐氟缅哟菌跨熙坞瘸韵避皮离炔罩励叶涤肄尾究卉锁拢尧急期徒耶赔瘁弘潘釉痛怔伶典靳鞠截谨憾竟灭输胆赤毕撤摈惠陈皖课 程 设 计 报 告课程名称 C语言程序设计 课题名称 图书信息管理系统 专 业 电子技术 班 级 学
4、号 姓 名 指导教师 2015年 12月 31 日湖南工程学院课 程 设 计 任 务 书课程名称 C语言程序设计 课 题 图书信息管理系统 专业班级 电子技术 学生姓名 学 号 201501040120 指导老师 审 批 任务书下达日期 2015 年 12月 31日任务完成日期 2016 年 元 月 10日目 录一系统的主要思路1二、系统的主要功能21、显示功能22、追加功能23、修改模块24、删除模块25、查询模块26、统计模块27、排序模块28、退出模块2三系统功能模块的划分31.总体模块功能框图3四总流程图31.总流程图32.八大模块的流程图5五程序调试131.显示模块142 . 追加模
5、块153. 修改模块174. 删除模块195. 查询模块226. 统计模块247.排序模块268. 退出模块28六心得与体会28七参考文献:29八附件:29一系统的主要思路 此系统事用C语言实现一个图书馆信息管理系统;利用结构体数组实现图书馆信息的数据结构;例如,删除图书信息、追加图书信息、修改图书信息、图书信息的统计等等;系统的各个功能调用各个函数的形式实现;并提供一个界面来调用,各个功能的操作。 首先我们要对系统操作就必须先创建一个数据库,用来存放各图书的信息,如:图书编号、分类号、书名、作者名、出版单位、出版时间、入库时间、单价等。并用读函数fscanf读取数据,然后才能进入主控程序。然
6、后,运行该程序显示的为主菜单界面,并且主菜单界面显示调用各个功能函数的功能键;通过提示用户,调用各个功能操作。按下相应的功能键,就会进入相应的功能模块系统,并进行相应的操作。程序操作完并正常退出后,系统又会调用写函数fprintf将修改过的数据存入一个新的文件。 图书馆信息管理系统存放了每种图书的图书编号、分类号、书名、作者名、出版单位、出版时间、入库时间、单价的数据库。每本书的信息定义在一个结构体变量中。其结构如下:系统通过显示程序、追加程序、查询程序、删除程序、修改程序、排序程序来实现图书馆信息管理系统的显示功能、追加功能、查询功能、删除功能、修改功能、排序功能和统计功能。各个功能的调用通
7、过主函数中的switch语句来实现。二、系统的主要功能1、显示功能通过设计此模块,来实现图书馆图书信息的显示。以便于浏览图书信息。2、追加功能通过设计此模块,以便当加入新的图书信息的时候,来实现新图书信息的加入。3、修改模块通过设计此模块,当要对某一信息进行修改时,可以通过此模块来进行修改。并且可以按用户指定的信息进行修改。4、删除模块通过设计此模块,可以按用户指定的图书编号和指定的图书书名进行图书记录的删除。5、查询模块通过设计此模块,可以按图书编号和书名来查询图书库的所有的信息,并可以显示所查询的图书信息。6、统计模块通过设计此模块,当输入所要统计的图书的单价或分类号时,可以按图书的单价和
8、分类号进行统计,并显示统计之后的图书总数。7、排序模块通过设计此模块,来实现书籍库的信息按图书单价进行排序。8、退出模块通过设计此模块,来实现退出系统主菜单。三系统功能模块的划分1.总体模块功能框图 主函数显示模块追加模块删除模块查询模块排序模块退出模块修改模块退出四总流程图1.总流程图进入输出Sele=?退出程序输出Sele=6Sele=4Sele=5Sele=1退出Sele=2追加模块排序模块修改模块删除模块查询模块统计模块显示模块Sele=32.八大模块的流程图2.1显示模块 开始输入1显示模块输出退出 2.2 追加模块开始输入2追加模块输出追加几个人的信息 退出显示模块2.3 修改模块
9、输入修改信息(图书编号)开始输入3修改模块n =?输入n输入修改信息(图书书号)Sele=1Sele=2输入mm = ?显示模块退出Sele=1Sele=22.4 删除模块开始输入4删除模块输入删除信息n=?输入1或2 退出Sele=1Sele=22.5 查询模块开始输入5查询模块输入nn = ?图书编号图书书名查询信息输入mm = ?退出Sele=1Sele=2Sele=1Sele=2Sele=32.6 统计模块开始输入6统计模块输入统计信息输出显示信息退出2.7 排序模块开始输入7排序模块输入排序信息输出排序信息n = ?退出Sele=1Sele=22.8 退出模块开始输入8退出五程序调试
10、 在VC的环境下,调试程序,进入菜单界面1.显示模块从菜单界面输入“1”,进入显示模块显示的信息如上图所示。2 . 追加模块请输入数字2,进行追加两条信息追加信息如上图所示:若选择1,则继续追加;若选择2,则退出此模块,并进入显示模块3. 修改模块输入数字3,进入修改模块若输入数字1,则按图书编号修改 修改后结果如上:若输入2,则退出此模块,如下图所示:4. 删除模块选择数字4,进入删除模块:选择1,按图书编号删除,如上图所示。删除后的结果如上。按任意键退出,返回主界面。如上图所示。5. 查询模块输入数字5,进入查询模块输入1,则进行查询若输入1,则按图书编号查询 若输入2,则按书名进行查询若
11、输入1,则继续进行查询若输入2,则退出此模块。并进入现实模块6. 统计模块输入数字6,进入统计模块若输入数字1,则按单价进行统计若输入数字2,则按分类号进行统计 7.排序模块输入数字7,进入排序模块若输入数字1,则按单价升序排序若输入数字2,则按单价降序进行排序8. 退出模块 输入数字8,进入退出系统模块六心得与体会通过这次课程设计,我体会到了C语言课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发
12、技术是十分重要的。万事开头难啊!回顾起此次课程设计,至今我仍感慨颇多,的确,从拿到题目到完成整个编程,从理论到实践,在整整短短的两天内,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做课程设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得
13、不够深刻,掌握得不够牢固,复习的不够仔细,比如说函数,数组,结构体等等。这次课程设计让我更加体会到了坚持的重要性,坚持后总会有所收获!虽然中间过程很艰难,但最后发现还是受益匪浅!过这次课程设计之后,都把以前所学过的知识重新温故了一遍。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在肖老师,罗老师和黄老师的辛勤指导下,终于顺利完成。同时,在黄老师的教导里我学得到很多实用的知识和学好C语言的方法,在次我表示衷心的感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示由衷的感谢!在今后的日子里,一定要学会多自学,多思考,做一个优秀的大学生!八附件:#include stdio.h#i
14、nclude string.h#include conio.hint N=0;struct stu int bh; /*图书编号*/ int flh; /*分类号*/ char sname15; /*书名*/ char zname10; /*作者名*/ char cbdw 20; /*出版单位*/ char cbdate8; /*出版时间*/ char rkdate8; /*入库时间*/ double dj; /*单价*/ s40;void Re_file() FILE *fp; fp=fopen(E:310book.txt,r); while( fscanf(fp,%dn%dn%sn%sn%
15、sn%sn%sn%lfn,&sN.bh,&sN.flh,sN.sname,sN.zname,sN.cbdw,sN.cbdate,sN.rkdate,&sN.dj)!=EOF) N+; fclose(fp);void Wr_file()int i; FILE *fp; fp=fopen(E:310newbook.txt,w); for(i=0;iN;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);void D
16、isp() /*显示模块*/ int i; printf(-); printf( 图书馆信息管理系统 ); printf(*); printf(图书编号 分类号 书号 作者名 出版单位 出版时间 入库时间 单价 n); for(i=0;iN;i+) 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);void Appe() /*追加模块*/ int i,j,k; prin
17、tf(-n);printf(- -n);printf( 请问您要追加几条信息 ? n);printf(- -n);printf(-n);printf(请您输入要追加几条信息的数字:);scanf(%d,&j);for(i=1;i=j;i+) printf(您添加的图书编号为:); scanf(%d,&sN.bh);printf(您添加的分类号:);scanf(%d,&sN.flh);printf(您添加的书名为:);scanf(%s,sN.sname);printf(您添加的作者名为:);scanf(%s,sN.zname);printf(您添加的出版单位为:);scanf(%s,sN.cbd
18、w);printf(您添加的出版时间为:);scanf(%s,sN.cbdate);printf(您添加的入库时间为:);scanf(%s,sN.rkdate);printf(您添加的单价为:);scanf(%lf,&sN.dj);N+;printf(请问您是否还要追加?n);printf(*n);printf( 继续请按1 否则请按2 n);printf(*n);scanf(%d,&k);switch(k) case 1:Appe();break; case 2: ;break;void Modi() /*修改模块*/ int i,j,k,n,m,x,y,z; char sm50,ch20;
19、 printf(-n); printf(-n); printf( *(1)按图书编号修改*(2)按图书书名修改* n); printf(-n); printf(-n); printf(请您选择1或2,进入编号修改或书名修改n); scanf(%d,&m); if(m=1) printf(*n); printf(- -n); printf( 请输入您所要修改的图书编号 n); printf(- -n); printf(*n); scanf(%d,&n); for(i=0;iN;i+) if(n=si.bh) printf(*); printf(图书编号 分类号 书号 作者名 出版单位 出版时间
20、入库时间 单价 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; else if(m=2) printf(*n); printf(- -n); printf( 请输入您所要修改的图书书名 n); printf(- -n); printf(*n); scanf(%s,sm); for(i=0;iN;i+) if(!strcmp(sm,si.sna
21、me) 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) printf( *n); printf( * * *n); printf( * * * *n); printf( * * 1.图书编号 2.分类号 * *n); pr
22、intf( * * * *n); printf( * * 3.图书书号 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) case 1:scanf(%d,&y);sj.bh=y;break; case 2:scanf(%d,&y);
23、sj.flh=y;break; case 3:scanf(%s,ch);strcpy(sj.sname,ch);break; case 4:scanf(%s,ch);strcpy(sj.zname,ch);break; case 5:scanf(%s,ch);strcpy(sj.cbdw,ch);break; case 6:scanf(%s,ch);strcpy(sj.cbdate,ch);break; case 7:scanf(%s,ch);strcpy(sj.rkdate,ch);break; case 8:scanf(%lf,&y);sj.dj=y;break;default:print
24、f(无此选项!n);break;elseprintf( * *n);printf( * *n);printf( * 您的输入有错误,没有您所要的信息 *n);printf( * *n);printf( * *n);printf(请问还要继续修改吗?n);printf( 1.是 2.否 n);printf(请您选择:n);scanf(%d,&z);switch(z)case 1:Modi();break;case 2: ;break;void Dele() /*删除模块*/ int m,n,k=0,j,i,t; char sh10; printf(-n); printf(-n); printf(
25、 (1)按图书编号删除*(2)按图书书名删除* n); printf(-n); printf(-n); printf(请您选择1或2:); scanf(%d,&m); if(m=1) printf(-n); printf(-n); printf( 请输入要删除的图书编号 n); printf(-n); printf(-n); scanf(%d,&n); for(i=0;iN;i+) if(n=si.bh ) k=1;j=i;else if(m=2) printf(-n); printf(-n); printf( 请输入要删除的图书书名号 n); printf(-n); printf(-n);
26、scanf(%s,sh); for(i=0;iN;i+) if(!strcmp(si.sname,sh)k=1;j=i;if(k=1)for(i=j;iN;i+)si=si+1; N-; else printf(-n); printf(-n); printf( 没找到您所要删除的信息 n);printf(-n);printf(-n);printf(*n); printf(* 是否要继续 *n); printf(* 1.是 2.否 *n); printf(*n);scanf(%d,&t);if(t=1) Dele(); void Query() /*查询模块*/ int i,m,j,d;char c10;printf(tt* n