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

下载本文档

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

文档简介

1、吉林工程技术师范学院c语言程序课程设计报告书设计题目: 图书管理系统 专业:电子信息工程 班级:d0745 学生姓名: 学号: 11号 指导教师: 2010年5月信息工程学院摘 要人类已经跨入了新世纪,正在进入信息时代。现在信息技术的应用越来越普及,不但促进了社会的高速发展,也改变着人们的工作、学习、生活和娱乐的方式以及思想观念。随着计算机的日益普及,计算机软件无处不在。软件在计算机的发展和应用中至关重要,在人类进入信息化社会时成为新兴信息产业的支柱。计算机技术的迅猛发展,特别是随着网络技术的出现标志着信息时代已经来临。信息化浪潮、网络革命在给社会带来冲击的同时,也使图书馆业务受到了强烈的冲击

2、,图书馆传统的管理和服务方式已不能适应读者对日益增长的文献信息的需求。随着馆藏量的不断增加,图书资料的录入和查询的难度也就相应增加,数据处理手工操作,工作量大,出错率高,出错后不易更改的手工方式,已经不能满足要求。基于这此问题,建立一个规范化,系统化,程序化的图书管理系统迫不急待。为方便对图书馆书籍、读者资料、借还书等进行高效的管理,特编写该程序以提高图书馆的管理效率。使用该程序之后,工作人员可以查询某位读者、某种图书的借阅情况,还可以对当前图书借阅情况进行一些统计,以便全面掌握图书的流通情况。本系统的建成无疑会为管理者对图书管理系统提供极大的帮助。关键字: 图书管理系统;信息技术;数据处理;

3、高效管理目 录摘 要i第一章 绪论11.1 图书管理系统简介11.2 图书管理系统需求分析2第二章 系统分析4第三章 管理系统的总体设计与详细设计43.1 总体设计53.2 详细设计6第四章 调试与测试13第五章 编码实现14第六章 总结与心得176.1 总 结176.2 心 得18附 录201.源代码192.参考文献23第一章 绪论1.1 图书管理系统简介图书管理系统是图书馆的重要组成部分,图书是我们最好的获取信息的方式,但由于图书馆图书收藏量大大增加,使传统的图书管理员的工作日益繁重起来,迫使人们起用新的管理方法来管理图书。本文通过作者设计和开发图书馆管理系统的实践,阐述了图书管理软件中所

4、应具有的功能、设计、实现。介绍了图书管理系统的设计和系统功能的实现过程。该系统可以运用于高校的图书管理,由图书编目,图书流通,标准管理,资料管理,系统维护等多个子系统组成,实现了图书资料的计算机网络管理。一般通用的图书馆管理系统通常包括系统管理、读者管理、编目、图书流通、统计、查询等功能。比较先进的系统能够在一个界面下实现图书、音像、期刊的管理,设置假期、设置暂离锁、暂停某些读者的借阅权、导入导出读者资料、交换marc(machine readable catalogue)数据、升级辅助编目库、征订图书等。此外,随着工internet应用的发展,一个完善的系统还应提供无缝接入internet的

5、功能,通过ie浏览器让读者使用借阅资料查询、更换密码、预约、资料检索等功能。有些系统还能提供读者自助服务,可以开放一些客户机让读者自行管理密码、查询自己的借阅史、预约资料、检索资料等。1.2 图书管理系统需求分析为满足图书管理现代化的需求,国内软件商已开发出很多商品化图书管理软件,但他们大多是面向大型专业图书馆而开发的,专业性强,操作和使用比较复杂,难以掌握。而国内很多中小型图书馆由于管理人员不多且大多数不是图书管理业务的专业人员、业务分工也不是很详细、明确,这样的软件对于他们而言太复杂,所以应用效果并不是很好。目前在大的图书馆己经有一整套比较完善的信息管理系统,而在一般小型图书馆中大部分工作

