纯Java+SQL实现——网上图书馆借还管理系统

完整版zip:http://download.csdn.net/detail/wsk1103/9702747
或者
https://download.csdn.net/download/wsk1103/10806488

PS:这是刚学Java时自己手写的一个垃圾项目,质量低,但是可以运行。已经放弃维护。。。。。。。。。

1 概述

网络的发展越来越快,网上图书馆也毫不例外。因此,网上图书馆就此诞生了,学生对知识的渴望也是越来越大,并且通过网络来订阅图书是一件非常轻松的事情。
本系统是一个针对学校的网上图书馆借还系统,通过网络,学生可以很轻松的查询某些书籍是否可以借到,并且还可以通过网络续借书籍。管理员可以通过该系统很容易的将书籍信息存储到数据库和查询学生的借还情况,并且通知那些逾期的学生尽快归还或者续借。超级管理员则对学生和管理员的信息进行修改,或者增加用户。用户必修用户名和密码相互匹配正确后才能登陆成功,然后在进行相应的操作。对于非法操作,该系统有识别作用。

2 需求分析

2.1用户需求

该系统是一个学生的网上图书借还系统,是一个比较智能化的系统,虽然面向所有学生和管理员,但具有比较高的安全性能,想要破解还是比较费时间的。他能够实现学生预约书籍,查看借还情况功能,管理员添加,修改书籍,查看学生借还情况,超级管理员添加,修改管理员信息和添加学生用户。用户必修输入有效密码才能成功进入系统,进入系统后可以进行相应的操作。
该系统界面很是友好,而且操作非常容易上手。做到了看了就知道怎么操作的要求。非常适合用在大多数的学校图书馆。

2.2业务流程分析

该系统的主要面向的用户是学生,管理员和超级管理员。下面分角色对该系统的不同操作范围做说明。
该系统主要有以下功能模块:

1. 登陆功能:登陆系统为身份验证登陆。分为学生登陆,管理员登陆,超级管理员登陆。不具备注册功能。
2. 学生登陆后:显示该用户的基本信息。可以修改密码,修改密保问题,查看书籍并且预约书籍,查看已经借到的书籍的情况,还书的情况。
3. 管理员登陆后:显示该用户的基本信息。可以修改密码,修改密保问题,查看书籍信息并且修改数据信息,添加书籍。查看学生的借还情况。
4. 超级管理员登陆后:显示该用户的基本信息。可以修改密码,修改密保问题,查看,修改管理员的信息,添加新的管理员。添加用户学生,查看学生的情况。
5. 修改密码:通过匹配密保问题的答案进行修改密码。
6. 修改密保问题:通过匹配原密码进行修改密保问题。
7. 预约书籍:查看书籍的具体信息后,可以对该书籍进行预约,预约到期时间1天后,如果一天后还没有借到该书籍,则自动取消预约。
8. 查看借书情况:查看书籍的具体信息后,可以对该书籍进行续借,续借的有效时间是30天,只可以对同一书籍续借1次。
9. 查看还书情况:查看书籍的具体信息后,可以对该书籍进行预约,预约和预约书籍功能一样。
10. 修改书籍信息:查看书籍的具体信息后,可以对该书籍的信息进行修改。
11. 增加书籍:增加书籍。
12. 查看学生借还情况:查看学生的借还详细信息。
13. 权限移交:只有超级管理员才有的功能。删除该管理员,新增加一个超级管理员。
14. 增加管理员:增加一个新的管理员。
15. 查看管理员信息:查看信息后,可以进行信息修改
16. 查看学生信息:只能查看学生的信息,而不能进行修改
17. 添加学生:添加的学生必须是已经存在的学生,不能随便添加。

业务流程图
纯Java+SQL实现——网上图书馆借还管理系统_第1张图片
纯Java+SQL实现——网上图书馆借还管理系统_第2张图片
纯Java+SQL实现——网上图书馆借还管理系统_第3张图片

2.3信息需求分析

