1、实训课程设计汇报题目:图书信息管理系统学院:信息学院 系别:电子系年级:级 专业:电子信息科学和技术组长:* 组员:*指导老师:* 1月1日目录摘要-1 -题目简介- 2 -小组分工情况:- 2 -需求分析- 3 -1. 编写目的- 3 -2. 项目实施背景- 3 -3业务流程图- 4 -4数据流程图- 5 -5. 系统运行环境- 5 -系统详细设计说明- 6 -1总体简述- 6 -2总体设计构想- 6 -3程序流程图- 7 -4编码实现过程- 8 -测试报告- 15 -个人实训总结报告- 22 -个人实训总结报告*- 22 -个人实训总结报告*- 23 -个人实训总结报告*- 23 -编程总
2、结- 24 -附 :源代码- 25 -摘要图书馆作为一个信息资源集散地,在正常运行中面对大量书籍、读者信息和二者间相互联络产生借书信息、还书信息,图书和用户借阅资料繁多,包含很多信息数据管理。伴随图书馆规模不停扩大,图书数量也对应增加,若采取手工方法对图书资料和图书借阅情况进行人工管理,因为资料繁多,手工处理工作量大,整体管理效率低下而且轻易犯错,造成人力和物力过多浪费,图书馆管理费用增加,影响整个图书馆运作和管理,也不方便读者对图书资料查阅。所以,必需制订一套合理、有效、规范和使用图书馆管理信息系统,对对书籍资源、读者资源、借书信息、还书信息进行管理,立即了解各个步骤中信息变更,有利用管理效
3、率提升。题目介绍图书管理系统,本系统能具体化、合理化管理图书馆中图书信息、图书流通信息,用结构化思维方法去了解图书馆运做。此次实训,要求我们用C语言来完成一个简单系统,实现部分简单功效,我们组在讨论以后,决定使用老师给参考题目图书管理系统,因为我们对这个步骤比较熟悉,而且更清楚使用者需求,我们将在这个方面发挥得愈加好。因为时间和我们所掌握知识有限,我们决定只实现由管理员登陆来管理图书信息功效系统,包含新书信息录入,浏览,查询,修改和删除功效,同时,在第一界面处,有管理员身份认证,预防信息被恶意篡改或删除。小组分工情况:姓名学号分工*2编程及测试*1需求分析、测试、后期文档完成*4系统设计、辅助
4、编程、测试需求分析 1. 编写目标 对于有一定规模图书馆来说,存书数量大,存书标识信息更大,而且图书馆也需要对读者及其管理员信息作统计,和读者借阅,归还图书情况,这些汇总起来信息量很大,假如采取手工管理,效率低,易犯错,统计工作量大。鉴于这种情况,一个操作方便,简单实用图书信息管理系统开发就成为必需。 2. 项目实施背景 出于我们学术水平限制,我们不可能完成功效全方面,实用性强系统程序,在短期内就更不用说了,所以我们编程定位是实现部分最基础功效。关键是实现对图书馆中多种信息管理,使得图书信息存放立即,检索快速、查找方便、可靠性高、存放量大、保密性好、寿命长、成本低等。这些优点能够极大地提升图书
5、馆管理效率,也是图书馆正规化管理关键路径,故设计此系统。 3业务步骤图购到书录入书查询书修改书删除书书发生改变,比如借出,丢失,损坏借出或查看库存时4数据步骤图购进新书(手工编号)录入信息数据库删除信息图书管理员修改查询5. 系统运行环境 系统能够在MicrosoftVisualC+6.0软件运行,硬件基础无要求,现在计算机基础能够运行该系统。系统具体设计说明1总体简述依据题目要求,应该把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序运行,然后把图书信息送到文件中,所以应该提供一个结构体和文件输入输出等操作;在程序中需实现图书信息录入,浏览,查询,删除和修改等功效操作,所以
6、需要建立对应模块来实现;另外还需提供键盘式选择菜单实现功效,在运行时达成所要目标。2总体设计构想依据题目要求,将系统分为两个主界面:1、管理员身份认证界面该,界面包含三个内容 管理员编号 登录密码 验证码输入2、主菜单界面该界面包含六个关键模块菜单选择模块图书信息录入功效模块图书信息浏览功效图书信息查询功效图书信息删除和修改 退出3程序步骤图登陆主界面编号密码验证码主菜单1.信息录入5.信息删除4.信息修改2.信息浏览3.信息查询6.退出系统1. Search by name2. Search by writer1. 书号. 2.书名. 3.作者名.4.出版社. 5.出版时间. 6.图书价格4
7、编码实现过程该程序设计遵照程序设计模块化标准,主体部分由每个自编功效函数块完成,现将设计部分详解。(1)Myprintf函数,实现布局界面功效void myprintf(int n)int i=0; for(i=0;i=n;i+) printf( %c,2);(2)mm函数,实现密码及验证码功效void mm(int n,int *q) int y, k, m,r=0,h4; for(k=0;k4;k+)hk=rand()%10; r=r+hk;printf( 输入密码:);scanf(%d,&m);printf( %c %c,14,14); printf( 计算下式值作为验证码输入:n);p
8、rintf( %c %c,14,14);printf( %d+%d+%d+%d=?n,h0,h1,h2,h3);printf( %c %c ?=,14,14);scanf(%d,&y);if(y=r) if(n=m)*q=0; else*q=1;else printf(验证码输入错误n); *q=1; (3)save函数,实现保留信息功效void save()/保留图书信息。FILE *fp;if(fp=fopen(library.doc,w)=NULL)printf(n不能保留图书信息n);return;fwrite(&library.count,sizeof(int),1,fp);fwri
9、te(library.book,sizeof(library.book0),library.count,fp);(4)putin函数,实现录入功效void putin() /*定义录入函数*/ int y=1;system(cls);while(y) printf(t请输入您书籍书号:);scanf(%s,library.booklibrary.count.number);printf(t请输入书名:);scanf(%s,library.booklibrary.count.name);printf(t请输入作者名:);scanf(%s,library.booklibrary.count.aut
10、hor);printf(t请输入出版社:);scanf(%s,library.booklibrary.count.publish);printf(t请输入出版时间:);scanf(%s,library.booklibrary.count.time);printf(t请输入该书价格:);fflush(stdin);scanf(%f,&library.booklibrary.count.price);library.count+;printf(n是否继续录入(1.继续;0,退出录入):);fflush(stdin);scanf(%d,&y);if (y!=1)y=0;break; save();(
11、5)lookup函数,实现查找功效void lookup()system(cls);printf(图书号t图书名t作者名t出版社t出版日期t图书价格n);for (int i=0;ilibrary.count;i+)printf(%st%st%st%st%st%6.2fn,library.booki.number,library.booki.name,library.booki.author,library.booki.publish,library.booki.time,library.booki.price);fflush(stdin);getchar();void search_by_n
12、ame() /*定义按书名查询*/ char s220; int flag=1;printf(n请输入要查询书名: );fflush(stdin);scanf(%s,s2);printf(图书号t图书名t作者名t出版社t出版日期t图书价格n);for(int i=0;ilibrary.count;i+ )if(strcmp(s2,library.booki.name)=0) flag=0;printf(%st%st%st%st%st%6.2fn,library.booki.number,library.booki.name,library.booki.author,library.booki.
13、publish,library.booki.time,library.booki.price); if (flag)printf(cannot found!);fflush(stdin);getchar();(6)实现查找功效函数void search_by_name() /*定义按书名查询*/ char s220; int flag=1;printf(n请输入要查询书名: );fflush(stdin);scanf(%s,s2);printf(图书号t图书名t作者名t出版社t出版日期t图书价格n);for(int i=0;ilibrary.count;i+ )if(strcmp(s2,lib
14、rary.booki.name)=0) flag=0;printf(%st%st%st%st%st%6.2fn,library.booki.number,library.booki.name,library.booki.author,library.booki.publish,library.booki.time,library.booki.price); if (flag)printf(cannot found!);fflush(stdin);getchar();void search_by_author() /*定义按作者名查询*/ char s320;int flag=1;printf(
15、请输入要查询书作者: );fflush(stdin);scanf(%s,s3);printf(图书号t图书名t作者名t出版社t出版日期t图书价格n);for(int i=0;ilibrary.count;i+ )if(strcmp(s3,library.booki.author)=0) flag=0;printf(%st%st%st%st%st%6.2fn,library.booki.number,library.booki.name,library.booki.author,library.booki.publish,library.booki.time,library.booki.pric
16、e); if (flag)printf(cannot found!);fflush(stdin);getchar();void search() /*定义查询函数*/ int a;system(cls); /*进行清屏*/ printf(tt*n);printf(开始查询n); printf(ttt1-search_by_namen); printf(ttt2-search_by_writern); printf(ttt0-exitn); printf(tt*n) ; printf(tt请选择你想要查询方法:);fflush(stdin); scanf(%d,&a); switch(a) ca
17、se 1:search_by_name();break; case 2:search_by_author();break;case 0:return;(7)del函数,实现删除功效void del() /*定义删除函数*/ char number10;system(cls); /*清屏*/printf(n Please type in the number of the book you want to delete:);fflush(stdin);scanf(%s,number);int i;for (i=0;ilibrary.count;i+)if(strcmp(number,librar
18、y.booki.number)=0)break;if (i!=library.count)for(;ilibrary.count-1;i+)strcpy(library.booki.name,library.booki+1.name);strcpy(library.booki.number,library.booki+1.number);strcpy(library.booki.publish,library.booki+1.publish);strcpy(library.booki.author,library.booki+1.author);strcpy(library.booki.tim
19、e,library.booki+1.time);library.booki.price=library.booki+1.price;library.count-;elseprintf(n cannot found!n);save();fflush(stdin);getchar();(8)update函数,实现修改信息功效void update()/修改图书信息char number10;system(cls); /*清屏*/printf(n Please type in the number of the book you want to delete:);fflush(stdin);scan
20、f(%s,number);int i;for (i=0;ilibrary.count;i+) if(strcmp(number,library.booki.number)=0) printf(图书号t图书名t作者名t出版社t出版日期t图书价格n); printf(%st%st%st%st%st%6.2fn,library.booki.number,library.booki.name,library.booki.author,library.booki.publish,library.booki.time,library.booki.price); break; if (i!=library.
21、count)mbook book;printf(ntt请输入修改后此图书信息n);printf(t请输入图书号:);scanf(%s,book.number);printf(t请输入图书名:);scanf(%s,book.name);printf(t请输入作者名:);scanf(%s,book.author);printf(t请输入出版社:);scanf(%s,book.publish);printf(t请输入出版时间:);scanf(%s,book.time);printf(t请输入该书价格:);fflush(stdin);scanf(%f,&book.price);strcpy(libra
22、ry.booki.name,book.name);strcpy(library.booki.number,book.number);strcpy(library.booki.publish,book.publish);strcpy(library.booki.author,book.author);strcpy(library.booki.time,book.time);library.booki.price=book.price;save();elseprintf(n cannot found!n);fflush(stdin);getchar();测试汇报登陆界面 身份验证 进入主菜单界面输
23、入1,信息录入输入2,信息浏览输入3,信息查询输入1,按书名查询输入2,按作者查询输入5,修改信息修改后信息浏览输入4,删除信息删除后浏览个人实训总结汇报 个人实训总结汇报* 此次实训课程设计中,我工作是编程。首先,自己具体复习了C程序设计教程(教科书)第十章文件,基础自学会了文件相关内容,了解了相关函数使用方法和作用;另外,上网查询了很多相关资料,还有找了很多相关系统,全部具体看了一遍,加深了对C了解和对文件相关内容深入了解。学习了C语言内容,图书信息管理系统有利于C语言学习深入巩固,在本系统能够增强对指针、数组、文件、函数等基础知识深入了解。另外图书信息管理系统也是学校常见基础系统之一,它
24、有利于学校对图书馆书籍基础管理。经过此次实训,我C语言编程能力有了很大提升,尤其是在文件、指针、数组、函数和结构体方面有了很大提升,另外还学习了书本没有讲到知识,学会了使用模块化编程简单方法,另外在对话框编程要求美观、方面也有了体会。我对程序设计有很大爱好,花了很多时间来自学,同时主动参与学校组织学科竞赛,我认为在信息越来越发达今天,精通一门编程语言在未来将会有很大发展前景。所以我会愈加努力学习C语言。个人实训总结汇报*这四天以来,我们组齐心协力,共同完成了图书管理系统编程工作和相关文档撰写。这次试验过程中我们组组长同学表现勇猛,展现了自己强悍编程能力,这不仅给组内编程工作带来突飞猛进效果,也
25、着实激励了我要好好学习编程决心。另外组内明确分工也使工作简化了不少,各司其职,井然有序工作气氛让我意识到了团体合作关键性。在编程整个过程中我关键负责编程需求分析这一部分,我仔细分析了图书管理系统各个步骤以后将这些步骤进行了归类,最终确定出了多个需要用编程实现功效。以后经过小组讨论我们确定了编程大致内容,具体实现编程工作就交给了同学。最终总结一下我在这次实训中学习心得:对于问题要学会思索和总结。思索要全方面,但不能烦琐,要介绍,但不能遗漏。对于学过编程要深入加强,自己编程能力实在是不敢恭维。重视团体合作,争取发挥团体作用,不可单打独斗。个人实训总结汇报*在该“图书管理系统”开发过程中,我负责关键
26、是需求分析这部分,经过对整个步骤熟悉和小组沟通和交流,很好完成了用需求分析,并逐步经过系统分析、设计和实施,使图书管理员工作变愈加轻松。信息管理员只需登录到该系统中,将信息数据输入到系统内,然后就能够进行添加、删除、修改、保留、取消修改、查询数据功效。 经过这次“图书管理系统”开发,使我又完整熟悉了系统整个开发过程,并体会到在系统开发中,正确描述对系统需求是很关键,在清楚明白需求基础上过程进行描述,同时画系统步骤图,能够很好对整个过程进行深入梳理,同时为系统实施打下基础。在系统实施阶段,利用Visual C+ 6.0开发工具,使我感觉这个软件易学好用,经过这个系统开发,使我对c语言开发工含有了
27、一定程度掌握。 总而言之,我感觉经过此次年实习,我受益匪浅,它使我第一次完整经历了一个完整系统开发过程,当然,这个系统还有很多不完善地方,甚至可能还会或多或少存在部分错误,但它使我认识到自己在系统开发过程中还存在哪些不足和自己在哪个方面知识需要充实,所以,在以后学习中,我会愈加有放矢,填补自己知识面不足,使自己能愈加好牢靠掌握本专业知识,能在毕业后愈加好走上自己工作岗位!编程总结循环是C语言关键方法,也是本程序灵魂,它在本程序中现有“穿针引线”作用,也起到了对数据进行分析、存贮、读取等关键作用,本程序在使用循环过程中对循环进行了多方法应用也是一个“亮点”,它使程序变得结构合理,通俗易懂,也降低
28、了程序难度。以后要对这种方法进行深刻体会。数组在程序中有着很关键作用,对数据贮存、输入、读取起着很关键作用,本程序几乎全部数据全部以数组进行输入、贮存、读取和输入,数组使用在本程序中有很大好处。函数是实现模块化编程基础,它使程序变得方便易懂,对修改起了很大作用,降低了编程难度,一个函数就是一个功效,它使各个功效之间有了一定独立性,但也有了一定联络性,一个函数错误,不会造成整个程序失败(主函数除外),对函数良好应用时在本程序中又以深刻体会,有了很大提升。结构体使用,为本程序提供了很大方便,也提升了程序可读性,结构数组方便了对数据管理。文件读取和存贮使数据能够保留下来,这也是在C语言学习过程中没有
29、进行教学内容,在开始时碰到了不小困难,但前期准备工作做还好,最终克服了。我们相信经过这次课程设计锻炼,我们在以后学习实践中,一定能够做出愈加好作品。附 :源代码#include#include#include#includetypedef struct char number10;/书号char name20;/书名char author20;/作者char publish50;/出版社char time20;/出版时间 float price;mbook;typedef struct int count;/书本数mbook book100;/最大可有100本书mlibrary;mlibrar
30、y library;void myprintf(int n)int i=0; for(i=0;i=n;i+) printf( %c,2);void mm(int n,int *q) int y, k, m,r=0,h4; for(k=0;k4;k+)hk=rand()%10; r=r+hk;printf( 输入密码:);scanf(%d,&m);printf( %c %c,14,14); printf( 计算下式值作为验证码输入:n);printf( %c %c,14,14);printf( %d+%d+%d+%d=?n,h0,h1,h2,h3);printf( %c %c ?=,14,14)
31、;scanf(%d,&y);if(y=r) if(n=m)*q=0; else*q=1;else printf(验证码输入错误n); *q=1; void save()/保留图书信息。FILE *fp;if(fp=fopen(library.doc,w)=NULL)printf(n不能保留图书信息n);return;fwrite(&library.count,sizeof(int),1,fp);fwrite(library.book,sizeof(library.book0),library.count,fp);fclose(fp);void putin() /*定义录入函数*/ int y=
32、1;system(cls);while(y) printf(t请输入您书籍书号:);scanf(%s,library.booklibrary.count.number);printf(t请输入书名:);scanf(%s,library.booklibrary.count.name);printf(t请输入作者名:);scanf(%s,library.booklibrary.count.author);printf(t请输入出版社:);scanf(%s,library.booklibrary.count.publish);printf(t请输入出版时间:);scanf(%s,library.bo
33、oklibrary.count.time);printf(t请输入该书价格:);fflush(stdin);scanf(%f,&library.booklibrary.count.price);library.count+;printf(n是否继续录入(1.继续;0,退出录入):);fflush(stdin);scanf(%d,&y);if (y!=1)y=0;break; save();void lookup()system(cls);printf(图书号t图书名t作者名t出版社t出版日期t图书价格n);for (int i=0;ilibrary.count;i+)printf(%st%st
34、%st%st%st%6.2fn,library.booki.number,library.booki.name,library.booki.author,library.booki.publish,library.booki.time,library.booki.price);fflush(stdin);getchar();void search_by_name() /*定义按书名查询*/ char s220; int flag=1;printf(n请输入要查询书名: );fflush(stdin);scanf(%s,s2);printf(图书号t图书名t作者名t出版社t出版日期t图书价格n)
35、;for(int i=0;ilibrary.count;i+ )if(strcmp(s2,library.booki.name)=0) flag=0;printf(%st%st%st%st%st%6.2fn,library.booki.number,library.booki.name,library.booki.author,library.booki.publish,library.booki.time,library.booki.price); if (flag)printf(cannot found!);fflush(stdin);getchar();void search_by_au
36、thor() /*定义按作者名查询*/ char s320;int flag=1;printf(请输入要查询书作者: );fflush(stdin);scanf(%s,s3);printf(图书号t图书名t作者名t出版社t出版日期t图书价格n);for(int i=0;ilibrary.count;i+ )if(strcmp(s3,library.booki.author)=0) flag=0;printf(%st%st%st%st%st%6.2fn,library.booki.number,library.booki.name,library.booki.author,library.booki.publish,library.booki.time,library.booki.price); if (flag)printf(cannot found!);fflush(stdin);getchar();void search() /*定义查询函数*/ int a;system(cls); /*进行清屏*/ printf(tt*n);printf(开始查询n); printf(ttt1-search_by_namen); printf(ttt2-search_by_writern); printf(ttt0-exitn); pr