6、还是进行手工管理,工作效率低,并不能即时了解图书馆各类图书的库存,读者比较需求的图书难以在短时间内找到,图书的入库和更新比较麻烦等等,不便于动态及时调整图书结构。同时由于不可避免的人为因素,造成数据的遗漏、误报等。为了更好的适应当前中小型图书馆的读者借阅需求,缓解手工管理存在的各种弊端,因此开发了面向中小型图书馆的图书管理系统,为用户提供全方位的信息服务。通过对中小型图书馆的调查、分析发现,用户的需求可分为4个方面:第一是图书馆的工作人员通过计算机来管理各类图书,分类编号、调整图书结构、增加图书库存,适应读者的需求。第二是读者能通过计算机来查询浏览图书馆中的图书,来确定自己需要的书籍,为借阅做

7、好准备。第三是工作人员对读者的借书情况能够作好全面掌握,能及时得到每个读者的当前借阅状态和历史借阅记录。第四也是图书馆的核心工作,对图书的借阅管理。在软、硬件方面对系统的需求是软件要易学,容易掌握,可以很简单方便地管理各种图书信息。硬件的配置要求不能太高,这样可以适应中小型图书馆的经济条件。总之,中小型图书馆管理信息系统旨在提供一个可以操作的,方便查询的,易于修改的辅助管理系统。同时提供了系统智能辅助与用户自主选择的两种方式,提高查询效率。第2章 系统分析图书馆管理系统包括:l 录入:新进图书及基本信息输入l 删除:旧图书及基本信息删除l 借书:实现用户办理借书手续l 还书:实现用户.办理还书

8、手续系统以菜单方式工作,界面友好,易于操作。系统的程序设计环境;:本系统使用visual c+ 作为程序开发工具。visual c+是基于对象的快速应用程序开发工具,是当今最强大、最灵活的应用程序开发工具之一,具有良好的可视化应用程序开发环境和强大的可扩展数据库功能。利用visual c+提供的可视化组件库进行编程,可以快速、高效地开发出基于windows环境的各类应用程序。visual c+语言的特点是面向对象设计的程序语言,visual c+的基础编程语言是具有面向对象特性的语言,具有代码稳定、可读性好、编译速度快等优点,并将面向对象的概念移植到了c语言中,使这种基础语言有了新的发展空间。

9、与其它编程软件相比,特别是在数据库和网络应用方面,visual c+具有简便易用、灵活高效的特点。开发软件通常要经过修改源代码、编译、测试、再修改、再编译、再测试等操作,这些操作形成了一个开发循环,所以快速的编译器可以大大地降低开发周期。visual c+正是建立在这种高效编译器的基础之上,是针对windows的最快的高级语言代码编译器,因此生成的代码十分精练高效,使visual c+程序的运行速度更快。这也是本人使用visual c+作为程序设计开发语言的重要原因。第三章 管理系统的总体设计与详细设计3.1 总体设计总体设计目标:使用者可以利用本系统进行对图书馆借阅的各项运算操作,如根据用户

10、的需求自动的进行添加图书,删除图书,借书还书。查找所要的图书,查阅图书的详细资料,查阅读者的详细资料。最后清晰完整的结果于屏幕中。大大方便使用者对图书借阅的操作,不仅节省时间,而且提高准确性,可以达到事半功倍的效果。总体设计策略:本系统采用的是自顶向下、层次化的模块结构。对高层模块,采用以事务为中心的设计策略,把一个大的模块逐步分解成较小的相对简单的模块。对低层模块,采用以变换为中心的设计策略。为了提高每个模块的内聚性、降低模块间的耦合性,将每个模块设计成具有单一功能的模块(即功能内聚),使模块间的联系完全是通过主模块的控制和调用来实现(即非直接耦合)。结合上述分析该系统应包括以下模块:信息输

11、入、图书查找、信息删除,图书借出、图书归还。结构图如下 图书馆管理系统图书归还图书借出信息删除信息输入 图3.1 结构框图3.2 详细设计 主函数主函数要求设计比较简洁,只提供设输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。流程图:显示一系列功能选项输入n ,判断n 是否04 根据输入的值调用各功能模块的函数 图3.2.1 主函数流程图程序: void main(void) menu: page_title(操作选单); printf(请用数字键选择操作nn); printf(ttt1 借阅图书ttt2 归还图书n); printf(ttt3 注册新书ttt4 注销旧书nn);

