没有合适的资源?快使用搜索试试~ 我知道了~
图书馆管理系统-数据结构大作业.doc
0 下载量 188 浏览量
2023-07-30
01:05:49
上传
评论
收藏 198KB DOC 举报
温馨提示
试读
32页
图书馆管理系统-数据结构大作业.doc
资源推荐
资源详情
资源评论
。
-可编辑修改-
封面
数据结构
课程设计报告
图书管理信息系统
。
-可编辑修改-
二〇一三年十二月
本程序是图书管理信息系统的实现,具体功能包括读者注册、登录、新书增添、图书查
询、图书搜索、借还书、读存盘等。
程序流程如下:
任务分析:
1. 新书入库:
新到书籍入库包含几方面的操作:首先查询该书名的书籍在图书馆信息中是否已经存在,
若存在,则增加可借数量和总库存量,若不存在,则新增加概述信息,从界面输入书籍的编
号(0~999999 的长整型)、书名(字符串类型)、作者名(字符串类型)、出版社信息(字
符串类型)、出版日期(整型)、该书的现存量(整型)、该书的总量(整型)。输入该信息之
后,将该节点插入到书籍信息链表中去。该节点的插入位置根据查找,找到合适的位置插入,
这样可以保证整个数据都是有序的,方便查找。
2. 读者注册:
没有账号和密码读者和管理员都不能登录系统,系统默认第一个注册系统的是系统管理
员,借阅号为 1000,权限是 1,并输入密码 000000 及基本信息,并将所借书信息区全部
置零。不是第一个注册的读者,借阅号从 1000 往后顺延,自己设置密码,权限为 0,其余
信息与管理员相同,因此登陆之后,管理员可以看到“入库”菜单选项,普通读者不能看到
该选项。
3. 借书:
书籍借阅主要涉及存书库和读者信息库的更新。用户首先登陆系统,通过 3 种查询方
图书管理信息系统
登陆
注册
借书
还书
个人信息查询
退出系统
管理员登录
读者登录
入库
管理员注册
读者注册
。
-可编辑修改-
式查询该书是否存在,并判断该书的剩余数量是否大于零,最后查询该读者是否已经借满书
籍。若以上条件都满足,则将该书编号存入该读者的借阅信息区,将该读者的可借书数量
减 1,该存书的可借数量减 1。
4. 还书:
读者登录后按书名号来归还所借书籍,若书名号正确并且确认归还该书籍,则从读者的
借书区删除该书籍,读者的可借书数量加 1,将该书的可借数量增加 1,然后返回。
5. 信息查询:
信息查询分为读者信息查询和书籍信息查询,读者信息查询是在读者登录之后,可以显
示本人的基本信息以及借书状况(所借书的本数、可借书本数以及所借书的信息),还可查
询书籍信息,可根据书籍的编号来查找书籍、根据书名来查找书籍、根据作者名来查询书籍。
查询到该书籍后显示是否借阅该书籍。
算法设计:
1、查找
查找分按书名查找、按作者查找和按书号查找。按书名查找是采用遍历线性链表的方式,
从首元结点开始向下遍历,检查输入的书名和已存的书名是否匹配,如果匹配,则将该书籍
的指针返回,然后查找结束。若直到最后也没找到,则返回空。按作者查找则根据输入的作
者名,从书籍链表的首元结点开始遍历,检查记录中的读者信息和输入的是否匹配,若找到
匹配的,则输出该书籍信息,然后继续向下遍历,直到链表尾部,查找结束。按书号查找则
是根据建立的索引表来查找记录。
2、读者信息存储
读者信息采用线性单链表存储,设置头结点,头结点不存储数据,初始化时头结点
->next 设置为空,然后每从文件中读取一组数据,则将该数据存入新开辟的空间,链接到
读者信息链表中,再将该数据的 next 置空。
3、 图书信息存储
书籍信息存储采用单链表存储,设置头结点,头结点不存储数据,头结点的 next 为空,
初始化时,从文件中读取一个格式化的数据,则将该数据存入新开辟的空间,并将该节点链
接到链表中去,将 next 置空。
程序主要函数:
1. 增加图书:void insert(book *bhead);输入书号,判断是否合法,然后输入图书
信息。
流程图如下
输入书号
书号合法
输入书籍信息
Y
N
Y
进入
。
-可编辑修改-
2. 借书:void borrow(reader *temp, book *Bhead);通过书号、书名、作者三种查
找方式查询借书,借书成功后,该书的可借书量减 1,读者借书量减 1。
流程图如下:
N
进入查找
按书名查找
按书号查找
按作者查找
进入
输入书名
继续借书
退出
输入书号
输入作者
未找到
找到
借书
找到
借书成功
Y
N
Y
Y
N
继续输入
N
结束输入
。
-可编辑修改-
3. 还书:void return book(book *bhead,reader *temp);输入书号,查询
是否存在,然后还书,该书的可借书量加 1,读者借书量加 1。
流程图如下:
详细程序模块
1、 头文件定义
头文件 library.h 定义了 3 个结构体:书籍结构体、读者结构体和索引表结构体,
书籍结构体的定义如下:
typedef struct READER{
long number;//借阅号
char name[15];//读者姓名
char sex;//读者性别
char password[16];//读者的密码
int residue;//读者的剩余可借书籍数量
long borrowed[10];//读者已经借阅的书籍编号
int limit;//读者权限
struct READER *next;
}reader;
读者结构体的定义如下:
typedef struct BOOK{
long number;//书籍编号
char name[30];//书名
char author[30];//作者
进入还书
输入书号
存在
还书
还书成功
退出
Y
N
Y
N
剩余31页未读,继续阅读
资源评论
matlab大师
- 粉丝: 2438
- 资源: 9万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于opencv的人脸识别考勤系统python源码+数据.zip
- IOT安装包 iotech-iot-1.5-dev-1.5.0-amd64.deb
- 基于物品的协同过滤算法(推荐视频)工具类(见仁见智)
- 21信管2班 武学芹组+独立样本T检验数据分析案例.zip
- demo_ccms_global_open_wlan.py
- 小程序项目源码-小契约(交友互动小程序).zip
- 小程序项目源码-健身房预约课程小程序.zip
- 小程序项目源码-wechat-app-xiaoyima-master小程序.zip
- 小程序项目源码-滑动选项卡小程序.zip
- 小程序项目源码-学习Demo影视推荐、音乐播放、地图小程序.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功