1、数据结构课程设计报告图书管理系统图 书 馆 管 理 系 统专 业 班 级 : XXXX学 号 : XXXX姓 名 : XXXX指 导 教 师 : XXXX时 间 : XXXX计算机专业数据结构课程设计任务书学生姓名XXXX专业班级XXXX学号XXXX题 目图书馆管理系统课题性质课程设计课题来源XXXX指导教师XXXX同组姓名XXXX主要内容模拟图书馆信息管理要求,完成图书馆书库中图书管理,图书借阅,图书归还、读者管理等一些列功能,并具有可阅读的界面。具体功能分四大类九个方面,既图书管理、借阅管理、图书查找和信息查看四大模块以及新书入库、清空库存、图书借阅、图书归还、编号查找、书名查找、作者查找
2、、读者信息和超期未还。储存结构分为书目信息储存项和读者信息储存项,使用线性表储存结构,并通过若干子函数实现相应功能。图书查找功能方面使用了数据结构课程中的二分查找法。任务要求1调研图书馆管理系统的功能要求2设计目标功能,并依照其进行程序框架的开发3设计功能中使用到的算法4实现具有一定可读性的程序界面5算法具有一定的健壮性6按要求撰写课程设计报告和设计总结参考文献1.数据结构(C语言版),严蔚敏、吴伟民,清华大学出版社,1997.2.Visual C+实用教程(第一版),张荣梅、梁晓林,冶金工业出版社,2004.审查意见指导教师签字: 教研室主任签字:年 月 日 一、设计题目简单的图书馆管理系统
3、二、设计意义熟悉和掌握数据结构课程所学的各种算法在实际项目中的应用,学习数据结构算法的c+实现方法等。三、系统需求程序中传递的有信息有:图书信息(包括图书编号、书名、作者、出版社、总库存和剩余库存)和读者信息(包括借阅证号和借阅图书)。1.图书管理对书库中的图书信息进行管理和查看功能,包括新书入库和清空库存功能,主要解决实际应用中图书馆增进新书种类数目或已有图书损坏丢失问题。其中,新书入库功能要求输入图书编号、书名、作者、出版社四项信息,用户输入图书编号后,系统首先判断书库中是否有该书的记录,如果满足条件,则要求输入购入数量后修改总库存和现有库存,如果不满足条件,则要求补全图书信息后新建一条库
4、存记录;清空库存功能要求输入图书编号,用户输入图书编号后,系统首先判断书库中是否有该书的记录,如果满足条件,则删除书库中该书的记录,如果不满足条件,则返回错误提示。2.借阅管理管理书库中的图书借阅相关行为,包括图书借阅和图书归还功能,主要解决实际应用中图书馆图书借出和归还信息的管理的问题。其中,图书借阅功能要求输入图书编号,用户输入图书编号后,系统首先判断书库中是否有该书的记录以及是否还存在剩余库存,如果有且剩余库存大于0,则借出一本书,将该书现库存量减1,并登记借阅者的图书证号和归还期限,如果没有,则返回错误提示;图书归还功能要求输入图书编号和借阅证编号,用户输入图书编号和借阅证编号后,系统
5、首先判断书库中是否有该书的记录及是否借出,如果满足条件,则归还一本书,将该书现库存量加1,并删除该借阅证下该条借阅记录,如果不满足条件,则返回错误信息。3.图书查找查找书库中的图书信息,包括按编号查找,按书名查找和按作者查找功能,主要解决实际应用中借阅者查找想要借阅的图书信息和图书馆对图书各类信息的实时管理问题。其中,编号查找功能要求输入图书编号,用户输入图书编号后,系统首先判断书库中是否有该书的记录,如果满足条件,则输出包括图书编号、书名、作者、出版社、总库存和剩余库存等全部图书信息,如果不满足条件,则返回错误信息;书名查找功能要求输入图书书名,用户输入图书书名后,系统首先判断书库中是否有该
6、书的记录,如果满足条件,则输出包括图书编号、书名、作者、出版社、总库存和剩余库存等全部图书信息,如果不满足条件,则返回错误信息;作者查找功能要求输入图书作者,用户输入图书作者后,系统首先判断书库中是否有该书的记录,如果满足条件,则输出包括图书编号、书名、作者、出版社、总库存和剩余库存等全部图书信息,如果不满足条件,则返回错误信息。4.信息查看查看书库中读者相关的借出相关信息,包括读者信息和超期未还功能,主要解决实际应用中图书馆管理者对书库中读者借阅信息和图书借阅信息的实时查看问题。读者信息功能要求输入借阅证编号,用户输入借阅证编号后,系统首先判断书库中是否有该读者的记录,如果满足条件,则输出读
7、者所借阅的图书书名,如果不满足条件,则返回错误信息。超期未还功能要求输入当前日期,用户输入当前日期后,系统输出所有当前日期之前的所有图书借出记录。四、运行环境(软、硬件环境)1)硬件:PC机2)操作系统:Windows 2000/XP/20033)编译环境:Visual C+6.0五、开发工具和编程语言开发工具:VISCALL c+6.0;编程语言:C语言。六、功能设计在仔细分析系统需求后决定按照需求分类设计程序模块,既图书管理、借阅管理、图书查找和信息查看四大模块以及新书入库、清空库存、图书借阅、图书归还、编号查找、书名查找、作者查找、读者信息和超期未还九大功能。1.结构体设计为方便查找和修
8、改,定义结构体四个,他们分别是功能结构体名图书链表struct LinkBook读者链表struct LNode图书信息struct book借阅行为struct Boro2.函数设计并决定函数按照功能划分,共使用函数十五个,包括两个公用函数用于库存检查和信息显示,一个菜单函数和九个分别对应九大功能的功能函数。他们分别是功能函数名称新书入库Buy(ook &boo, char BuyNum)清空库存Delete(ook &boo,char DeleteNum)图书借阅Borrow(ook &boo,lend &Lin,char BorrowNum,char CaNum)图书归还Return(o
9、ok &boo,lend &Lin,char ReturnNum,char BorrowerNum)编号查找SearchByNum(ook &boo,char SeaNum)书名查找SearchByName(ook &boo)作者查找SearchByAuth(ook &boo)读者信息ViewCard(ook &boo,lend &Lin)超期未还ViewBook(ook &boo,lend &Lin)库存检查BinarySearch(ook boo,char SearchNum)信息显示Out(ook &boo)菜单函数Menu()主函数main()初始化图书InitBo(ook &boo)
10、初始化读者InitBo(ook &boo)七、界面设计为方便使用,保持界面简洁明快,减少不必要的菜单层次和菜单项,方便使用者了解程序功能,决定设计单层主菜单。二级不设菜单项,直接实现所选功能,并给出输入提示。1.主菜单界面设计 1. 采编入库 2. 清空库存 3. 图书借阅 4. 图书归还 5. 编号查找 6. 书名查找 7. 作者查找 8. 读者信息 9. 超期未还 0. 退出系统实现代码void Menu() /菜单函数 coutendl; coutendl; cout 1. 采编入库endl; cout 2. 清空库存endl; cout 3. 图书借阅endl; cout 4. 图书归
11、还endl; cout 5. 编号查找endl; cout 6. 书名查找endl; cout 7. 作者查找endl; cout 8. 读者信息endl; cout 9. 超期未还endl; cout 0. 退出系统endl; coutendl; outmid&total;i-) booi=booi-1; cout书库中还没有该图书。endl; cout添加新书目,请补全图书的详细信息。endl; strcpy(booi.num,BuyNum); coutbooi.NowNum; booi.TotNum=booi.NowNum; coutbooi.name; coutbooi.auth; c
12、outbooi.pub; booi.next=NULL; total+; cout已添加该图书的信息。endl; Out(boo); cout图书入库成功。n;界面截图3.功能实现的输入提示(以超期未还为例)请输入日期(例如20101111):超期未还的图书有:代码实现(部分)system(CLS);cout超期未还endl请输入日期(例如20101111):date;cout超期未还的图书有:endl;for(int i=0;iRetDate,date)0) coutendl; cout编号 BNumendl; coutendl; cout书名booi.nameendl; coutendl;
13、 cout证号Lini.CNumendl; coutendl; cout归还日期RetDateendl; coutnext; 界面截图八、程序流程九、已知问题1.程序停留在演示阶段,功能还不完善,偶尔遇到崩溃的情况。解决方法:暂无;2.因为在程序设计初期考虑不全面,编写结构体混乱,导致最后难以完成图书信息的文件储存。解决方法:重新优化结构体编写,使其能方便的完成文件储存。十、设计总结在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何完成一件事情的能力。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。通过这次课程设计,我在很多方面都有所提高。在反复的实验中,了解到自己的程序有什么不足,不完善的地方,再进行修改,调整。在这次设计过程中,还体现出综合运用知识的能力,体会了学以致用,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。更加提高了学习这门课程的热情与兴趣,增强了学好这门课程的信心。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1