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

Java+SQLServer实现——网上图书馆借还管理系统完整版zip:http://download.csdn.net/detail/wsk1103/9702747PS:这是刚学Java时自己手写的一个垃圾项目,质量低,但是可以运行。已经放弃维护。。。。。。。。。1概述网络的发展越来越快,网上图书馆也毫不例外。因此,网上图书馆就此诞生了,学生对知识的渴望也是越来越大,并且通过网络来订阅图书是一件非常轻松的事情。本系统是一个…

大家好,又见面了,我是你们的朋友全栈君。

完整版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. 添加学生:添加的学生必须是已经存在的学生,不能随便添加。

业务流程图
这里写图片描述
这里写图片描述
这里写图片描述

2.3信息需求分析

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

2.4功能需求分析

该系统的主要结构功能如下
这里写图片描述

3 概念设计

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

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
书籍信息:
这里写图片描述
学生信息:
这里写图片描述
学生账号信息
这里写图片描述
学生预约:
这里写图片描述
学生借书:
这里写图片描述
学生还书:
这里写图片描述
管理员信息:
这里写图片描述
管理员账号信息:
这里写图片描述
超级管理员信息
这里写图片描述
超级管理员账号:
这里写图片描述

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. 编写登录界面,并且实现确定按钮监听,验证码监听,菜单栏功能的实现,菜单栏的功能有:忘记密码,退出系统,获取帮助。确定按钮监听代码如下,

这里写图片描述
这里写图片描述
这里写图片描述

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

忘记密码第一步:
这里写图片描述
这里写图片描述

忘记密码第二步
这里写图片描述
这里写图片描述
结果:通过学号/工号就可以实现相应的密码找回,如果该用户没有设置密保,则不能找回密码,只有通过询问超级管理员才能找回密码。

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

这里写图片描述
这里写图片描述
这里写图片描述

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

这里写图片描述
这里写图片描述

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

这里写图片描述

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

这里写图片描述

10. 借书情况:续借

这里写图片描述

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

这里写图片描述
这里写图片描述

14. 删除书籍:

这里写图片描述

15. 添加书籍主代码

这里写图片描述
这里写图片描述

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

这里写图片描述
这里写图片描述

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

这里写图片描述
这里写图片描述

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

这里写图片描述

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

这里写图片描述
这里写图片描述

6.3系统使用结果

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

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

6.4用户使用说明

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142982.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • JVM常见面试题及详解

    JVM常见面试题及详解虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。简单来说JVM是用来解析和运行Java程序的。

  • 河北对口计算机专业一分一档6,600分以上830人!河北一市中考一分一档表出炉!…

    河北对口计算机专业一分一档6,600分以上830人!河北一市中考一分一档表出炉!…出分啦!承德市2021年中考成绩公布6月30日,承德市教育考试招生信息平台公布2021年承德市中考成绩一分一档表!今年承德中考文化和体育是630分,理化实验20分,总计是650分。据一分一档表显示今年承德中考600分以上是830人2021年承德市中考成绩一分一档表除承德外河北其他地市什么时候能查分呢?有粉丝在后台问,衡水什么时候可以查分,这不,衡水市中考成绩发布时间也来啦~衡水市一、中考成绩发布时…

  • keyvaluepair_c# KeyValuePair用法「建议收藏」

    keyvaluepair_c# KeyValuePair用法「建议收藏」privateKeyValuePairSetKeyValuePair(){intintKey=1;stringstrValue=”Myvalue”;KeyValuePairkvp=newKeyValuePair(intKey,strValue);returnkvp;}//////获得键/值对///privatevoidGetKeyValuePairDemo(…

  • PHP审计之in_array函数缺陷绕过

    PHP审计之in_array函数缺陷绕过in_array函数函数使用in_array:(PHP4,PHP5,PHP7)功能:检查数组中是否存在某个值定义:boolin_a

    2021年12月13日
  • Java 面向对象 之 多态实例1「建议收藏」

    Java 面向对象 之 多态实例1「建议收藏」Java 面向对象 之 多态实例1

  • ZigBee协议栈简介

    ZigBee协议栈简介文章目录Zigbee协议栈简介如何理解Zigbee协议栈如何使用Zigbee协议栈Zigbee协议栈简介  Zigbee协议分为2部分:IEEE802.15.4定义了PHY(物理层)和MAC(介质访问层)技术规范。Zigbee联盟定义了NWK(网络层)、APS(应用程序支持层)、APL(应用层)技术规范。  Zigbee协议栈就是将各个层定义的协议都集合在一起,以函数的形式实现,并给用户提供API,用户可以直接调用。如何理解Zigbee协议栈  TI推出的ZigBee2007协议栈也

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号