c语言实现图书管理系统实训报告.doc_第1页
c语言实现图书管理系统实训报告.doc_第2页
c语言实现图书管理系统实训报告.doc_第3页
c语言实现图书管理系统实训报告.doc_第4页
c语言实现图书管理系统实训报告.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

实训课程设计报告题目:图书信息管理系统学院:信息学院 系别:电子系年级:2012级 专业:电子信息科学与技术组长:* 组员:*指导老师:* 2014年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 -编程总结- 24 -附 :源代码- 25 -摘要图书馆作为一种信息资源的集散地,在正常运营中面对大量书籍、读者信息以及两者间相互联系产生的借书信息、还书信息,图书和用户借阅资料繁多,包含很多的信息数据的管理。随着图书馆规模的不断扩大,图书数量也相应增加,若采取手工方式对图书资料和图书借阅情况进行人工管理,由于资料繁多,手工处理的工作量大,整体管理效率低下而且容易出错,造成人力与物力过多浪费,图书馆管理费用增加,影响整个图书馆运作和管理,也不方便读者对图书资料的查阅。因此,必须制定一套合理、有效、规范和使用的图书馆管理信息系统,对对书籍资源、读者资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,有利用管理效率的提高。题目简介图书管理系统,本系统能具体化、合理化的管理图书馆中的图书信息、图书流通信息,用结构化的思维方式去了解图书馆的运做。本次实训,要求我们用C语言来完成一个简单的系统,实现一些简单的功能,我们组在讨论之后,决定使用老师给的参考题目图书管理系统,因为我们对这个流程比较熟悉,并且更清楚使用者的需求,我们将在这个方面发挥得更好。由于时间以及我们所掌握的知识有限,我们决定只实现由管理员登陆来管理图书信息功能的系统,包括新书信息的录入,浏览,查询,修改和删除的功能,同时,在第一界面处,有管理员身份认证,防止信息被恶意篡改或删除。小组分工情况:姓名学号分工*2012080321082编程及测试*2012080321081需求分析、测试、后期文档完成*2012080321064系统设计、辅助编程、测试需求分析 1. 编写目的 对于有一定规模的图书馆来说,存书数量大,存书的标识信息更大,而且图书馆也需要对读者及其管理员的信息作记录,以及读者借阅,归还图书的情况,这些汇总起来信息量非常大,如果采用手工管理,效率低,易出错,统计工作量大。鉴于这种情况,一个操作方便,简单实用的图书信息管理系统的开发就成为必要。 2. 项目实施背景 出于我们的学术水平的限制,我们不可能完成功能全面,实用性强的系统程序,在短期内就更不用说了,所以我们的编程定位是实现一些最基础的的功能。主要是实现对图书馆中各种信息的管理,使得图书信息存储及时,检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书馆管理的效率,也是图书馆正规化管理的重要途径,故设计此系统。 3业务流程图购到书录入书查询书修改书删除书书发生变化,例如借出,丢失,损坏借出或查看库存时4数据流程图购进新书(手工编号)录入信息数据库删除信息图书管理员修改查询5. 系统运行环境 系统可以在MicrosoftVisualC+6.0软件运行,硬件基本无要求,现在的计算机基本可以运行该系统。系统详细设计说明1总体简述根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;在程序中需实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现;另外还需提供键盘式选择菜单实现功能,在运行时达到所要目的。2总体设计构想根据题目要求,将系统分为两个主界面:1、管理员身份认证界面该,界面包含三个内容 管理员编号 登录密码 验证码输入2、主菜单界面该界面包括六个主要模块菜单选择模块图书信息录入功能模块图书信息浏览功能图书信息查询功能图书信息的删除和修改 退出3程序流程图登陆主界面编号密码验证码主菜单1.信息录入5.信息删除4.信息修改2.信息浏览3.信息查询6.退出系统1. Search by name2. Search by writer1. 书号. 2.书名. 3.作者名.4.出版社. 5.出版时间. 6.图书价格4编码实现过程该程序设计遵循程序设计的模块化原则,主体部分由每个自编功能函数块完成,现将设计部分详解。(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);printf( %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);fwrite(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,);printf(t请输入作者名:);scanf(%s,library.booklibrary.count.author);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();(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.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);for(int i=0;ilibrary.count;i+ )if(strcmp(s2,)=0) flag=0;printf(%st%st%st%st%st%6.2fn,library.booki.number,,library.booki.author,library.booki.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,)=0) flag=0;printf(%st%st%st%st%st%6.2fn,library.booki.number,,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(请输入要查询的书的作者: );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.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); printf(tt*n) ; printf(tt请选择你想要的查询方式:);fflush(stdin); scanf(%d,&a); switch(a) case 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,library.booki.number)=0)break;if (i!=library.count)for(;ilibrary.count-1;i+)strcpy(,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.time,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);scanf(%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.author,library.booki.publish,library.booki.time,library.booki.price); break; if (i!=library.count)mbook book;printf(ntt请输入修改后此图书的信息n);printf(t请输入图书号:);scanf(%s,book.number);printf(t请输入图书名:);scanf(%s,);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(,);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();测试报告登陆界面 身份验证 进入主菜单界面输入1,信息录入输入2,信息浏览输入3,信息查询输入1,按书名查询输入2,按作者查询输入5,修改信息修改后信息浏览输入4,删除信息删除后浏览个人实训总结报告 个人实训总结报告* 本次实训课程设计中,我的工作是编程。首先,自己详细复习了C程序设计教程(教科书)的第十章文件,基本自学会了文件的相关内容,理解了相关函数的用法和作用;另外,上网查询了很多相关资料,还有找了很多相关的系统,都详细的看了一遍,加深了对C的理解以及对文件的相关内容进一步理解。学习了C语言的内容,图书信息管理系统有助于C语言学习的进一步巩固,在本系统可以增强对指针、数组、文件、函数等基本知识的进一步理解。另外图书信息管理系统也是学校常用的基本系统之一,它有助于学校对图书馆书籍的基本管理。通过本次实训,我的C语言编程的能力有了很大提高,特别是在文件、指针、数组、函数和结构体方面有了很大提高,另外还学习了课本没有讲到的知识,学会了使用模块化编程的简单方法,另外在对话框的编程要求美观、方面也有了体会。我对程序设计有很大的兴趣,花了很多时间来自学,同时积极参加学校组织的学科竞赛,我觉得在信息越来越发达的今天,精通一门编程语言在未来将会有很大的发展前景。所以我会更加努力学习C语言的。个人实训总结报告*这四天以来,我们组齐心协力,共同完成了图书管理系统的编程工作以及相关的文档的撰写。这次的实验过程中我们组的组长同学表现勇猛,展现了自己强悍的编程能力,这不仅给组内的编程工作带来突飞猛进的效果,也着实激励了我要好好学习编程的决心。另外组内明确的分工也使工作简化了不少,各司其职,井然有序的工作氛围让我意识到了团队合作重要性。在编程的整个过程中我主要负责编程的需求分析这一部分,我仔细分析了图书管理系统的各个环节之后将这些环节进行了归类,最后确定出了几个需要用编程实现的功能。之后经过小组的讨论我们确定了编程的大致内容,具体实现的编程工作就交给了同学。最后总结一下我在这次实训中的学习心得:对于问题要学会思考和总结。思考的要全面,但不能啰嗦,要简介,但不能遗漏。对于学过的编程要进一步加强,自己的编程能力实在是不敢恭维。注重团队合作,争取发挥团队的作用,不可单打独斗。个人实训总结报告*在该“图书管理系统”的开发过程中,我负责的主要是需求分析这部分,通过对整个流程的熟悉以及小组的沟通和交流,很好的完成了用需求分析,并逐步的通过系统的分析、设计和实施,使图书管理员的工作变的更加轻松。信息管理员只需登录到该系统中,将信息数据输入到系统内,然后就可以进行添加、删除、修改、保存、取消修改、查询数据的功能。 通过这次“图书管理系统”的开发,使我又完整的熟悉了系统的整个开发过程,并体会到在系统开发中,正确的描述对系统的需求是非常重要的,在清楚的明白需求的基础上过程进行描述,同时画系统流程图,可以很好的对整个过程进行进一步的梳理,同时为系统的实施打下基础。在系统实施阶段,运用的Visual C+ 6.0开发工具,使我感觉这个软件易学好用,通过这个系统的开发,使我对c语言开发工具有了一定程度的掌握。 总之,我感觉通过本次学年实习,我受益匪浅,它使我第一次完整的经历了一个完整系统的开发过程,当然,这个系统还有很多不完善的地方,甚至可能还会或多或少存在一些错误,但它使我认识到自己在系统开发过程中还存在哪些不足以及自己在哪个方面的知识需要充实,因此,在以后的学习中,我会更加的有的放矢,弥补自己知识面的不足,使自己能更好的牢固掌握本专业知识,能在毕业后更好的走上自己的工作岗位!编程总结循环是C语言的重要方法,也是本程序的灵魂,它在本程序中既有“穿针引线”的作用,也起到了对数据进行分析、存贮、读取等重要的作用,本程序在使用循环过程中对循环进行了多方法的应用也是一个“亮点”,它使程序变得结构合理,通俗易懂,也降低了程序的难度。以后要对这种方法进行深刻的体会。数组在程序中有着很重要的作用,对数据的贮存、输入、读取起着很重要的作用,本程序几乎所有数据都以数组进行输入、贮存、读取和输入,数组的的使用在本程序中有很大的好处。函数是实现模块化编程的基础,它使程序变得方便易懂,对修改起了很大作用,降低了编程的难度,一个函数就是一个功能,它使各个功能之间有了一定的独立性,但也有了一定的联系性,一个函数的错误,不会导致整个程序的失败(主函数除外),对函数的良好应用时在本程序中又以深刻的体会,有了很大提高。结构体的使用,为本程序提供了很大方便,也提高了程序的可读性,结构数组方便了对数据的管理。文件的读取与存贮使数据可以保存下来,这也是在C语言的学习过程中没有进行教学的内容,在开始时遇到了不小的困难,但前期的准备工作做的还好,最终克服了。我们相信通过这次课程设计的锻炼,我们在今后的学习实践中,一定可以做出更好的作品。附 :源代码#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;mlibrary 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);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=1;system(cls);while(y) printf(t请输入您的书籍的书号:);scanf(%s,library.booklibrary.count.number);printf(t请输入书名:);scanf(%s,);printf(t请输入作者名:);scanf(%s,library.booklibrary.count.author);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();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.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);for(int i=0;ilibrary.count;i+ )if(strcmp(s2,)=0) flag=0;printf(%st%st%st%st%st%6.2fn,library.booki.number,,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(请输入要查询的书的作者: );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.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); printf(tt*n) ; printf(tt请选择你想要的查询方式:);fflush(stdin); scanf(%d,&a); switch(a) case 1:search_by_name();break; case 2:search_by_author();break;case 0:return;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,library.booki.number)=0)break;if (i!=library.count)for(;ilibrary.count-1;i+)strcpy(,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.time,library.booki+1.time);library.booki.price=library.booki+1.price;library.count-;elseprintf(n cannot found!n);save();fflush(stdin);getchar();void update()/修改图书信息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,library.booki.number)=0) printf(图书号t图书名t作者名t出版社t出版日期t图书价格n); printf(%st%st%st%st%st%6.2fn,library.booki.number,,library.booki.author,library.booki.publish,library.booki.time,library.booki.price); break; if (i!=library.count)mbook book;printf(ntt请输入修改后此图书的信息n);printf(t请输入图书号:);scanf(%s,book.number);printf(t请输入图书名:);scanf(%s,);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(,);strcpy(library.booki.number,book.number);strcpy(library.booki.publish,book.

温馨提示

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

评论

0/150

提交评论