资料收集:业务流程中用到的相关数据主要是书籍的信息
书籍信息表:
这里写图片描述
事项分析:根据以上资料中标题、表头等中各栏目名,可以得出相关事项,作为数据项;分析这些数据项,找出组合项、导出项、非结构化数据项,确定基本项。检查是否有要补充的基本数据项,是否有要改进的地方,补充改进之,得出所有基本项。

2.4功能需求分析

该系统的主要结构功能如下
纯Java+SQL实现——网上图书馆借还管理系统_第4张图片

3 概念设计

基本项构思ERD的四条基本原则:
①原则1 (确定实体):能独立存在的事物,例如人、物、事、地、团体、机构、活动、事项等等,在其有多个由基本项描述的特性需要关注时,就应把它作为实体。
②原则2 (确定联系):两个或多个实体间的关联与结合,如主管,从属,组成,占有,作用,配合,协同等等,当需要予以关注时,应作为联系。实体间的联系可分为一对一、一对多、多对多等三类,在确定联系时还要确定其类型。
③原则3 (确定属性):实体的属性是实体的本质特征。实体应有标识属性(能把不同个体区分开来的属性组),并指定其中一个作为主标识。联系的属性是联系的结果或状态。
④原则4(一事一地):信息分析中得到的基本项要在且仅在实体联系图中的一个地方作为属性出现。
经过上述系统功能分析和需求总结,设计如下面所示的数据项和数据结构。
书籍表:存放书籍记录。包括编号,书名,作者,译者,出版社,库存,进货时间,分类
学生信息:存放学生信息。包括学号,姓名,班级编号,性别,出生日期,身份证号码,手机号码
学生账号信息:存放学生账号信息。包括学号,密码,密保问题,密保答案,剩余可以借的次数。
学生预约情况:学号,书籍编号,预约时间,预约到期时间
学生借书情况:学号,书籍编号,借书时间,借书到期时间
学生还书情况:学号,书籍编号,还书时间
管理员信息:存放管理员信息。包括工号,姓名,性别,手机号码,身份证号码,email。
管理员账号信息:工号,密码,密保问题,密保答案
超级管理员信息:工号,姓名,性别,手机号码,身份证号码,email
超级管理员账号信息:工号,密码,密保问题,密保答案
E-R图:
书籍实体
纯Java+SQL实现——网上图书馆借还管理系统_第5张图片
学生信息实体
纯Java+SQL实现——网上图书馆借还管理系统_第6张图片
学生账号实体
纯Java+SQL实现——网上图书馆借还管理系统_第7张图片
学生预约实体
纯Java+SQL实现——网上图书馆借还管理系统_第8张图片
学生借书实体
纯Java+SQL实现——网上图书馆借还管理系统_第9张图片
学生还书实体
纯Java+SQL实现——网上图书馆借还管理系统_第10张图片
管理员信息实体
纯Java+SQL实现——网上图书馆借还管理系统_第11张图片
管理员账号实体
纯Java+SQL实现——网上图书馆借还管理系统_第12张图片
超级管理员实体
纯Java+SQL实现——网上图书馆借还管理系统_第13张图片
超级管理员账号实体
纯Java+SQL实现——网上图书馆借还管理系统_第14张图片
所有实体的联系
纯Java+SQL实现——网上图书馆借还管理系统_第15张图片

4 逻辑设计

4.1一般逻辑模型设计

关系模型的逻辑结构是一组关系模式的集合。将E-R图转换为关系模型就是要将实体型、实体的属性和实体型之间的联系转换为关系模式。
由ERD导出一般关系模型的四条原则;
①一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果软换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式何明,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
②一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
③一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
④3个或3个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系项链呢的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。

根据以上原则将E-R图转换成的关系模式如下:
书籍信息(编号,书名,作者,译者,出版社,库存,进货时间,分类)
学生信息(学号,姓名,班级编号,性别,出生日期,身份证号码,手机号码)
学生账号信息(学号,密码,密保问题,密保答案,剩余可以借次数)
学生预约(学号,书籍编号,预约时间,到期时间)
学生借书(学号,书籍编号,借书时间,到期时间)
学生还书(学号,书籍编号,还书时间)
管理员信息(工号,名称,性别,手机号码,email,身份证号码)
管理员账号信息(工号,密码,密保问题,密保答案)
超级管理员信息(工号,姓名,性别,手机号码,身份证号码,email)
超级管理员账号(工号,密码,密保问题,密保答案)

