数据结构课程设计图书馆管理系统.doc
《数据结构课程设计图书馆管理系统.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计图书馆管理系统.doc(18页珍藏版)》请在沃文网上搜索。
1、图书馆管理系统 计算机专业 数据结构 课程设计任务书学生姓名专业班级学号题 目图书馆管理系统课题性质课题来源指导教师同组姓名主要内容 1. 采编入库:新购入一本书,如果给书在图书账目中已经存在,则其库存量增加(包括总库存量和现库存量)。如果该书不存在图书账目中增加一本书,总库存量和现库存量都为输入的数字。 2. 清空库存:某一种书已无保留价值,将它从图书账目中注销。 3. 借 阅:如果一种书的库存量大于零,则借出一本书,将现库存量减1,并登记借阅者的图书证号和归还期限。 4. 归 还:注销对借阅者登记,改变该书的现存量。 5. 按书号查找。 6. 按书名查找。 7. 按作者查找。 8. 查看某
2、图书证号的借阅者借阅的全部图书。 9. 查看全部超期未还的图书。 0. 退出图书管理系统。任务要求1研究图书馆管理系统的数据存储方式2实现图书馆管理系统的主要算法3分析算法的运行效率4具有良好的运行界面5算法具有良好的健壮性6按要求撰写课程设计报告和设计总结。参考文献1数据结构(C语言版),严蔚敏、吴伟民,清华大学出版社,1997.2Visual C+实用教程(第一版),张荣梅、梁晓林,冶金工业出版社,2004.审查意见指导教师签字: 教研室主任签字: 年 月 日 一、 设计题目简单的图书馆管理系统二、 设计意义熟悉和掌握数据结构课程所学的各种算法在实际项目中的应用,学习数据结构算法的c+实现
3、方法等。三、 系统需求程序中传递的有信息有:图书信息(包括图书编号、书名、作者、出版社、总库存和剩余库存)和读者信息(包括借阅证号和借阅图书)。1. 图书管理对书库中的图书信息进行管理和查看功能,包括新书入库和清空库存功能,主要解决实际应用中图书馆增进新书种类数目或已有图书损坏丢失问题。其中,新书入库功能要求输入图书编号、书名、作者、出版社四项信息,用户输入图书编号后,系统首先判断书库中是否有该书的记录,如果满足条件,则要求输入购入数量后修改总库存和现有库存,如果不满足条件,则要求补全图书信息后新建一条库存记录;清空库存功能要求输入图书编号,用户输入图书编号后,系统首先判断书库中是否有该书的记
4、录,如果满足条件,则删除书库中该书的记录,如果不满足条件,则返回错误提示。2. 借阅管理管理书库中的图书借阅相关行为,包括图书借阅和图书归还功能,主要解决实际应用中图书馆图书借出和归还信息的管理的问题。其中,图书借阅功能要求输入图书编号,用户输入图书编号后,系统首先判断书库中是否有该书的记录以及是否还存在剩余库存,如果有且剩余库存大于0,则借出一本书,将该书现库存量减1,并登记借阅者的图书证号和归还期限,如果没有,则返回错误提示;图书归还功能要求输入图书编号和借阅证编号,用户输入图书编号和借阅证编号后,系统首先判断书库中是否有该书的记录及是否借出,如果满足条件,则归还一本书,将该书现库存量加1
5、,并删除该借阅证下该条借阅记录,如果不满足条件,则返回错误信息。3. 图书查找查找书库中的图书信息,包括按编号查找,按书名查找和按作者查找功能,主要解决实际应用中借阅者查找想要借阅的图书信息和图书馆对图书各类信息的实时管理问题。其中,编号查找功能要求输入图书编号,用户输入图书编号后,系统首先判断书库中是否有该书的记录,如果满足条件,则输出包括图书编号、书名、作者、出版社、总库存和剩余库存等全部图书信息,如果不满足条件,则返回错误信息;书名查找功能要求输入图书书名,用户输入图书书名后,系统首先判断书库中是否有该书的记录,如果满足条件,则输出包括图书编号、书名、作者、出版社、总库存和剩余库存等全部
6、图书信息,如果不满足条件,则返回错误信息;作者查找功能要求输入图书作者,用户输入图书作者后,系统首先判断书库中是否有该书的记录,如果满足条件,则输出包括图书编号、书名、作者、出版社、总库存和剩余库存等全部图书信息,如果不满足条件,则返回错误信息。4. 信息查看查看书库中读者相关的借出相关信息,包括读者信息和超期未还功能,主要解决实际应用中图书馆管理者对书库中读者借阅信息和图书借阅信息的实时查看问题。读者信息功能要求输入借阅证编号,用户输入借阅证编号后,系统首先判断书库中是否有该读者的记录,如果满足条件,则输出读者所借阅的图书书名,如果不满足条件,则返回错误信息。超期未还功能要求输入当前日期,用
7、户输入当前日期后,系统输出所有当前日期之前的所有图书借出记录。四、 功能设计在仔细分析系统需求后决定按照需求分类设计程序模块,既图书管理、借阅管理、图书查找和信息查看四大模块以及新书入库、清空库存、图书借阅、图书归还、编号查找、书名查找、作者查找、读者信息和超期未还九大功能。为方便查找和修改,定义结构体四个,他们分别是功能结构体名图书链表struct LinkBook读者链表struct LNode图书信息struct book借阅行为struct Boro并决定函数按照功能划分,共使用函数十五个,包括两个公用函数用于库存检查和信息显示,一个菜单函数和九个分别对应九大功能的功能函数。他们分别是
8、功能函数名称新书入库Buy(ook &boo, char BuyNum)清空库存Delete(ook &boo,char DeleteNum)图书借阅Borrow(ook &boo,lend &Lin,char BorrowNum,char CaNum)图书归还Return(ook &boo,lend &Lin,char ReturnNum,char BorrowerNum)编号查找SearchByNum(ook &boo,char SeaNum)书名查找SearchByName(ook &boo)作者查找SearchByAuth(ook &boo)读者信息ViewCard(ook &boo,
9、lend &Lin)超期未还ViewBook(ook &boo,lend &Lin)库存检查BinarySearch(ook boo,char SearchNum)信息显示Out(ook &boo)菜单函数Menu()主函数main()初始化图书InitBo(ook &boo)初始化读者InitBo(ook &boo)五、运行环境(软、硬件环境)1) 硬件:PC机2) 操作系统:Windows 2000/XP/20033) 编译环境:Visual C+6.0六、开发工具和编程语言开发工具:VISCALL c+6.0;编程语言:C+语言。七、程序流程开始主菜单功能选择1采编入库2清空库存3图书借
10、阅4图书归还5编号查找6书名查找7作者查找8读者信息0退出系统9超期未还判断判断判断判断判断输入不满足条件,返回错误信息输出超期未还信息输出读者借阅信息归还图书,删除借出记录借出图书,增加借出记录存在该书目,输出图书信息存在该书目,输出图书信息存在该书目,输出图书信息删除书库条目增加书库条目终止程序源代码#include #include #include using namespace std;#define MAXSIZE 100 /最大值定义为100#define LIST_INIT_SIZE 100/图书证使用者最大值定义为100typedef struct Boro /借书行为/借书
11、人的结构体 char BNum20; /借书的书号 char RetDate8; /归还日期 struct Boro *next;Bor;typedef struct LinkBook Bor *next; /该图书证的借书行为 char CNum20; /证号 int Total; /借书的数量lendLIST_INIT_SIZE; /借书人数组typedef struct LNode /图书的结构体信息 char CardNum20; /图书证号 struct LNode *next;LinkList; /借书人typedef struct book/每种图书需要登记的内容包括书号ISBN
12、、书名、作者、出版社、总库存量和现库存量。 char num20; /书号 char name20; /书名 char auth20; /作者 char pub20; /出版社 int TotNum; /总库存 int NowNum; /现库存 LinkList *next; /借了该书的人ookMAXSIZE;int Retotal;/读者数量int total; /定义外部变量.书的种类数void InitBo(ook &boo) /初始化图书信息 for(int i=0;iMAXSIZE;i+) booi.NowNum=0; booi.TotNum=0; booi.next=NULL;
13、void InitRe(lend &Lin) /初始化借阅者信息 for(int i=0;iLIST_INIT_SIZE;i+) Lini.next=NULL;int mid=0; /外部函数mid,用来返回查找到的位置/二分法查找比较书号,用bool函数,但由于函数不能有两个返回值,所以设置一个外部变量mid,用来返回查找到的位置bool BinarySearch(ook boo,char SearchNum) int low=0,high=total-1; int found=0; while(low=high) mid=(low+high)/2; /中间点 if(strcmp(boomi
14、d.num,SearchNum)=0) /书号相同 found=1;return true; /查找成功 if(strcmp(boomid.num,SearchNum)!=0) /书号不同 high=mid-1; else low=mid+1; if(found=0) return false; /查找失败void Buy(ook &boo, char BuyNum) if(BinarySearch(boo,BuyNum) /如果书库中有此书 boomid.TotNum+; /总库存加1 boomid.NowNum+; /现库存加1 cout入库成功.n; cout已更改书库中该书的信息。n;
15、 coutn; cout编号 boomid.numn; coutn; cout书名boomid.namen; coutn; cout作者boomid.authn; coutn; cout 出版社 boomid.pubn; coutn; cout 现库存 boomid.NowNumn; coutn; cout 总库存 boomid.TotNumn; coutmid&total;i-) /插在适合位置 保持有序 booi=booi-1; /空出插入位置 cout该书在书库中不存在。设立新书目,请补全书的详细信息。n; strcpy(booi.num,BuyNum); coutbooi.NowNum
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 图书馆 管理 系统
