【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块。
其中,在还书之前,会被要求先缴纳罚金再还书。
交罚金的数据内容,交完罚金如下图所示