4.2具体逻辑模型设计

在SQL Server2014数据库中,首先创建 学生网上图书借还系统 数据库,然后根据数据库的逻辑结构分析创建的10张数据表。在前台访问数据库阶段设置了用户和密码,用户为sa,密码为123456
书籍信息:
纯Java+SQL实现——网上图书馆借还管理系统_第16张图片
学生信息:
纯Java+SQL实现——网上图书馆借还管理系统_第17张图片
学生账号信息
纯Java+SQL实现——网上图书馆借还管理系统_第18张图片
学生预约:
纯Java+SQL实现——网上图书馆借还管理系统_第19张图片
学生借书:
纯Java+SQL实现——网上图书馆借还管理系统_第20张图片
学生还书:
纯Java+SQL实现——网上图书馆借还管理系统_第21张图片
管理员信息:
纯Java+SQL实现——网上图书馆借还管理系统_第22张图片
管理员账号信息:
纯Java+SQL实现——网上图书馆借还管理系统_第23张图片
超级管理员信息
纯Java+SQL实现——网上图书馆借还管理系统_第24张图片
超级管理员账号:
纯Java+SQL实现——网上图书馆借还管理系统_第25张图片

5 系统设计与实现

5.1完整性设计

列出主要字段完整性的字段名、完整性约束条件;列出记录完整性约束及其约束条件;列出参照完整性表。
主要字段的完整性字段名和参照完整性表可以参照上图各个表之间的关系来看。

5.2处理功能统计

该系统的主要面向的用户是学生,管理员和超级管理员。下面分角色对该系统的不同操作范围做说明。
首先会自动弹出“登录界面”,登录后会跳转到用户界面,用户界面则可以使用相应的功能。
该系统主要有以下功能模块:

1. 登陆功能:登陆系统为身份验证登陆。分为学生登陆,管理员登陆,超级管理员登陆。不具备注册功能。
2. 学生登陆后:显示该用户的基本信息。可以修改密码,修改密保问题,查看书籍并且预约书籍,查看已经借到的书籍的情况,还书的情况。
3. 管理员登陆后:显示该用户的基本信息。可以修改密码,修改密保问题,查看书籍信息并且修改数据信息,添加书籍。查看学生的借还情况。
4. 超级管理员登陆后:显示该用户的基本信息。可以修改密码,修改密保问题,查看,修改管理员的信息,添加新的管理员。添加用户学生,查看学生的情况。
5. 修改密码:通过匹配密保问题的答案进行修改密码。
6. 修改密保问题:通过匹配原密码进行修改密保问题。
7. 预约书籍:查看书籍的具体信息后,可以对该书籍进行预约,预约到期时间1天后,如果一天后还没有借到该书籍,则自动取消预约。
8. 查看借书情况:查看书籍的具体信息后,可以对该书籍进行续借,续借的有效时间是30天,只可以对同一书籍续借1次。
9. 查看还书情况:查看书籍的具体信息后,可以对该书籍进行预约,预约和预约书籍功能一样。
10. 修改书籍信息:查看书籍的具体信息后,可以对该书籍的信息进行修改。
11. 增加书籍:增加书籍。
12. 查看学生借还情况:查看学生的借还详细信息。
13. 权限移交:只有超级管理员才有的功能。删除该管理员,新增加一个超级管理员。
14. 增加管理员:增加一个新的管理员。
15. 查看管理员信息:查看信息后,可以进行信息修改
16. 查看学生信息:只能查看学生的信息,而不能进行修改
17. 添加学生:添加的学生必须是已经存在的学生,不能随便添加。

5.3用户操作

鼠标和键盘操作

6 数据库应用系统运行

6.1操作系统使用的简要说明

本系统的运行需要安装jre和SQL Server2014软件。操作该系统,首先把备份的数据库还原出来,导入SQL Server中,然后打开该系统,连接上还原出来的数据库,再运行,就可以了。

