图书馆管理系统 数据结构大作业

图书馆管理系统 数据结构大作业

ID:48321662

大小:192.02 KB

页数:31页

时间:2020-01-10

图书馆管理系统 数据结构大作业_第1页
图书馆管理系统 数据结构大作业_第2页
图书馆管理系统 数据结构大作业_第3页
图书馆管理系统 数据结构大作业_第4页
图书馆管理系统 数据结构大作业_第5页
资源描述:

《图书馆管理系统 数据结构大作业》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、封面数据结构课程设计报告图书管理信息系统二〇一三年十二月本程序是图书管理信息系统的实现,具体功能包括读者注册、登录、新书增添、图书查询、图书搜索、借还书、读存盘等。程序流程如下:图书管理信息系统注册登陆读者注册管理员注册读者登录管理员登录入库退出系统个人信息查询还书借书任务分析:1.新书入库:新到书籍入库包含几方面的操作:首先查询该书名的书籍在图书馆信息中是否已经存在,若存在,则增加可借数量和总库存量,若不存在,则新增加概述信息,从界面输入书籍的编号(0~999999的长整型)、书名(字符串类型)、作者名(字符串类型)、出版社信息(字符串类型)、出版日

2、期(整型)、该书的现存量(整型)、该书的总量(整型)。输入该信息之后,将该节点插入到书籍信息链表中去。该节点的插入位置根据查找,找到合适的位置插入,这样可以保证整个数据都是有序的,方便查找。2.读者注册:没有账号和密码读者和管理员都不能登录系统,系统默认第一个注册系统的是系统管理员,借阅号为1000,权限是1,并输入密码000000及基本信息,并将所借书信息区全部置零。不是第一个注册的读者,借阅号从1000往后顺延,自己设置密码,权限为0,其余信息与管理员相同,因此登陆之后,管理员可以看到“入库”菜单选项,普通读者不能看到该选项。3.借书:书籍借阅主要

3、涉及存书库和读者信息库的更新。用户首先登陆系统,通过3种查询方式查询该书是否存在,并判断该书的剩余数量是否大于零,最后查询该读者是否已经借满书籍。若以上条件都满足,则将该书编号存入该读者的借阅信息区,将该读者的可借书数量减1,该存书的可借数量减1。4.还书:读者登录后按书名号来归还所借书籍,若书名号正确并且确认归还该书籍,则从读者的借书区删除该书籍,读者的可借书数量加1,将该书的可借数量增加1,然后返回。5.信息查询:信息查询分为读者信息查询和书籍信息查询,读者信息查询是在读者登录之后,可以显示本人的基本信息以及借书状况(所借书的本数、可借书本数以及所

4、借书的信息),还可查询书籍信息,可根据书籍的编号来查找书籍、根据书名来查找书籍、根据作者名来查询书籍。查询到该书籍后显示是否借阅该书籍。算法设计:1、查找查找分按书名查找、按作者查找和按书号查找。按书名查找是采用遍历线性链表的方式,从首元结点开始向下遍历,检查输入的书名和已存的书名是否匹配,如果匹配,则将该书籍的指针返回,然后查找结束。若直到最后也没找到,则返回空。按作者查找则根据输入的作者名,从书籍链表的首元结点开始遍历,检查记录中的读者信息和输入的是否匹配,若找到匹配的,则输出该书籍信息,然后继续向下遍历,直到链表尾部,查找结束。按书号查找则是根据

5、建立的索引表来查找记录。2、读者信息存储读者信息采用线性单链表存储,设置头结点,头结点不存储数据,初始化时头结点->next设置为空,然后每从文件中读取一组数据,则将该数据存入新开辟的空间,链接到读者信息链表中,再将该数据的next置空。3、图书信息存储书籍信息存储采用单链表存储,设置头结点,头结点不存储数据,头结点的next为空,初始化时,从文件中读取一个格式化的数据,则将该数据存入新开辟的空间,并将该节点链接到链表中去,将next置空。程序主要函数:1.增加图书:voidinsert(book*bhead);输入书号,判断是否合法,然后输入图书信息

6、。流程图如下进入输入书号N书号合法输入书籍信息YY结束输入N继续输入1.借书:voidborrow(reader*temp,book*Bhead);通过书号、书名、作者三种查找方式查询借书,借书成功后,该书的可借书量减1,读者借书量减1。流程图如下:N进入查找按书名查找按书号查找按作者查找进入输入书名继续借书退出输入书号输入作者未找到找到借书找到借书成功YNYYN2.还书:voidreturnbook(book*bhead,reader*temp);输入书号,查询是否存在,然后还书,该书的可借书量加1,读者借书量加1。流程图如下:进入还书输入书号存在还

7、书还书成功退出YNYN详细程序模块1、头文件定义头文件library.h定义了3个结构体:书籍结构体、读者结构体和索引表结构体,书籍结构体的定义如下:typedefstructREADER{longnumber;//借阅号charname[15];//读者姓名charsex;//读者性别charpassword[16];//读者的密码intresidue;//读者的剩余可借书籍数量longborrowed[10];//读者已经借阅的书籍编号intlimit;//读者权限structREADER*next;}reader;读者结构体的定义如下:typed

8、efstructBOOK{longnumber;//书籍编号charname[30];//书名

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。