【ER图】
实体有三个,一个是学生,一个是书,还有关于管理员,这里管理员的概念比较弱。
1. 学生的属性有学号,姓名,系别,专业 ,借书上限 ,密码等等
2. 图书的属性有ISBN ,书名,作者名字,出版日期,出版商,图书存放位置,图书总量,剩余可借阅数量等等。
3. 管理员的概念有点弱,是整个系统最高的操着者
表的设计,数据库中表最终如图所示,建了三个表。
【表以及属性】
关于学生信息的表,
Table.student(第三范式)
字段名称 | 类型 | 主键 | 非空 | 默认值 | 备注 |
s_id | Nchar(10) | Yes | Yes | 学号 | |
s_name | nchar(10) | No | Yes | 姓名 | |
s_password | nchar(16) | No | Yes | 密码 | |
S_department | nchar(20) | No | Yes | 系别 | |
s_major | nchar(20) | No | Yes | 专业 | |
s_sum | int | No | No | 10 | 借书总数 |
table.bookInfo(第三范式)
字段名称 | 类型 | 主键 | 非空 | 默认值 | 备注 |
ISBN | nchar(13) | Yes | Yes | ||
b_name | nchar(50) | No | Yes | 书名 | |
b_author | nchar(30) | No | Yes | 作者 | |
b_press | nchar(30) | No | Yes | 出版社 | |
B_publishdate | nchar(20) | No | Yes | 出版日期 | |
b_location | Nchar(14) | No | No | 藏书位置 | |
b_sum | Int | No | No | 藏书总额 | |
b_available | int | No | Yes | 0 | 可借阅书目 |
Table.S_lend(第三范式)
字段名称 | 类型 | 主键 | 非空 | 默认值 | |
s_id | char(10) | Yes | Yes | 学生编号 | |
ISBN | char(14) | Yes | Yes | 图书编号 | |
l_borrowdate | Datetime(8) | No | Yes | 借阅日期 | |
l_continue | Bit(1) | No | Yes | False | 续借否 |
l_backdate | Datetime(8) | No | Yes | NULL | 实际归还日期 |
【系统功能模块设计图】
【用户手册】
数据库版本:SQL2005
Referenced Library :JDBC4
这里介绍的都是自己写的部分,源程序的界面参考了一下别人风格,不是自己的功能就不介绍了。
1.登录
a) 登录分成两种方式登录,匿名登录和用户登录,匿名登录仍然可以查询图书,但是不可以借阅,想要借阅,只有用户登录
l 匿名登录的比较简单,只有查询功能
b) 默认给定的读者用户名 0305100427 密码zrj
当然 007 加密码zrj也是可以的
读者的权限高一点,所以有基本的查询,借阅,还书,续借等功能
C)管理员的权限更大,实现的功能也最多
2.查询图书,包括模糊查询
可以查询全部图书信息
也用SQL实现了模糊查询
作者查询也是可以的
3.借阅功能以及完善
输入学号,便能够查询读
者基本信息,输入书籍编号,便能够查询书籍的基本信息。
其中,增加了对借同一本的判断,就是同一ISBN的书,如果该读者没有换,那么就不能再继续借书。
同时,也对读者的借书上限进行判断,如果借书达到上限会提醒作者应该先还书。
对于可借数量为0的书本,也是不能被借的。
另外,每次借书之后,数据库书中的可借数目,和学生的可借数目都会减少。
4.还书功能以及完善
与借书的功能相对应的,只是考虑到数据库本身数据的可利用性,所以不采取删除记录的方式而是记录一个还书日期,表示读者已经归还了书。
可以根据读者编号查询读者需要的书。
5.续借功能
a)这是续借前的应归还时间。
续借后的情况如图所示,明显多了三十天
b)对续借的次数进行规定,也就是说,只能续借一次。
6.交罚金的功能
欠费一天收1毛钱,如图所示,如果是三月1号借的书,那么五月31号肯定过期,过期31天,总共要交3.1块。
其中,在还书之前,会被要求先缴纳罚金再还书。
交罚金的数据内容,交完罚金如下图所示