课程设计——图书借阅
管理系统
-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN
课程设计说明书
课程名称: 软件工程课程设计
题目:___图书借阅管理系统____
院 系: 理学院 _
专业班级:_数学与应用数学08-2_
学 号:_74__ 学生姓名:_赵梦____ 指导教师:_____
2011年 12 月 26 日
安徽理工大学课程设计(论文)任务书
理学院 院系 信计 教研室 学 号 74 学生姓名 赵梦 专业(班级) 数学与应用数学——2 设计题目 图书借阅管理系统 设 计 技 术 参 数 设 计 要 求 工 作 量 工 作 计 划 C语言 C++ 实现图书馆的增加图书、查询图书、删除图书、借阅图书、还书;增加会员、查询会员、删除会员、借书信息、到期书催还等智能化管理过程。 项目源文件 设计说明书 接收计划 模块分析 结构设计 整合运行 [1] 闵联营,何克右.《C++程序设计教程》.武汉理工大学出版社; [2] 严蔚敏,吴伟民.《数据结构(C语言版)》.清华大学出版社; 参 考 资 料 [3] 张文祥, 肖四友.《C++实验与案例分析》. 科学出版社; [4] 谭浩强.《C++程序设计》. 清华大学出版社; [5] 朱战立.《数据结构(C++语言描述)》(第二版本).高等教育出版社。 指导教师签字 教研室主任签字 年 月 日
安徽理工大学课程设计(论文)成绩评定表
学生姓名: 赵梦 学号: 74 专业班级: 应数08-2 课程设计题目: 软件工程课程设计 指导教师评语: 成绩: 指导教师: 年 月 日
目录
1
问题描述
2
实验目的
3
设计过程
4
系统测试
5
设计的特点不足收获与体会
6
参考文献
一、问题描述
图书借阅管理系统是一个学校不可缺少的部分,它的内容对于学校的管理者和读者来说都至关重要,直接关系到图书的借用率,所以开发图书管理系统能够为管理员和读者提供充足的信息和快捷的查询手段。
编写程序系统主要实现图书馆的增加图书、查询图书、删除图书、借阅图书、还书;增加会员、查询会员、删除会员、借书信息、到期书催还等智能化管理过程。图书管理者只需略懂电脑知识就可以简易的操作该图书借阅管理系统。
二、实验目的
1.强化和巩固理论基础,掌握编程技巧,为后续的专业课学习打下良好的基础; 2.要求用C/C++语言及相应开发环境,实现一个小型完整程序的设计与开发; 3.巩固深化所学课程的知识,培养学生运用知识,分析和解决实际问题的能力。
三、设计过程
系统需求分析
图书借阅管理系统主要分为两大功能:
(1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书到期书催还); (2)会员管理(增加会员、查询会员、删除会员、借书信息);
要完成这个题目,主要是建立解决图书和会员的信息的存储,解决的方法是建立两个带头结点的单链表,分别用于存储图书和会员。解决了这个问题后就是如何建立这两个链表的联系了,解决的方法是在图书结点中设一个借书人编号,在会员结点中设一个数组用于存会员借的书。解决了这两个问题,剩下的工作就简单了。只需按链表的操作就可以了。
功能要求
在图书借阅管理程序中须实现以下功能:
(1)图书修改功能:能对图书借阅系统存储的信息进行修改。提供两种修改方式,如按照图书编号修改、按照书名修改。图书编号是图书记录的自然顺序编号。
(2)图书删除功能:能对图书借阅系统的图书信息进行删除。删除时以记录为单位,能一次删除一条记录。
(3)借书功能:能对借出的图书作记录信息,能一次借出一本图书。 (4)还书功能:能将被借出的图书信息还原,能一次借出一本图书。
(5)保存功能:能将记录保存在任何自定义的文件中,如保存在:c:\\books 、c:\\lenders。 (6)通信录管理结束后,能够正常退出图书借阅管理程序。
技术要求
(1)每个借阅者记录至少包括如下信息:姓名、学号、姓别等。每本图书记录至少包括如下信息:编号、书名、作者、价格等。
(2)图书、借阅者信息以磁盘文件的形式存储,存储位置、文件名、文件格式由设计者确定。 (3)对于图书借阅系统功能中数据输入、显示、查询、修改、删除、保存等功能,要求编写功能独立的函数或主控函数予以实现,其所属的各项功能尽量由独立的函数实现。 (4)以菜单方式实现功能选择控制。
(5)本图书借阅管理程序能够实现100条记录的管理。
方案分析
此题是设计一个图书借阅管理系统,根据需要应包含图书管理和会员管理。其中对图书和会员的增加、查询和删除都是基本操作。在图书管理中对图书的借阅和归还是重点,这两个操作也是整个系统关键。在会员管理中增加了会员借书信息的查询和对到期书的催还信息。实现这些操作的关键在于建立的两个带头结点的单链,分别用于存储图书和会员的基本信息。在这两个链表之间还应建立起相互的联系,便于查询的操作的实现。另外,在美观方面,需要设计一个操作界面供用户选择使用。
图书借阅管理功能框图设计 总体功能实现:
图-1.总体功能实现框图
通过需求分析,设计出本程序的总体功能设计框图。分为七个方面:1、选择检查类型;2、编辑图书的信息;3、查询图书的信息;4、编辑读者的信息;5、查询读者的信息;6、借阅书刊;7、还书。连线之间说明了他们之间的相互联系以及设计时的要求。
图书借阅管理简略功能框图
存储结构设计
书的结构体
typedef struct book
{
float price;
5到期书催还
在图书链表中逐个查询,如果书被借出,则进一步判断;获取当前系统的时间,用来与借出的书的到期时间作比较;因为到期时间保存在会员借的书的链表当中,因此,只有找到借这本书的会员编号,然后根据编号再在会员链表中找到改会员,再在他借的书的链表中查找他的书,获取到期时间,那它与当前的系统时间作比较,如果系统的时间超过了到期时间,则显示出催还信息。(如图-7)
输入/输出设计
通过输入流ifstream/输出流ofstream加载和存储文件,将、读取文件或写入文件。
用户界面设计
主界面
四、系统测试
增加图书和增加会员系统,加入5本书和5个用户作为测试用户。详细内容如下表:
图书借阅功能:(如图-10)
图书归还功能:(如图-11)
会员借书信息显示:(如图-12)
过期催还功能:(如图-13)
五、设计的特点、不足、收获与体会
这次基础强化训练的课程设计对于我们来说,有一定的难度。因为他要求我们较完整的去实现一个比较可行的程序。将其应用到实际的生活中去。我被分配到的题目是图书借阅系统的实现与设计。这个题目相对来说贴近生活,比较容易理解。但是设计一个较为完整的程序却不是这么简单的。
首先我分析了相关的题目内容,并由此而进行了相关资料和书籍的查询工作然后才开始正式进行设计。一开始不知从何下手但后来分析了一下题目,并结合这学期所学的知识,再加上相关提示我决定用指针、链表和文件的内容来编写程序。图书管理主要就是有一些操作来完成,这些操作包括:新进图书基本信息的输入、图书基本信息的查询、对撤消图书信息的删除、为借书人办理注册、办理借书手续(非注册会员不能借书)、办理还书手续等等。我想这正好用C++的知识来实现函数:添加图书,图书查询,删除图书,增加会员,会员查询,删除会员,借阅图书,归还图书,借书信息,到期书催还。最后编写退出系统的函数。
在具体编写程序时考虑到图书的相关操作与会员基本相同,所以实际上只要编写前三个函数,后面的函数把相应变量改变就可以了。添加图书:考虑到图书的信息较多,所以用结构体对其定义。又考虑到图书量大,所以添加后要保存到文件中去。图书查询:用所学过的顺序查找法来写。删除图书:把保存到文件中的内容写到链表中去,用链表删除结点的方法来删除图书。我们所学过的指针这时正好用上。最后把各函数同主函数相连,用主函数调用它们,编写好好看的界面就可以了。
同时通过这几天的程序及报告编写,我也发现了自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还是比较脆弱。尤其是编写大型的程序所要拥有的知识和技能比较缺乏。程序编好了,还要经过调试和修改,这步也很关键,好的程序是经过了无数次的修改和调试才产生的。我的程序基本上能够满足要求,但还有一些地方需要改进,在今后我应该在多看书的同时还要加强实践的练习。才能进一步提高自己的编程能力。
最后,还要感谢我们实验室指导老师的细心指导、热心帮助。路漫漫其修远兮,虽然本学期数据结构课程结束了,但仍觉得自己还有很多东西要学,我会在自己在以后的学习生活中不断努力、不断提高,争取更大的进步。
六、参考文献
[1] 闵联营,何克右.《C++程序设计教程》.武汉理工大学出版社;
[2] 严蔚敏,吴伟民.《数据结构(C语言版)》.清华大学出版社;
[3] 张文祥, 肖四友.《C++实验与案例分析》. 科学出版社;
[4] 谭浩强.《C++程序设计》. 清华大学出版社;
[5] 朱战立.《数据结构(C++语言描述)》(第二版本).高等教育出版社。
因篇幅问题不能全部显示,请点此查看更多更全内容