第1章 系统概述
1.1 系统名称
图书管理系统
1.2 背景
随着信息技术的不断发展,传统的图书管理方式已经无法满足现代图书馆的需求。为了提高图书管理的效率和质量,方便读者借阅图书,我们开发了一套图书管理系统。
1.3 系统功能
本系统主要包括图书管理、图书分类管理、图书借阅管理、用户管理等功能模块。
1.4 实现技术
本系统采用了前后端分离的开发模式,前端使用了Vue.js框架,后端使用了Java语言开发,使用了SpringBoot和MyBatis框架提高开发效率和质量。
1.5 意义
本系统的开发可以提高图书管理的效率和质量,方便读者借阅图书,减少图书管理员的工作量,提高图书馆的服务水平。
第2章 可行性研究
2.1 项目背景及意义
2.1.1 项目背景
图书管理系统以方便、快捷、费用低的优点正慢慢地进入人们的生活,将传统的图书管理方式彻底地解脱出来,提高效率,减轻工作人员以往繁忙的工作,减小出错的概率,使读者可以花更多的时间在选择书和看书上。从而使人们有更多时间来获取信息、了解信息和掌握信息。图书馆作为提供学习的场所,不仅要求便于管理,而且要求对读者和借阅者提供方便快速的查找,借阅和登记手续。一个好的图书馆不仅仅看它的藏书的种类和数量是否齐全,还要看它的管理机制是否健全。这不仅仅是人的因素,还有操作手段和途径,比如一个好的图书管理系统。 本系统根据图书馆的日常业务运作而设计,能够更好的管理借书,还书,统计图书类别等业务,系统操作流程与图书馆的业务流程相一致。界面友好、操作容易、维护简单;系统数据库稳定、安全,有图书管理业务操作知识的人皆能方便操作。 本系统实用于各种图书馆。
2.1.2 项目意义
目前社会各行业都向互联网智能化靠拢,大部分管理工作都有系统实现,图书管理系统也是其中之一,智能图书馆的搭建少不了一个图书管理系统,故市场前景还是比较广泛的。
2.2 可行性研究
2.2.1 技术可行性研究
Java作为企业级开发最常用的编程语言,其作为该系统的后端开发是非常合适的,加上Java代码的可维护性及运行效率,搭配SpringBoot框架和MyBatis框架协助开发,可以让开发效率大大翻倍。
MySQL作为一款经久不衰的数据库,作为该系统的数据持久化工具是比较合理的,加上其强大的技术生态圈,以及编程延伸出来的各种ORM框架,对MySQL的操作是比较友好的。
HTML作为传统网站页面标记语言,用来建设网站是必不可少的。搭配javaScript编写的脚本可以完美的与后端服务器完成数据操作,这里再借助Vue.js框架针对系统进行模块化控制,大大加强代码效率及可维护性。
2.2.2 经济可行性研究
除了idea开发工具需要收费,其他开发工具均可以免费使用,均免费面向开发者,这是我们经济可行性最为关键的要素,但后期项目上线的云服务器是需要付费的,整体开发成本是比较低的,所涉及的技术栈也是开源免费的,几乎0成本,在开发工作结束后,是以出租的方式给第三方机构使用,一旦我们可以获得较高的客源的话,收入也是非常的可观。
2.2.3 操作可行性研究
针对用户使用,该系统功能清晰,界面简洁,功能齐全,学习成本低。基本上上手就可以直接使用,针对各种角色和用户都有清晰的导航栏和文字提示。
2.2.4 法律可行性研究
在法律可行性方面,该系统的开发和使用需要遵循相关的法律法规和政策要求。首先,在软件开发过程中,需要遵守知识产权法,确保所使用的开源技术栈和第三方库符合其授权协议,避免任何可能的侵权行为。其次,在数据处理和存储方面,需要遵循数据保护法和隐私政策,确保用户数据的安全性和隐私性。此外,在系统上线运营过程中,也需要遵守相关的行业监管规定,确保系统的合规性。
针对这些法律要求,我们将制定详细的法律合规计划,并在系统设计和开发过程中严格遵循。同时,我们也将建立完善的用户数据保护机制,确保用户数据的安全和隐私。此外,我们还将积极与相关部门和机构进行沟通和合作,确保系统的合法性和合规性。
综上所述,从法律可行性方面来看,该系统的开发和使用是符合相关法律法规和政策要求的,我们将严格按照法律要求进行操作,确保系统的合法性和合规性。这将为系统的长期稳定发展提供有力的法律保障。
第3章 需求分析
3.1 功能性需求
3.1.1 用户管理
用户管理模块主要包括用户注册、用户登录、用户信息修改、用户注销等功能。用户可以通过注册功能创建自己的账号,登录后可以修改个人信息,也可以注销账号。
3.1.2 图书管理
图书管理模块主要包括图书信息录入、图书信息修改、图书信息删除、图书信息查询等功能。管理员可以通过该模块对图书信息进行管理,包括添加新的图书信息、修改已有图书信息、删除不再需要的图书信息以及查询图书信息等。
3.1.3 图书分类管理
图书分类管理模块主要包括图书分类录入、图书分类修改、图书分类删除、图书分类查询等功能。管理员可以通过该模块对图书分类信息进行管理,包括添加新的图书分类、修改已有图书分类、删除不再需要的图书分类以及查询图书分类信息等。
3.1.4 图书借阅管理
图书借阅管理模块主要包括图书借阅、图书归还、图书逾期管理等功能。读者可以通过该模块借阅图书,借阅后需要在规定的时间内归还图书,否则将产生逾期费用。管理员可以通过该模块对图书借阅信息进行管理,包括查询图书借阅信息、处理图书逾期等。
3.1.5 用户密码管理
用户密码管理模块主要包括用户密码修改、用户密码找回等功能。用户可以通过该模块修改自己的密码,也可以通过该模块找回自己的密码。
3.1.6功能点清单
功能模块 | 功能点 |
用户功能 | 用户注册 |
用户登录 | |
修改密码 | |
图书信息管理 | 新增图书信息 |
修改图书信息 | |
删除图书信息 | |
条件分页查询图书信息 | |
图书分类管理 | 新增图书分类 |
修改图书分类 | |
删除图书分类 | |
条件分页查询图书分类 | |
图书借阅管理 | 借阅图书 |
归还图书 | |
删除图书借阅信息 | |
用户信息管理 | 新增用户 |
修改用户信息 | |
删除用户 | |
条件分页查询用户信息 |
3.2 非功能性需求
3.2.1 性能需求
系统需要具备较高的性能,能够快速响应用户的操作请求,保证系统的稳定性和可靠性。
3.2.2 安全需求
系统需要具备较高的安全性,能够保护用户的个人信息和图书信息不被泄露,防止非法用户的入侵和攻击。
3.2.3 兼容性需求
系统需要具备较高的兼容性,能够支持多种操作系统和浏览器,方便用户使用。
第4章 总体设计
4.1 系统架构设计
图书管理系统采用了B/S架构,即浏览器/服务器架构。用户通过浏览器访问系统,系统的业务逻辑和数据处理在服务器端完成。
4.1.1产品总体业务流程图:
4.1.2产品功能结构图:
4.2 数据库设计
图书管理系统使用了MySQL数据库来存储系统的数据。数据库设计包括了数据库表的设计、数据库关系的设计以及数据库索引的设计等。
4.2.1 数据库表设计
图书管理系统的数据库表主要包括图书信息表、图书分类表、图书借阅表、用户信息表等。
1 图书信息
系统用于展示所有的图书信息,并提供增删改查。
该数据结构包括图书id,图书名称,图书作者,图书价格,图书类型id,图书描述信息,图书借阅状态,图书封面图。
数据名称 | 数据类型 | 数据描述 |
bookId | Int | 图书id |
bookName | Varchar | 图书名称 |
bookAuthor | Varchar | 图书作者 |
bookPrice | Decimal | 图书价格 |
bookTypeId | Int | 图书类型id |
bookDesc | Varchar | 图书描述 |
isBorrowed | Tinyint | 借阅标记。1表示借出,0表示归还 |
bookImg | Varchar | 图书封面图片链接 |
2 图书类型
系统用于展示所有的图书类型,并关联图书信息,将图书归类。
该数据结构包括图书类型id,图书类型名称,图书类型描述。
数据名称 | 数据类型 | 数据描述 |
bookTypeId | Int | 类型id |
bookTypeName | Varchar | 图书类型名称 |
bookTypeDesc | Varchar | 图书类型描述 |
3 借阅信息
系统用于控制读者借阅与归还图书。
该数据结构包括借阅数据id,借阅读者id,借阅书籍id,借阅图书的时间,归还图书的时间。
数据名称 | 数据类型 | 数据描述 |
borrowId | Varchar | 借阅信息id |
userId | Int | 借阅读者的id |
bookId | Int | 借阅图书信息id |
borrowTime | Datetime | 借阅时间 |
returnTime | Datetime | 归还时间 |
4 用户信息
控制系统的用户与角色数据。
该数据结构包括用户id,用户名称,用户密码,是否管理员标记。
数据名称 | 数据类型 | 数据描述 |
userId | Int | 用户id |
username | Varchar | 用户名 |
userPassword | Varchar | 用户密码 |
isAdmin | Tinyint | 是否管理员标记。1是管理员,0是读者 |
第5章 详细设计
5.1读者管理程序流程图
读者管理程序流程图
为读者管理的程序流程图,新读者要先注册,然后建立读者档案,之后再选择登录,已经注册过的读者可以直接进行登录,登录之后进入主页面。
5.2查询图书信息程序流程图
查询图书信息程序流程图
5.3结构图
利用优化思想,对软件结构图进行优化设计,得出模块层次结构适中的软件结构图。如下所示:
第6章 系统实现与部署
6.1 系统实现
6.1.1 开发环境
操作系统:Windows 10
开发工具:IntelliJ IDEA 2019、visual studio code
Web服务器:Nginx-1.14.8、Tomcat—7
数据库:MySQL 8.0.19
编程语言:Java、HTML、JavaScript、CSS
框架:Spring Boot、MyBatis、Vue.js
6.2外部接口
6.2.1 登录界面![](https://img-blog.csdnimg.cn/direct/2671085f4e604db5b3a09b49ccff1b51.png)
6.2.2首页
6.2.3 用户管理界面![](https://img-blog.csdnimg.cn/direct/ba8cf9d584224cee9ae37bc824eb1cf9.png)
6.2.4 图书列表界面![](https://img-blog.csdnimg.cn/direct/83367f18208e49108e416be571badf39.png)
6.2.5 图书类型列表界面![](https://img-blog.csdnimg.cn/direct/7af59f07807a472fac6f0066faa3ce6d.png)
第7章 测试
功能点 | 测试用例 | 输出结果 |
读者登录 | 选择读者角色,输入读者的用户名和密码,点击登录 | 跳转到图书管理系统首页,并展示读者相关功能菜单 |
读者注册 | 点击注册,跳转注册页,填入用户名、密码、确认密码,点击注册 | 未填写完整表单,提示对应异常,填写完整表单,提示注册成功 |
管理员登录 | 选择管理员角色,输入管理员用户名和密码,点击登录 | 跳转到图书管理系统首页,并展示管理员相关功能菜单 |
图书信息新增 | 点击新增,输入图书信息,点击确认新增 | 未填写完整表单,提示对应异常,填写完整表单,提示新增成功 |
图书信息查询 | 输入对应查询条件,点击查询 | 图书信息列表 |
图书信息修改 | 选中图书信息,弹出图书信息修改框,修改对应信息,点击修改 | 未填写完整表单,提示对应异常,填写完整表单,提示修改成功 |
图书信息删除 | 选中删除的数据 | 提示删除成功 |
图书类型新增 | 点击新增,输入图书类型信息,点击确认新增 | 未填写完整表单,提示对应异常,填写完整表单,提示新增成功 |
图书类型查询 | 输入对应查询条件,点击查询 | 图书类型列表 |
图书类型修改 | 选中图书类型信息,弹出图书类型修改框,修改对应信息,点击修改 | 未填写完整表单,提示对应异常,填写完整表单,提示修改成功 |
图书类型删除 | 选中删除的数据 | 提示删除成功 |
图书借阅 | 读者选中图书,点击借阅图书 | 提示借阅成功,并生成借阅时间 |
图书归还 | 读者选中借阅中的图书 | 提示归还成功,并更新归还时间 |
用户新增 | 点击新增,输入用户信息,点击确认新增 | 未填写完整表单,提示对应异常,填写完整表单,提示新增成功 |
用户信息查询 | 输入对应查询条件,点击查询 | 用户信息列表 |
用户修改 | 选中用户信息,弹出用户信息修改框,修改对应信息,点击修改 | 未填写完整表单,提示对应异常,填写完整表单,提示修改成功 |
用户删除 | 选中删除的数据 | 提示删除成功 |
- 读者登录:
- 测试用例:选择读者角色,输入正确的读者用户名和密码,点击登录按钮。
- 输出结果:跳转到图书管理系统首页,并展示读者相关功能菜单,如查询图书、借阅图书、归还图书等。
- 读者注册:
- 测试用例:点击注册按钮,跳转注册页,填入用户名、密码、确认密码等信息,点击注册按钮。
- 输出结果:如果未填写完整表单,系统会提示对应异常信息,如“用户名不能为空”、“密码不能为空”等;如果填写完整表单,系统会提示注册成功,并跳转到登录页面。
- 管理员登录:
- 测试用例:选择管理员角色,输入正确的管理员用户名和密码,点击登录按钮。
- 输出结果:跳转到图书管理系统首页,并展示管理员相关功能菜单,如图书信息管理、图书分类管理、图书借阅管理、用户管理等。
- 图书信息新增:
- 测试用例:点击新增按钮,输入图书的基本信息,如书名、作者、出版社、价格、图书类型、图书描述等,点击确认新增按钮。
- 输出结果:如果未填写完整表单,系统会提示对应异常信息,如“书名不能为空”、“作者不能为空”等;如果填写完整表单,系统会提示新增成功,并将新增的图书信息显示在图书信息列表中。
- 图书信息查询:
- 测试用例:输入相应的查询条件,如书名、作者、出版社等,点击查询按钮。
- 输出结果:系统会根据输入的查询条件,在图书信息列表中显示符合条件的图书信息。
- 图书信息修改:
- 测试用例:选中要修改的图书信息,弹出图书信息修改框,修改相应的信息,如书名、作者、出版社、价格、图书类型、图书描述等,点击修改按钮。
- 输出结果:如果未填写完整表单,系统会提示对应异常信息,如“书名不能为空”、“作者不能为空”等;如果填写完整表单,系统会提示修改成功,并将修改后的图书信息显示在图书信息列表中。
- 图书信息删除:
- 测试用例:选中要删除的图书信息,点击删除按钮。
- 输出结果:系统会提示删除成功,并将删除的图书信息从图书信息列表中移除。
- 图书类型新增:
- 测试用例:点击新增按钮,输入图书类型的基本信息,如类型名称、类型描述等,点击确认新增按钮。
- 输出结果:如果未填写完整表单,系统会提示对应异常信息,如“类型名称不能为空”、“类型描述不能为空”等;如果填写完整表单,系统会提示新增成功,并将新增的图书类型信息显示在图书类型列表中。
- 图书类型查询:
- 测试用例:输入相应的查询条件,如类型名称、类型描述等,点击查询按钮。
- 输出结果:系统会根据输入的查询条件,在图书类型列表中显示符合条件的图书类型信息。
- 图书类型修改:
- 测试用例:选中要修改的图书类型信息,弹出图书类型修改框,修改相应的信息,如类型名称、类型描述等,点击修改按钮。
- 输出结果:如果未填写完整表单,系统会提示对应异常信息,如“类型名称不能为空”、“类型描述不能为空”等;如果填写完整表单,系统会提示修改成功,并将修改后的图书类型信息显示在图书类型列表中。
- 图书类型删除:
- 测试用例:选中要删除的图书类型信息,点击删除按钮。
- 输出结果:系统会提示删除成功,并将删除的图书类型信息从图书类型列表中移除。
- 图书借阅:
- 测试用例:读者选中要借阅的图书,点击借阅图书按钮。
- 输出结果:系统会提示借阅成功,并生成借阅时间,同时将借阅的图书信息显示在借阅信息列表中。
- 图书归还:
- 测试用例:读者选中要归还的图书,点击归还图书按钮。
- 输出结果:系统会提示归还成功,并更新归还时间,同时将归还的图书信息从借阅信息列表中移除。
- 用户新增:
- 测试用例:点击新增按钮,输入用户的基本信息,如用户名、密码、确认密码、用户类型等,点击确认新增按钮。
- 输出结果:如果未填写完整表单,系统会提示对应异常信息,如“用户名不能为空”、“密码不能为空”等;如果填写完整表单,系统会提示新增成功,并将新增的用户信息显示在用户信息列表中。
- 用户信息查询:
- 测试用例:输入相应的查询条件,如用户名、用户类型等,点击查询按钮。
- 输出结果:系统会根据输入的查询条件,在用户信息列表中显示符合条件的用户信息。
- 用户修改:
- 测试用例:选中要修改的用户信息,弹出用户信息修改框,修改相应的信息,如用户名、密码、确认密码、用户类型等,点击修改按钮。
- 输出结果:如果未填写完整表单,系统会提示对应异常信息,如“用户名不能为空”、“密码不能为空”等;如果填写完整表单,系统会提示修改成功,并将修改后的用户信息显示在用户信息列表中。
- 用户删除:
- 测试用例:选中要删除的用户信息,点击删除按钮。
- 输出结果:系统会提示删除成功,并将删除的用户信息从用户信息列表中移除。