12、 printf(nttttt0 退出n); switch(getch() case 1 : book_out();break; case 2 : book_in();break; case 3 : book_add();break; case 4 : book_del();break; case 0 : exit(0); goto menu; 输入模块分析:该模块的功能是假如用户需要新加入新的图书信息,通过键盘输入将新信息逐条加在原来输入文件上但不能覆盖原有信息。显示图书信息输入操作提示i从0到n-1 调用输入函数input(i)i!=0保存调用函数 save(n)流程图: y 图3.2.2

13、输入模块流程图 程序:void book_add(void) int n; page_title(注册新书); for(n=0;n0) printf(请输入借书证序号:); scanf(%d,&s); printf(请输入可借天数:); scanf(%d,&d); for(l=0;l10;l+) if(booksn.usrl=0) booksn.usrl=s; booksn.daysl=d; break; booksn.store-; if(n!=-1&booksn.store=0) printf(此书已经全部借出.n); return_confirm(); 归还模块分析:该模块功能应体现为方

14、便用户归还图书流程图: 输入归还图书序号是否有记录显示记录 提示没找到让用户输入信息:入库 返回菜单 图3.2.5 归还模块流程图程序:void book_in(void) int n,s,l; page_title(归还图书); if(n=search_book()!=-1&booksn.storebooksn.total) printf(借阅者图书证列表:n); for(l=0;l10;l+) if (booksn.usrl!=0) printf(%d- %d天n,booksn.usrl,booksn.daysl); printf(请输入借书证序号:); scanf(%d,&s); for

15、(l=0;l10;l+) if(booksn.usrl=s) booksn.usrl=0; booksn.daysl=0; break; booksn.store+; if(n!=-1&booksn.store=booksn.total) printf(全部入藏.n); return_confirm(); 公共函数定义结构体: struct book int id,usr10,total,store,days10,zt; char name31,author21; books100;void page_title(char *menu_item) printf(ttt*欢迎使用图书馆管理系统*

16、nn- %s -nn,menu_item); void return_confirm(void) printf(n按任意键返回n);getch(); void state(int n)if(booksn.total!=0)printf(1); if(booksn.total=0)printf(0);第4章 调试与测试首先用一组简单的数据对程序进行调试,是否各函数有出错现象。然后用复杂数据对程序进行调试。直到确定程序对正常数据没有错误为止。 第二,当数据测试时,程序错误,要首先找到出错的函数,对函数中各个变量进行观察,有时变量很多,循环多重不要急,对各个数据的观察,对程序的调试有很大的帮助。你也

17、可以先对几个变量熟悉后,在多重循环里,确定正确的数据,将其跳过调试,对有疑问的数据循环进行仔细观察。虽然这是比较省力气的活,但对复杂的数据错误并不是很有效,所以仔细观察每个数据的变化对调试的成功与否有决定性作用! 第三,测试时,根本的错误并不一定在运行错误的函数内,或许在前面的函数内已经奠定了这些错误数据的基础,需要反过头来,对所有的的函数进行一项项的调试!从程序运行的第一个函数开始调试。按照程序运行的步骤下去。一个个的确定函数的正确性,每确定一个函数,在以后的调试中可以减少对该函数的调试次数,或者直接跳到下一个函数。所谓的各个击破便是如此。对头文件中的各个函数的返回值和它所要传入的参变量及其

18、功能更是需要注意。第四,调试时,需要对错误缩小范围,从整个程序到指定函数,再到指定区域,再到指定行,在对程序缩小范围或对编译没通过的程序缩小错误范围时可以用/* */来进行调试,确定正常范围,缩小错误范围。 第5章 编码实现l 主界面截图图5.1 主界面l 注册新书界面截图图5.2 新书注册l 借阅界面截图图5.3 图书借阅l 归还界面截图图5.4 图书归还l 注销界面截图图5.5 图书注销图5.6 图书状态第6章 总结与心得6.1 总 结经过以上各章节的介绍,已经完成了图书馆管理系统的开发,图书馆系统是一套实用性非常强的系统,从小学、中学直到大学,很多人一直与图书馆打交道,图书馆的发展从手工

19、管理、手工管理和计算机管理并行,直到现在的完全计算机管理。本系统实现的功能特点有:具有直观的图形化用户界面;强大的数据访问能力;图书馆管理系统不仅需要灵活的交互功能,还需要经常与数据库进行联系,要求具有操作简单和功能强大的数据库访问能力。界面尽量美观友好、多彩多姿,完全的图形化设计,操作者易于上手,同时多种媒体技术的集成利用,可以方便的完成用户乐于接受的各种界面设计。本系统虽具备了基本的功能,但由于时间关系,还有很多功能待实现,在此基础上结合实际应用中所出现的问题,从下面几个方面进一步完善:要改善图书的入库和注销功能,使工作人员在主界面上就能进行其操作;在过期天数中应该增加罚款的功能:如果作为

20、校园的图书管理系统,应区分出不同身分的人(如教师和学生)的借阅权限在普通人员查询图书模块就增加库内图书的数量,以使借阅者了解到该书是否可借;应在借阅者模块中增加续借的功能。6.2 心 得回顾起此次课程设计,至今我们仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整半个学期的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力

21、。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。良好的文档是正规研发流程中非常重要的环节,缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇到极大的麻烦。此外编程是一项高精度的工作所以我们要有规范化,标准化的代码编写习惯通过这次编程我们深深的感受到对代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但

22、有助于代码的移植和纠错,也有助于不同人员之间的协作。 我们还要有模块化思维能力 模块化思维就是编程任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作。善于总结,也是学习能力的一种体现,每次完成一个编程任务,完成一段代码,都应当有目的的跟踪该程序的应用状况,随时总结,找到自己的不足,这样所编写的程序才能逐步提高, 生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。通过实际动手做,我们才真正领略到“艰苦奋斗”这一

23、词的真正含义,我们想说,编程确实有些辛苦,但苦中也有乐,在这个团队的任务中,一起的工作可以让我们有说有笑,相互帮助,配合默契。对我们而言,知识上的收获重要,精神上的丰收是可喜的。挫折是一份财富,经历是一份拥有。这次实际操作必将成为我们人生旅途上一个非常美好的回忆!同时,在杨老师和邱老师的身上我们学得到很多实用的知识,再次表示感谢!对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!附 录1.源代码#include #include #include struct book int id,usr10,total,store,days10,zt; char name31,author21; b

24、ooks100;void page_title(char *menu_item) printf(ttt*欢迎使用图书馆管理系统*nn- %s -nn,menu_item); void return_confirm(void) printf(n按任意键返回n); getch(); void state(int n)if(booksn.total!=0)printf(1); if(booksn.total=0)printf(0);int search_book(void) int n,i; printf(请输入图书序号:); scanf(%d,&i); for(n=0;n0) printf(请输入

25、借书证序号:); scanf(%d,&s); printf(请输入可借天数:); scanf(%d,&d); for(l=0;l10;l+) if(booksn.usrl=0) booksn.usrl=s; booksn.daysl=d; break; booksn.store-; if(n!=-1&booksn.store=0) printf(此书已经全部借出.n); return_confirm(); void book_in(void) int n,s,l; page_title(归还图书); if(n=search_book()!=-1&booksn.storebooksn.total

26、) printf(借阅者图书证列表:n); for(l=0;l10;l+) if (booksn.usrl!=0) printf(%d - %d天n,booksn.usrl,booksn.daysl); printf(请输入借书证序号:); scanf(%d,&s); for(l=0;l10;l+) if(booksn.usrl=s) booksn.usrl=0; booksn.daysl=0; break; booksn.store+; if(n!=-1&booksn.store=booksn.total) printf(全部入藏.n); return_confirm(); void boo

27、k_add(void) int n; page_title(注册新书); for(n=0;n100;n+) if(booksn.id=0) break; printf(序号:); scanf(%d,&booksn.id); printf(书名:); scanf(%s,&); printf(作者:); scanf(%s,&booksn.author); printf(数量:); scanf(%d,&booksn.total); printf(存在状态:); state(n); booksn.store=booksn.total; return_confirm(); void book_del(void) int n; page_title(注销旧书);

温馨提示

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

评论

0/150

提交评论