6.2系统实施过程

1. 打开myeclipse编程
2. 构造客户端,并编写好GUI框架,构造GUI部分代码略
3. 编写登录界面,并且实现确定按钮监听,验证码监听,菜单栏功能的实现,菜单栏的功能有:忘记密码,退出系统,获取帮助。确定按钮监听代码如下,

纯Java+SQL实现——网上图书馆借还管理系统_第26张图片
纯Java+SQL实现——网上图书馆借还管理系统_第27张图片
纯Java+SQL实现——网上图书馆借还管理系统_第28张图片

4. 忘记密码的链接是网页链接,点击忘记密码后会自动跳转到忘记密码网页,如下,编写的方式为jsp,主代码如下

忘记密码第一步:
纯Java+SQL实现——网上图书馆借还管理系统_第29张图片
纯Java+SQL实现——网上图书馆借还管理系统_第30张图片

忘记密码第二步
纯Java+SQL实现——网上图书馆借还管理系统_第31张图片
这里写图片描述
结果:通过学号/工号就可以实现相应的密码找回,如果该用户没有设置密保,则不能找回密码,只有通过询问超级管理员才能找回密码。

5. 编写学生登陆并且实现功能,菜单栏的功能有修改密码,修改密保问题,切换用户,退出系统,获取帮助。通过点击排序按钮就可以实现查询功能。修改密码,修改密保问题,切换用户都是通过跳转到其他页面实现对应功能。功能有预约书籍,预约情况,借书情况,还书情况。
6. 修改密码确定按钮监听,只要密保问题正确匹配,则可以进行修改

纯Java+SQL实现——网上图书馆借还管理系统_第32张图片
纯Java+SQL实现——网上图书馆借还管理系统_第33张图片
纯Java+SQL实现——网上图书馆借还管理系统_第34张图片

7. 修改密保问题:只要原始密码匹配成功则修改成功

纯Java+SQL实现——网上图书馆借还管理系统_第35张图片
这里写图片描述

8. 预约书籍:通过查询书籍详细信息后,再确定预约按钮,就可以实现在线预约了,非常的简单易懂。代码

纯Java+SQL实现——网上图书馆借还管理系统_第36张图片

9. 预约情况:取消预约代码

纯Java+SQL实现——网上图书馆借还管理系统_第37张图片

10. 借书情况:续借

纯Java+SQL实现——网上图书馆借还管理系统_第38张图片

11. 还书情况:查看还书情况的同时,可以对已经借过的书籍再次预约
12. 编写管理员界面:菜单栏的功能和学生基本一样。功能有查看书籍的详细信息,然后修改,删除书籍,添加书籍,查看学生的借还情况
13. 修改书籍的代码

纯Java+SQL实现——网上图书馆借还管理系统_第39张图片
纯Java+SQL实现——网上图书馆借还管理系统_第40张图片

14. 删除书籍:

纯Java+SQL实现——网上图书馆借还管理系统_第41张图片

15. 添加书籍主代码

纯Java+SQL实现——网上图书馆借还管理系统_第42张图片
纯Java+SQL实现——网上图书馆借还管理系统_第43张图片

16. 管理员还可以查询学生的借还情况:代码重复,略
17. 编写超级管理员界面:菜单栏和学生没什么区别,只是多了一个权限移交的功能。基本功能有查看管理员信息,修改管理员信息,添加新的管理员,查看学生基本信息,增加新的学生用户
18. 权限移交:通过移交权限,将删除原来的超级管理员,新增加一个新的超级管理员。

纯Java+SQL实现——网上图书馆借还管理系统_第44张图片
纯Java+SQL实现——网上图书馆借还管理系统_第45张图片

19. 查询管理员,学生的信息,然后可以对管理员的信息进行修改,但是不能修改学生的信息。
20. 添加管理员主代码

纯Java+SQL实现——网上图书馆借还管理系统_第46张图片
纯Java+SQL实现——网上图书馆借还管理系统_第47张图片

