图书信息管理系统报告Word下载.docx
《图书信息管理系统报告Word下载.docx》由会员分享,可在线阅读,更多相关《图书信息管理系统报告Word下载.docx(8页珍藏版)》请在冰豆网上搜索。
建立两个链表分别存储图书和会员的信息,并建立其中的联系;
通过main函数调用其他函数达到各功能的实现。
在实践的过程中感到了自己的不足,需要进一步的努力。
关键词:
C++图书管理系统函数链表模块困难学习
1.图书信息管理系统设计开发思想
图书馆是目前生活中除了网络外的另一个获取知识的重要场所。
利用图书管理系统对图书记录进行统一管理,包括新增图书记录,更改图书记录,删除图书记录等功能,实现图书管理工作的系统化,规范化和自动化,为图书管理提供便利。
同时是学习完《C++程序设计》课程后进行的一次全面的综合练习。
有助于加深对C++程序设计中基础理论和基本知识的理解,培养了实践能力,促尽理论与实践的结合。
图书信息管理系统的任务功能要求:
(1)录入图书信息,必须包括书目编号、书名、作者名、分类号、出版单位、出版时间、价格、库存册数、借出情况等基本信息;
(2)增加删除书籍;
(3)处理借书,还书;
(4)查找书籍,可按书名、出版社、作者名等多种方式查找。
此题是设计一个图书信息管理系统,根据需要应包含图书管理和会员管理。
其中对图书和会员的增加、查询和删除都是基本操作。
在图书管理中对图书的借阅和归还是重点,这两个操作也是整个系统关键。
在会员管理中增加了会员借书信息的查询和对到期书的催还信息。
要完成这个题目,主要是建立解决图书和会员的信息的存储,解决的方法是建立两个带头结点的单链表,分别用于存储图书和会员。
解决了这个问题后就是如何建立这两个链表的联系了,解决的方法是在图书结点中设一个借书人编号,在会员结点中设一个数组用于存会员借的书。
解决了这两个问题,剩下的工作就简单了。
只需按链表的操作就可以了。
另外,在美观方面,需要设计一个操作界面供用户选择使用。
2.图书信息管理系统功能及系统设计介绍
2.1图书借阅管理简略功能框图
2.2存储结构设计
2.2.1书的结构体
typedefstructbook
{
floatprice;
//图书单价
intmembernum;
//借书人编号
charname[80];
//图书名
longnum;
//图书编号
charwritername[20];
//作者姓名
charpublish[30];
//出版社名称
intyes;
//判断书是否存在或者已经借出,1存在,0借出
structbook*next;
//结点指针
}Book,*BookList;
2.2.2借书时间结构体
typedefstructTime
intyear;
intmonth;
intday;
}data;
2.2.3会员借的书的结构体
typedefstructBorrowBook
Longnum;
//借的书的编号
structTimetime;
//借书时间
structTimeborrowtime;
//借书期限
}BBook;
2.2.4会员的结构体
typedefstructmember
charname[20];
//会员姓名
charsex;
//会员性别,男m,女f
//会员编号
intstyle;
//会员类型,1:
本科生;
2:
研究生;
3:
教师;
4:
管理员;
intmax;
//会员借书数目,初始为0
intyes;
//会员是否借书,1是,0否
BBookt[MAX];
//会员借的书的数组
structmember*next;
//结点指针
}Member,*MemberList;
2.3功能模块划分
2.3.1主函数
主函数通过用户的选择,通过switch结构,判断该调用哪个函数来实现用户的选择。
2.3.2其它函数
主函数通过调用这些函数来实现图书借阅管理系统的操作,这些函数包括:
①增加会员(MemberAdd(MemberList&
L))
用户输入新增加的会员信息,将新增加的会员加入到会员链表中。
②查询会员(MemberSearch(MemberList&
L))
用户输入要查询的会员信息,如果找到就显示出相关信息。
③删除会员(MemberDel(MemberList&
用户输入要删除的会员编号,然后将指定的会员从会员链表中删除。
④图书借阅(BookBorrow(BookList&
H,MemberList&
输入会员编号,如果是会员就输入要借阅的图书编号,完成借阅操作,同时在图书和会员链表中添加借书信息;
如果不是会员,则不能借书。
⑤归还图书(BookReturn(BookList&
用户输入要删除的图书编号,完成图书的归还操作。
同时在图书和会员链表中删除借书信息。
⑥增加图书(BookAdd(BookList&
H))
用户输入新增加的图书信息,将新增加的图书加入到图书链表中。
⑦查询图书(BookSearch(BookList&
H))
用户输入要查询的图书信息,如果找到就显示出相关信息。
⑧删除图书(BookDel(BookList&
用户输入要删除的图书编号,然后将指定的图书从图书链表中删除。
⑨借书信息(BorrowInfo(MemberList&
输入指定的会员编号,如果该会员已经借了书,就显示出该会员的借书信息;
如果没借书就显示出相应的提示信息。
⑩到期书催还(LimitTimeInfo(BookList&
如果已经借出的书到期,就显示出催还信息;
如果没到期,就不显示。
2.4主要模块设计思想
2.4.1图书查询模块
输入要查询的方法,选择相应的查询函数,如果选择的是按书名查询则显示所有书名相同的图书信息;
如果选择的是按编号进行查询,则一次只显示一本书,因为图书是以编号作为主键的,一个编号对应唯一的一本书;
如果选择的是按作者名进行查询,则显示所有作者名相同的图书;
如果选择的是按出版社查询,则显示出所有出版社相同的图书;
如果选择查询所有图书,则显示出所有图书的信息;
如果没有相应的图书,则显示相关信息。
(如上图所示)
2.4.2图书借阅模块
先输入会员编号,判断是否为会员。
如果是会员,就输入要借的图书编号,在图书链表当中查找这本书,如果找到,再判断这本书是否被借出;
如果没有借出,则判断这个会员借的书是否超出了他(她)的最大借阅量,如果没有超出,则在会员借的书的链表中查找适当位置,将借的这本书的书名、编号等信息保存在链表中,完成图书借阅操作。
如果不是会员,或者这本书不存在,或者这本书已经被借出,或者会员超出了他(她)的最大借阅量,则借阅都不成功。
(如右图所示)
2.4.3还书模块
输入要归还的图书编号。
在图书链表当中查找这本书。
如过在链表中找到这本书,并且它被借出,则找到借这本书的会员编号,然后再在会员链表当中查找该会员;
找到会员后,则再在该会员
借了的书的链表当中查找这本书的信息,将这本书从借了的书的链表当中删除,并且将这个会员借的书的数目减1,完成还书。
如果这本书不存在或者没借出,则还书不成功。
2.4.4借书信息模块
输入会员编号,在会员链表中查找相应的会员,如果该会员借了书,则继续查找该会员借的书的链表,在链表中查找该会员借的书的详细信息,如借了的本数、编号、借书时间和到期时间;
如果借的书的链表中没有记录,则说明他没有借书,则显示“无借书记录”。
(如右图所示)
3.图书信息管理系统开发的体会
这次课程设计对于我们来说,有很大的难度。
因为它要求我们较完整的去实现一个比较可行的程序。
将其应用到实际的生活中去。
我被分配到的题目是图书信息管理系统的实现与设计。
这个题目相对来说贴近生活,比较容易理解。
但是设计一个较为完整的程序却不是这么简单的。
在做整个系统的过程中发现自己C++的水平很低,在刚开始时完全是一头雾水,不清楚这个系统应该是从哪里下手,不明白该怎么处理各种功能要求,把这些要求揉和到语言中去。
于是便去到网上搜索观看别人是怎么处理的,鉴于对类与对象并不是很了解,本程序完全是通过main函数调用其他功能函数完成的。
从这可以看出我们在学习中应该多阅读程序,多看别人好的程序是怎么运行的,这样才能慢慢的学会自己去说去做。
整个制作的过程就是一个边学习边摸索的过程,在这两个星期的实践中学到了很多东西。
比如使用链表处理数据,然而在学习的过程中基本就没有学习链表这一部分的内容。
只好进一步的看课本,上网查找相关的知识,学习并且进一步的应用。
还有就是学会把一个程序划分功能模块然后一个模块一个模块的依次解决。
同时通过这几天的程序及报告编写,我也发现了自己的很多不足,自己知识的很多漏洞,看到了自己理论联系实际的能力还是比较脆弱。
尤其是编写大型的程序所要拥有的知识和技能比较缺乏。
程序编好了,还要经过调试和修改,这步也很关键,好的程序是经过了无数次的修改和调试才产生的。
我的程序基本上能够满足要求,但还有一些地方需要改进,在今后我应该在多看书的同时还要加强实践的练习。
才能进一步提高自己的编程能力。