图书管理系统设计报告
一、需求分析
用户端:
1、用户或者管理员可以登陆进入图书管理系统界面,如果有账号可以直接
登陆,如果没有账号则先需要注册账号再进行登录。
2、用户可以对所需要借阅的图书进行查询,也可以查询自己已经借阅的书
籍的相关信息。
3、如果有需要借阅的图书可以先进行借阅,如果图书馆有该藏书则可以借
阅,如果图书馆该书籍被借空会对用户提醒,然后记录,并且修改图书管理系统
的相关信息。
4、用户可以通过信息提示功能查看记录并显示自己曾经在图书馆内借过的
图书。
5、用户可以通过图书管理系统还书,但是如果超过图书归还期限,则需要
在还书的同时缴纳逾期未还书的罚款。
管理端:
1、管理员可以对图书实现查询图书、添加图书、修改图书、删除图书的操
作。
2、管理员可以对用户实现查询用户、添加用户、修改用户、删除用户的操
作。
二、ER 图
用户端:
管理端:
三、逻辑结构设计
从理论‘E/R 模型’到理论‘关系模型’的整理转换,通过 E/R 模型到关系模型的转化,
可以得到如下关系模式:
用户端:
用户信息
属性:用户名、姓名、密码
主键:用户名
用户端界面信息
属性:借阅信息、预约信息、信息提示
主键:信息提示
图书信息
属性:索书号、书名、种类、作者、出版社、馆藏、可借
主键:索书号
违约罚款信息
属性:
主键:
管理端:
管理员信息
属性:用户身份、用户密码、用户名
主键:用户身份
用户信息
属性:用户名、姓名、密码
主键:用户名
图书信息
属性:图书编号、图书名称、图书种类、图书作者、出版社、图书数目
主键:图书编号
四、管理系统设计
(1)连接数据库
创建数据库连接类,最主要的是创建数据库连接类,封装了 Connection 、
Statement,用 ResultSet 接受结果集。编写数据库连接类方法:根据数据库驱动
包,获取数据连接,以便程序使用。封装执行方法(此方法执行 SQL,返回受影
响的行数)。
下面是创建的图书管理系统的数据库:
#创建图书馆管理系统数据库
CREATE
DATABASE
library;
#创建管理员用户信息表
CREATE
TABLE
user_admin(
admin_id
admin_name
admin_pwd
CHAR(20)
PRIMARY
KEY,
CHAR(10)
NOT
NULL,
CHAR(20)
NOT
NULL
);
#创建一般用户信息表
CREATE
TABLE
user_usual(
usual_id
usual_name
usual_pwd
CHAR(20)
PRIMARY
KEY,
CHAR(10)
NOT
NULL,
CHAR(20)
NOT
NULL
);
#创建图书信息表
CREATE
TABLE
book_infor(
CHAR(20)
CHAR(20)
CHAR(20)
book_id
book_name
book_kind
book_author
book_publish
book_KVA
book_SOC
INT
INT
PRIMARY
KEY,
NOT
NOT
NULL,
NULL,
CHAR(20)
NOT
NULL,
CHAR(20)
NOT
NULL,
NOT
NOT
NULL,
NULL
);
#创建借书记录表
CREATE
TABLE
book_borrow(
CHAR(20),
CHAR(20),
usual_id
book_id
time_borrow
time_return
is_order
DATE
DATE
NOT
NOT
NULL,
NULL,
BOOL
NOT
NULL
);
#创建图书预约表
CREATE
TABLE
usual_old
usual_new
book_id
time_return
book_order(
CHAR(20)
CHAR(20)
NOT
NOT
NULL,
NULL,
CHAR(20)
DATE
NOT
NOT
NULL,
NULL
);
#创建操作日志表
CREATE
TABLE
log_infor(
usual_id
log_titl
log_oper
log_time
CHAR(20)
CHAR(10)
CHAR(100)
NOT
DATE
NOT
NOT
NULL,
NULL,
NULL,
NOT
NULL
);
5);
8);
20);
INTO
40);
INTO
INTO
INTO
book_infor
book_infor
book_infor
book_infor
INSERT
北京工业出版社',5,
INSERT
子工业出版社',8,
INSERT
山东农业大学出版社',40,
INSERT
清华大学出版社',20,
INSERT
','清华大学出版社',10,
INSERT
朔飞','南京工业大学出版社',2,
INSERT
子瀛','西安电子科技大学出版社',4,
INSERT
','电子工业出版社',5,
INSERT
','清华大学出版社',2,
INSERT
','浙江大学出版社',1,
book_infor
book_infor
book_infor
5);
2);
1);
INTO
INTO
10);
INTO
book_infor
VALUES('A120','数据结构','计算机','王红梅
VALUES('A121','计算机组成原理','计算机','唐
VALUES('A122','计算机操作系统','计算机','汤
2);
4);
VALUES('A116','线性代数','数学','李永乐','
VALUES('A117','离散数学','数学','张三','电
VALUES('A118','高等数学','数学','李仁所','
VALUES('A119','设计模式','计算机','程杰','
INTO
book_infor
VALUES('A123','计算机网络','计算机','谢希仁
INTO
VALUES('A124','C 程序设计','计算机','张三丰
INTO
book_infor
VALUES('A125','汇编语言','计算机','韦小宝
INTO
book_infor
INSERT
','南京林业大学出版社',10,
INSERT
小甲鱼','清华大学出版社',40,
INSERT
清华大学出版社',4,
book_infor
book_infor
4);
INTO
INTO
10);
40);
VALUES('A128','javaweb','计算机','张继军','
VALUES('A126','51 单片机','计算机','李逍遥
VALUES('A127','python 语言基础','计算机','
INTO
book_infor
/*添加一条逾期罚款的测试数据*/
INSERT
羲之','浙江大学出版社',4,
INSERT
book_borrow
15',0);
INTO
VALUES('A111','mysql 必知必会','计算机','王
3);
VALUES('111','A111','2020-03-12','2020-04-
(2)运行思路
用户端:
创建注册和登陆页面,供一般用户和管理员创建账号使用,般管理员会早在
数据库的表中建好,所以这个注册页面供一般用户使用。用户注册分为用户名、
姓名、密码、确认密码四个文本框,注册好后会进入页面跳转。如果没有输入完
全,则会在下面提示注册需要填写全部信息,然后清空四个文本框内容,创建好
后则会在用户信息表进行更新。如果验证码错误会刷新一张新的验证码。
页面跳转进入用户登录,在输入用户名和密码后点击一下验证码图片,输入
验证码后进入登陆成功用户端界面,如果密码错误或者用户名错误都不会成功进
入用户端界面,会刷新页面,需要重新输入正确的用户名、密码、验证码才能等
路用户端界面。
在用户端界面的右上角有用户的基本信息,可以通过点击右上角的退出操
作,退出当前用户,也可以重新登陆新用户。
左边一栏为菜单栏,菜单栏分别有五项用户端界面的功能,点开都是空白的,
默认的用户端界面就是图书查询功能界面。图书查询功能界面默认显示全部图
书。可以根据索书号、书名、种类、作者进行图书查询操作,这些选项都是单选,
需要勾选之后填写相应的内容以达到查询图书的目的。
点开图书借阅功能,等待图书借阅后借阅信息结果会自动进行更新,会在图
书借阅页面显示用户的图书借阅信息,同时数据库也会跟着更新。图书归还操作
可以正常还书,如果超过应还时间则需要缴纳超时罚款。图书续借操作可以多续
借一个月,从截止日期后开始算,应还时间会多加一个月。
点开图书预约功能,等待图书预约后预约信息结果会自动进行更新(如果馆
藏为零则自动显示预约)会在图书预约页面显示用户的图书预约信息,同时数据
库也会跟着更新。
点开违约罚款功能,此项是针对未能在规定时间内归还图书则会有违约罚
款,违约罚款的计算方法是如果超过应还时间会计算应缴纳罚款,每超过一天需
要缴纳一元罚款。缴纳罚款需要扫描二维码,待罚款成功缴纳后会显示支付成功
界面(功能未完全实现)。
点开信息提示功能,信息提示用分页技术将全部的借书信息显示出来,可以
通过翻页查看自己曾经的借书记录。
管理端:
等待登陆成功后,左边是菜单,右边是操作进行的界面,上面是菜单操作的
按钮,按不同按钮可以跳转到不同界面。
查询图书可以单项查询也可以多项查询,在查询方式给出了图书编号、图书
名称、图书类别、图书作者、出版社、图书书目这几个选项可供多选。同时在下
面会显示“查询条件之间请以-间隔,并按顺序填写:如 bookId-bookName”的
字样以供使用者了解怎样查询图书。如果查询到书则会在下面显示查询到图书的
信息,就说明这本书存于这个图书管理系统的数据库里,从而可以对这本图书进
行 CRUD 的操作。
添加图书分别从图书编号、图书名称、图书种类、图书作者、出版社、图书
书目这六项进行添加,添加成功后会在数据库更新图书信息。需要注意的一点是
六个框的值不能为空,否则会报错,因为一本图书的各项信息都要齐全才能成功
添加进入数据库中。如果添加一本已经存在于数据库中的书,那么数据库不会产
生新的记录,而是会在原来图书的数目上进行增加。
修改图书分别分别从图书编号、图书名称、图书种类、图书作者、出版社、
图书书目这六项进行添加,修改成功后会在数据库更新图书信息。
删除图书通过图书编号这个主键可以将图书删除掉。
对用户的查询方式给出了用户名、姓名、用户密码这几个选项可供多选。同
时在下面会显示“查询条件之间请以-间隔:如 userId-userName”的字样以供使
用者了解怎样查询用户。如果查询到书则会在下面显示查询到图书的信息,就说
明这名用户存于这个图书管理系统的数据库里,从而可以对这名用户进行 CRUD
的操作。
添加用户一般是通过用户端的注册实现的,在管理端的添加注册是为了提前
将用户注册好,类似于学校这种帮学生注册学号一样。注意一点的是用户密码和
确认密码如果不一样则会显示报错,下面会显示添加成功的文本框。
修改用户下面显示提示信息“默认空表示不修改此项,确认则修改用户名为
***的用户信息”,输入用户名、姓名、原密码、新密码后则可以进行修改密码
的操作,值得注意一点的是如果原密码和新密码相同则会报错,下面出现文本框
提示密码重复,则需要重新进行密码的设置。
删除用户跟删除图书一样,删除用户通过用户 id 这个主键可以将用户删除
掉。
五、管理系统实现
用户端
注册界面:
表单头部:实现用户注册 和 用户登录 的功能
表单主体:注册的信息(用户名、姓名、用户密码、确认密码), 以及用户提
交和重置表单的按钮
表单尾部:显示注册失败的返回信息,是一个设置为 readonly 属性的 text
注册页面实现代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here