21. 添加新的学生用户主代码

纯Java+SQL实现——网上图书馆借还管理系统_第48张图片

22. 编写服务端代码:服务端代码基本都是数据库语言操作。数据的传送使用套接字

纯Java+SQL实现——网上图书馆借还管理系统_第49张图片
纯Java+SQL实现——网上图书馆借还管理系统_第50张图片

6.3系统使用结果

打开程序后的登录界面,选定身份“学生,管理员,超级管理员”,输入学号/工号(只运行为数字),输入密码,验证码点击“确定”按钮后,身份,学号/工号,密码,验证码匹配正确后就可以实现登录功能
纯Java+SQL实现——网上图书馆借还管理系统_第51张图片
忘记密码第一步,输入学号/工号,身份选择,点击下一步,如果该学号/工号有设置密保问题,则可以通过密保找回密码,如果没有设置,则只能通过超级管理员找回密码
这里写图片描述
第二步:密保问题和答案正确匹配后就会显示出登录密码
纯Java+SQL实现——网上图书馆借还管理系统_第52张图片
结果显示登录密码
纯Java+SQL实现——网上图书馆借还管理系统_第53张图片
查询书籍:有3种查询方式“热门度,编号,时间”,选要查询方式和输入查询的内容后,点击按钮就可以查询
纯Java+SQL实现——网上图书馆借还管理系统_第54张图片
纯Java+SQL实现——网上图书馆借还管理系统_第55张图片

查看书籍并预约:双击查看书籍的详情后,可以点击“确定预约”按钮进行预约,当显示预约成功后,表示预约成功
纯Java+SQL实现——网上图书馆借还管理系统_第56张图片
预约结果,点击“刷新/查询”按钮就可以实现查询预约结果,双击查看该书籍的详情后,可以点击“取消预约”按钮实现取消预约功能
纯Java+SQL实现——网上图书馆借还管理系统_第57张图片
查看借书情况:道理和上面的预约基本一致
纯Java+SQL实现——网上图书馆借还管理系统_第58张图片
查看还书情况:道理和上面的预约基本一致
纯Java+SQL实现——网上图书馆借还管理系统_第59张图片
修改密码:输入密保问题,新密码,确认密码正确匹配后,就可以实现修改密码
纯Java+SQL实现——网上图书馆借还管理系统_第60张图片
修改密保问题; 登陆密码正确后,就可以实现修改密保问题
这里写图片描述
管理员登陆:登陆和学生登陆类似,只是把身份选择成“管理员”
纯Java+SQL实现——网上图书馆借还管理系统_第61张图片
查询书籍:
纯Java+SQL实现——网上图书馆借还管理系统_第62张图片
修改书籍
纯Java+SQL实现——网上图书馆借还管理系统_第63张图片
添加书籍
纯Java+SQL实现——网上图书馆借还管理系统_第64张图片
查看学生的借还情况
纯Java+SQL实现——网上图书馆借还管理系统_第65张图片
查看详情
纯Java+SQL实现——网上图书馆借还管理系统_第66张图片
超级管理员登陆
纯Java+SQL实现——网上图书馆借还管理系统_第67张图片
查询管理员信息
纯Java+SQL实现——网上图书馆借还管理系统_第68张图片
查看管理员详情,输入正确的相应格式后,就可以实现修改管理员的信息。
纯Java+SQL实现——网上图书馆借还管理系统_第69张图片
查看学生详情,不能修改学生的信息,只能查看。
移交超级管理员权限:输入正确的工号(只运行为数字),名称,手机号码,身份证号码和邮箱后,就可以实现权限移交功能(相对应的输入要正确)。
纯Java+SQL实现——网上图书馆借还管理系统_第70张图片

6.4用户使用说明

这是一个比较简单的系统,对于学生来说,不需要学如何使用,只要用过电脑的人基本就能使用了。所以不需要刻意去学如何使用。该系统的有点就是简单方便使用,虽然简单,但是功能齐全,基本的所有功能都有。详细操作请看6.3的系统使用结果。

你可能感兴趣的:(Java,数据库,项目,java,sql)