图书管理系统
项目介绍
本系统开发的目的是为了减轻图书管理工作的负担,将那些原来需要用手工完成的事情让计算机来完成。不但使得图书管理工作的效率大大提高,同时也大大地降低了出错概率。
图 11
所示图11是图书管理系统整体功能结构图,每个部分也就是一个模块。系统由图上所示的各种模块组合而成,每个模块都完成相应得功能,它们协调一致进行工作,下面将简要介绍各个模块的功能。
- 用户模块
用户模块是提供用户方便快捷的操作,有查看已经借阅的图书,查看图书馆有多少可借的图书,在线下单,修改资料等功能
- 柜台管理模块
本模块实现了对用户的基本信息的管理。主要有确认用户订单,处理用户归还业务,对图书的管理等功能
退出系统功能,让用户能或管理员正常地退出操作系统。
- 系统管理模块
本模块主要针对系统的关键功能操作,主要功能是图书的更新,以及对书籍管理员的更新.
功能需求
用户
1.开户
- 用户首次开户需默认押金100元,等级默认为1级用户,还书期限为15天,默认密码为123456
2.登录
- 用户首次登录提示用户修改密码,并提示用户设置可找回密码的口令
3查询可借图书
- 图书馆数量大于1的全部显示给用户,并且提供用户查看书籍详细介绍
4.借阅图书
-
一级用 最多允许借阅2本书,并且二本书的总价不能超过押金金额
-
二级用户 最多允许借阅5本书,并且五本书的总价不能超过押金金额.
-
三级用户 最多允许借阅10本书,并且十本书的总价不能超过押金金额
-
当用户点击借出时候动态计算出用户还能借阅多少本书以及什么价位的书,并且把该书移动到 已借的图书项目列表中
-
当用户关闭页面时如果用户没有点击”提交订单”按钮时提醒用户点击才可以借阅
-
然后系统生成随即数,用户可凭此随即数去柜台领取书籍
5.查询个人信息和密码修改
- 个人信息只能查看不能修改,修改密码的时候验证用户输入正确才可以修改
柜台管理员
- 还书操作
- 当用户归还图书时查看是否已经超过还书期限,如果超过期限按(每本/每天)1元钱扣费,用户信誉度下降1%.把归还的图书累加到图书数量中
- 确认用户借阅的图书
- 当用户带走借阅的图书时,在数据库中记录该用户所借阅的图书
-
查询用户所借图书,以及个人信息
-
修改柜台管理员密码
系统管理员
-
对图书的录入和修改(名称,价格等)
-
对柜台管理员的管理(解雇,入职等)
设计数据库
新建一个数据库LibrarySystem,设计出以下2-2所示的几张表:
读者表(Reader) | 读者等级表(ReaderGrade) |
---|---|
书籍表(books) | 书籍类别表(BookType) |
管理员表(Manager) | 角色表(Role) |
借书表(BorrowBook) |
表之间的关系如下图2-2:
图 22表
*角色表 Role* | |||
---|---|---|---|
*字段中文名* | *字段名* | *字段类型* | *约束* |
角色ID | roleID | Begint | 主键,自增 |
角色名称 | roleName | Varchar(50) | |
*读者等级ReaderGrade* | |||
读者等级编号 | grandID | Begint | 主键,自增 |
等级描述 | grandName | Varchar(50) | |
可借数量 | quanTity | Int | |
最大金额 | maxManey | maney | |
还书期限 | dateAmount | Int | |
*图书类别 BookType* | |||
类别ID | typeID | Begint | 主键,自增 |
类别名称 | typeName | Varchar(50) | |
*书籍表 Books* | |||
书籍ID | bookID | Begint | 主键,自增 |
书籍名称 | bookName | Varchar(50) | |
书籍数量 | bookQuantity | Int | |
书籍说明 | bookInfo | Varchar(500) | |
书籍封面 | bookImgSrc | Varchar(300) | |
单价 | price | Int | |
作者 | author | Varchar(50) | |
出版社 | bookConcern | Varchar(50) | |
出租次数 | bookOutCount | Varchar(50) | |
书籍首字符 | bookChar | Varchar(50) | |
书籍类别ID | typeID | Begint | 外键,引用类别表 |
*读者表 Reader* | |||
读者ID | readerID | Begint | 主键,自增 |
用户名 | readerName | Varvhar(50) | |
用户名首字符 | ReaderChar | Varchar(50) | |
用户密码 | readerPass | Varchar(50) | |
用户姓名 | realityName | Varchar(50) | |
用户信誉度 | readerCredit | int | |
地址 | address | Varchar(50) | |
电话 | phone | Varchar(50) | |
角色ID | roleID | Begint | 外键,引用角色表 |
等级ID | grandID | Begint | 外键,引用等级表 |
*管理员表 Manager* | |||
管理员ID | managerID | Begint | 主键,自增 |
登录名 | manageName | Varchar(50) | |
登录密码 | managePass | Varchar(50) | |
姓名 | realityName | Varchar(50) | |
地址 | address | Varchar(50) | |
电话 | phone | Varchar(50) | |
角色ID | roleID | Begint | 外键,引用角色表 |
上班时间 | dutyDate | smallDateTime | |
下班时间 | leaveDate | smallDateTime | |
*借书表 BorrowBook* | |||
借书ID | borrowID | Begint | 主键,自增 |
读者ID | readerID | Begint | 外键,引用读者表 |
管理员ID | managerID | Begint | 外键,引用管理员表 |
借书时间 | borrowDate | smallDateTime | |
还书时间 | restoreDate | smallDateTime | |
书籍状况 | bookState | Varchar(50) | |
书籍ID | bookID | Begint | 外键,引用书籍表 |