下载此文档

课程设计——图书借阅管理系统.pdf


文档分类:IT计算机 | 页数:约18页 举报非法文档有奖
1/18
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/18 下载此文档
文档列表 文档介绍
该【课程设计——图书借阅管理系统 】是由【青山代下】上传分享,文档一共【18】页,该文档可以免费在线阅读,需要了解更多关于【课程设计——图书借阅管理系统 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..数据结构课程设计说明书:..要求:实现图书馆的增加图书、查询图书、删除图书、借阅图书、还书;增加会员、查询会员、删除会员、借书信息、到期书催还等智能化管理过程。:..一、问题描述图书借阅管理系统是一个学校不可缺少的部分,它的内容对于学校的管理者和读者来说都至关重要,直接关系到图书的借用率,所以开发图书管理系统能够为管理员和读者提供充足的信息和快捷的查询手段。编写程序系统主要实现图书馆的增加图书、查询图书、删除图书、借阅图书、还书;增加会员、查询会员、删除会员、借书信息、到期书催还等智能化管理过程。二、,掌握编程技巧,为后续的专业课学****打下良好的基础;++语言及相应开发环境,实现一个小型完整程序的设计与开发;,培养学生运用知识,分析和解决实际问题的能力。三、:(1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书到期书催还);(2)会员管理(增加会员、查询会员、删除会员、借书信息);要完成这个题目,主要是建立解决图书和会员的信息的存储,解决的方法是建立两个带头结点的单链表,分别用于存储图书和会员。解决了这个问题后就是如何建立这两个链表的联系了,解决的方法是在图书结点中设一个借书人编号,在会员结点中设一个数组用于存会员借的书。解决了这两个问题,剩下的工作就简单了。只需按链表的操作就可以了。:(1)图书修改功能:能对图书借阅系统存储的信息进行修改。提供两种修改方式,如按照图书编号修改、按照书名修改。图书编号是图书记录的自然顺序编号。:..(2)图书删除功能:能对图书借阅系统的图书信息进行删除。删除时以记录为单位,能一次删除一条记录。(3)借书功能:能对借出的图书作记录信息,能一次借出一本图书。(4)还书功能:能将被借出的图书信息还原,能一次借出一本图书。(5)保存功能:能将记录保存在任何自定义的文件中,如保存在:c:ooks、。(6)通信录管理结束后,能够正常退出图书借阅管理程序。(1)每个借阅者记录至少包括如下信息:姓名、学号、姓别等。每本图书记录至少包括如下信息:编号、书名、作者、价格等。(2)图书、借阅者信息以磁盘文件的形式存储,存储位置、文件名、文件格式由设计者确定。(3)对于图书借阅系统功能中数据输入、显示、查询、修改、删除、保存等功能,要求编写功能独立的函数或主控函数予以实现,其所属的各项功能尽量由独立的函数实现。(4)以菜单方式实现功能选择控制。(5)本图书借阅管理程序能够实现100条记录的管理。,根据需要应包含图书管理和会员管理。其中对图书和会员的增加、查询和删除都是基本操作。在图书管理中对图书的借阅和归还是重点,这两个操作也是整个系统关键。在会员管理中增加了会员借书信息的查询和对到期书的催还信息。实现这些操作的关键在于建立的两个带头结点的单链,分别用于存储图书和会员的基本信息。在这两个链表之间还应建立起相互的联系,便于查询的操作的实现。另外,在美观方面,需要设计一个操作界面供用户选择使用。:..:图-,设计出本程序的总体功能设计框图。分为七个方面:1、选择检查类型;2、编辑图书的信息;3、查询图书的信息;4、编辑读者的信息;5、查询读者的信息;6、借阅书刊;7、还书。连线之间说明了他们之间的相互联系以及设计时的要求。:..{floatprice;//图书单价intmembernum;//借书人编号charname[80];//图书名longnum;//图书编号charwritername[20];//作者姓名charpublish[30];//出版社名称intyes;//判断书是否存在或者已经借出,1存在,0借出structbook*next;//结点指针}Book,*BookList;:..{intyear;intmonth;intday;}data;{longnum;//借的书的编号structTimetime;//借书时间structTimeborrowtime;//借书期限}BBook;{charname[20];//会员姓名charsex;//会员性别,男m,女flongnum;//会员编号intstyle;//会员类型,1:本科生;2:研究生;3:教师;4:管理员;intmax;//会员借书数目,初始为0intyes;//会员是否借书,1是,0否BBookt[MAX];//会员借的书的数组structmember*next;//结点指针}Member,*MemberList;:..;单链表为BookListADTBookList{数据对象D:D是具有相同特性的数据元素的集合。各个数据元素均喊有类型相同,可唯一表示数据元素的关键字。数据关系S:数据元素的同属一个集合。基基本操作P:BookSearch(BookList&H)//查询图书初始条件:接受一个存放图书信息的带头结点的单链表操作结果:在上述链表中查询指定的图书,并显示出相应图书信息BookDel(BookList&H)//删除图书初始条件:接受一个存放图书信息的带头结点的单链表操作结果:在上述链表中删除指定的图书信息BookAdd(BookList&H);//增加图书初始条件:接受一个存放图书信息的带头结点的单链表操作结果:将新增加的图书信息插入到上述链表中BookReturn(BookList&H,MemberList&L)//还书初始条件:接受一个存放图书信息的带头结点的单链表和一个存放会员信息的带头结点的单链表操作结果:在上述两个链表中分别删除借书信息BookBorrow(BookList&H,MemberList&L)//图书借阅初始条件:接受一个存放图书信息的带头结点的单链表和一个存放会员信息的带头结点的单链表操作结果:在上述两个链表中分别添加借阅图书的信息:..}建立一个带头结点的单链表来存放会员信息;单链表为MemberListADTMemberList{数据对象D:D是具有相同特性的数据元素的集合。各个数据元素均喊有类型相同,可唯一表示数据元素的关键字。数据关系S:数据元素的同属一个集合。基本操作P:MemberSearch(MemberList&L)//查询会员初始条件:接受一个存放会员信息的带头结点的单链表操操作结果:在上述链表中查询指定的会员,并显示出相应会员信息MemberAdd(MemberList&L);//增加会员初始条件:接受一个存放会员信息的带头结点的单链表操作结果:将新增加的会员信息插入到上述链表中BorrowInfo(MemberList&L)//借书信息初始条件:接受一个一个存放会员信息的带头结点的单链表操作结果:在上述链表中查找相应会员并显示会员借书信息MemberDel(MemberList&L)//删除会员初始条件:接受一个存放会员信息的带头结点的单链表操作结果:在上述链表中删除指定的会员信息LimitTimeInfo(BookList&H,MemberList&L)//到期书催还初始条件:接受一个存放图书信息的带头结点的单链表和一个存放会员信息的带头结点的单链表操作结果:在上述两个链表中分别查找相应借书信息,并显示出会员借书是否到期}::..任何两个元素的存储位置之间没有固定的联系,每个元素的存储位置都包含在其直接的前驱节点的信息中。就是说指针为数据元素之间的逻辑关系映射,则逻辑上相邻的两个元素其存储位置不要求紧邻。,通过switch结构,判断该调用哪个函数来实现用户的选择。,这些函数包括:①增加会员(MemberAdd(MemberList&L))用户输入新增加的会员信息,将新增加的会员加入到会员链表中。②查询会员(MemberSearch(MemberList&L))用户输入要查询的会员信息,如果找到就显示出相关信息。③删除会员(MemberDel(MemberList&L))用户输入要删除的会员编号,然后将指定的会员从会员链表中删除。④图书借阅(BookBorrow(BookList&H,MemberList&L))输入会员编号,如果是会员就输入要借阅的图书编号,完成借阅操作,同时在图书和会员链表中添加借书信息;如果不是会员,则不能借书。⑤归还图书(BookReturn(BookList&H,MemberList&L))用户输入要删除的图书编号,完成图书的归还操作。同时在图书和会员链表中删除借书信息。⑥增加图书(BookAdd(BookList&H))用户输入新增加的图书信息,将新增加的图书加入到图书链表中。⑦查询图书(BookSearch(BookList&H))用户输入要查询的图书信息,如果找到就显示出相关信息。⑧删除图书(BookDel(BookList&H)):..⑨借书信息(BorrowInfo(MemberList&L))输入指定的会员编号,如果该会员已经借了书,就显示出该会员的借书信息;如果没借书就显示出相应的提示信息。⑩到期书催还(LimitTimeInfo(BookList&H,MemberList&L))如果已经借出的书到期,就显示出催还信息;如果没到期,就不显示。,选择相应的查询函数,如果选择的是按书名查询则显示所有书名相同的图书信息;如果选择的是按编号进行查询,则一次只显示一本书,因为图书是以编号作为主键的,一个编号对应唯一的一本书;如果选择的是按作者名进行查询,则显示所有作者名相同的图书;如果选择的是按出版社查询,则显示出所有出版社相同的图书;如果选择查询所有图书,则显示出所有图书的信息;如果没有相应的图书,则显示相关信息。(如图-3):..图书借阅模块先输入会员编号,判断是否为会员。如果是会员,就输入要借的图书编号,在图书链表当中查找这本书,如果找到,再判断这本书是否被借出;如果没有借出,则判断这个会员借的书是否超出了他(她)的最大借阅量,如果没有超出,则在会员借的书的链表中查找适当位置,将借的这本书的书名、编号等信息保存在链表中,完成图书借阅操作。如果不是会员,或者这本书不存在,或者这本书已经被借出,或者会员超出了他(她)的最大借阅量,则借阅都不成功。(如图-4)。在图书链表当中查找这本书。如过在链表中找到这本书,并且它被借出,则找到借这本书的会员编号,然后再在会员链表当中查找该会员;找到会员后,则再:..且将这个会员借的书的数目减1,完成还书。如果这本书不存在或者没借出,则还书不成功。(如图-5),在会员链表中查找相应的会员,如果该会员借了书,则继续查找该会员借的书的链表,在链表中查找该会员借的书的详细信息,如借了的本数、编号、借书时间和到期时间;如果借的书的链表中没有记录,则说明他没有借书,则显示“无借书记录”。(如图-6),如果书被借出,则进一步判断;获取当前系统的时间,用来与借出的书的到期时间作比较;因为到期时间保存在会员借的书的链表当中,因此,只有找到借这本书的会员编号,然后根据编号再在会员链表中找到改会员,再在他借的书的链表中查找他的书,获取到期时间,那它与当前的系统时间作比较,如果系统的时间超过了到期时间,则显示出催还信息。(如图-7):..输入/输出设计通过输入流ifstream/输出流ofstream加载和存储文件,、。:..,加入5本书和5个用户作为测试用户。详细内容如下表::(如图-10):(如图-11):..:(如图-12):(如图-13):..五、设计的特点、不足、收获与体会这次基础强化训练的课程设计对于我们来说,有一定的难度。因为他要求我们较完整的去实现一个比较可行的程序。将其应用到实际的生活中去。我被分配到的题目是图书借阅系统的实现与设计。这个题目相对来说贴近生活,比较容易理解。但是设计一个较为完整的程序却不是这么简单的。首先我分析了相关的题目内容,并由此而进行了相关资料和书籍的查询工作然后才开始正式进行设计。一开始不知从何下手但后来分析了一下题目,并结合这学期所学的知识,再加上相关提示我决定用指针、链表和文件的内容来编写程序。图书管理主要就是有一些操作来完成,这些操作包括:新进图书基本信息的输入、图书基本信息的查询、对撤消图书信息的删除、为借书人办理注册、办理借书手续(非注册会员不能借书)、办理还书手续等等。我想这正好用C++的知识来实现函数:添加图书,图书查询,删除图书,增加会员,会员查询,删除会员,借阅图书,归还图书,借书信息,到期书催还。最后编写退出系统的函数。在具体编写程序时考虑到图书的相关操作与会员基本相同,所以实际上只要编写前三个函数,后面的函数把相应变量改变就可以了。添加图书:考虑到图书的信息较多,所以用结构体对其定义。又考虑到图书量大,所以添加后要保存到文件中去。图书查询:用所学过的顺序查找法来写。删除图书:把保存到文件中的内容写到链表中去,用链表删除结点的方法来删除图书。我们所学过的指针这时正好用上。最后把各函数同主函数相连,用主函数调用它们,编写好好看的界面就可以了。:..同时通过这几天的程序及报告编写,我也发现了自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还是比较脆弱。尤其是编写大型的程序所要拥有的知识和技能比较缺乏。程序编好了,还要经过调试和修改,这步也很关键,好的程序是经过了无数次的修改和调试才产生的。我的程序基本上能够满足要求,但还有一些地方需要改进,在今后我应该在多看书的同时还要加强实践的练****才能进一步提高自己的编程能力。最后,还要感谢我们实验室指导老师的细心指导、热心帮助。路漫漫其修远兮,虽然本学期数据结构课程结束了,但仍觉得自己还有很多东西要学,我会在自己在以后的学****生活中不断努力、不断提高,争取更大的进步。

课程设计——图书借阅管理系统 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数18
  • 收藏数0 收藏
  • 顶次数0
  • 上传人青山代下
  • 文件大小2.38 MB
  • 时间2024-03-29