北航软件工程图书管理系统个人作业文档

图书管理系统设计文档

GITHUB 连接

开发环境

  • win10
  • IDEA2019
  • MAVEN
  • TOMCAT9
  • Mysql 8.0
  • SpringMVC框架
  • 前端使用bootstrap渲染
  • UML 系统抽象

应用背景

设计一个图书借阅管理系统来进行图书管理,如要借书,学生登录系统并提交想要借阅的书籍。如果要还书,学生登录系统确认还书,系统计算是否逾期,如果逾期则显示罚金。此外,学生可以向图书馆捐赠书籍。

图书管理员可以查询所有学生借阅的书籍情况,也可以修改书籍的信息和增删书籍。

需求分析

设计一个小型的图书管理系统,需要提供以下功能:

  • 输入数据进行合法性验证
  • 数据库密码字段应该进行加密
  • 输入学号,返回学生借阅列表
  • 输入【书名】,可以借书
  • 点击还书按钮可以还书。

数据库抽象

ER图.PNG

学生

作为数据库的一类实体,拥有以下三类属性:

  • 学号【int类型 主键】
  • 姓名【varchar类型
  • 密码【varchar类型

在数据库中新建一张学生表管理学生信息。

书籍

作为数据库的一类实体,拥有以下三类属性:

  • 书号【int 主键】
  • 书名【varchar
  • 数量【varchar
  • 图书描述【varchar

在数据库中新建一张书籍表管理书籍。

借书表

按照BCNF的设计原则,消除数据库非主属性对主属性的传递函数依赖和部分函数依赖,需要新建一张借书表保存图书馆的借阅信息。

  • stu_id: 标识借书用户, 外键约束

  • book_id:标识所借图书编号,外键约束

  • timestamp: 借书时间

系统抽象

以下按照类图、用例图、时序图、活动图、状态图对图书馆进行系统抽象建模,其中每一个模型表示一个不同的视角或者观点。

类图

描述系统中的对象类以及类之间的关系

类图.png

类图说明:

可以看到这是一个分层的架构:底层的pojo层负责包装数据库中的数据,DAO(Data Access Object)层涵盖对数据库的增删查改,service层用来实现业务,controller层接收前端请求并且执行相应的业务。

  • pojo层:每一个类对应数据库 的一张表
  • DAO层: 包含两个接口,用来操作学生和图书。
  • Service 层:由DAO层组合而成
  • controller层:由service层聚合而成。

用例图

描述系统及其环境之间的交互

用例图.png

参与者 普通用户、管理员
描述: 读者:可以通过网络查询书籍信息和捐赠书籍,读者可以借书、还书。普通管理员:对后台的书库,读者库,资料库进行管理。
数据: 图书的数量、名称、描述;图书的借阅情况
触发机制 参与者发出请求
响应 图书管理系统已经更新的确认信息

时序图

描述参与者与系统直接按以及系统构建之间的交互

时序图.png

普通用户的操作顺序

  • 读者登陆读者账号:

    首先执行login()方法输入用户名和密码,执行checkId()方法校验用户名正确性。输入非法字符则返回登陆失败;若正确,则继续执行checkPassword()方法,若输入密码错误,则返回登陆失败。密码正确则登陆成功。

  • 查询入库新书:

    读者查询入库新书,可以使用图书名进行查询。

  • 借书

    读者进行借书操作,可选择借书或图书续借;借书时,读者查询期望图书,使用gotoBorrowBook()跳转到borrowBook()方法生成借书记录。借书成功则生成借书记录成功,若库存不足则返回借书失败;

  • 还书

    还书:读者进行还书操作,分为正常还书和异常还书;正常还书时,读者查询借书记录,选择要还的图书,首先执行gotoreturn()方法调用returnBook()方法删除借书记录,若借书时间正常,则还书成功,生成还书记录。若逾期则需要先缴纳罚金然后才能还书。

  • 查询个人借书

    读者查询个人信息,首先执行queryBookByStu()方法查询个人已借的图书。

图书管理员的操作顺序:

  • 新书入库

    图书管理员在登录到系统后,选择增加书籍功能,开始执行gotoAddBook()方法,该方法会调用New_Book类中的addBook()实现新书添加操作。

  • 旧书淘汰

    在前端界面点击删除按钮后台控制器会执行deleteBook()方法将书籍删除。

  • 图书更新

    管理员有权限执行updateBook()方法对图书信息进行更新。

  • 查看读者订阅

    选择查看读者订阅,即执行queryBookByStu方法,即得到相应的读者订阅信息。

活动图

描述过程或者数据处理中包含的活动

活动图.png

状态图

描述系统内部如何对外部事件做出响应

状态图.png

使用说明

MVC.png

普通用户

系统运行后首先进入用户登录界面,用户登录的界面,未注册的用户需要先进行注册。

注册

点击Register进入注册页面填写相关信息即可注册,注册成功后返回登录界面。

登录

输入用户名密码点击登录即可,选中remember me可以记住账号密码。

借书

按书名关键字搜索,选中即可借阅图书。

还书

阅自己的读者信息以及已经借阅的图书,点击归还即可。

管理员用户

管理员用户使用以下idpwd进行登录:

id:17373290
pwd:root
登录
新增书籍

点击图书管理主界面的新增书籍,然后输入书籍的信息即可。

删除书籍

在书籍展示页面点击删除即可删除图书,如果仍有学生借阅该书籍则删除失败 ,请求会被拦截器拦截。

修改书籍信息

在书籍展示页面点击更新即可修改图书信息。

查询学生借书

输入学生学号即可查询该学生借阅的所有图书。

系统部署说明

启动mysql数据库,需要使用管理员权限

启动mysql数据库.PNG

启动idea

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1RVr1FEf-1585133695077)(https://github.com/Gary11111/SE-Peroject1/blob/master/IMG/%E5%90%AF%E5%8A%A8IDEA.png?raw=true)]

连接数据库:确保user和密码填写正确

idea连接数据库.png

启动TOMCAT:需要注意给project structure添加依赖包,MAVEN不会自动添加。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tF9To983-1585133695079)(https://github.com/Gary11111/SE-Peroject1/blob/master/IMG/%E5%90%AF%E5%8A%A8TMOCAT.png?raw=true)]

代码统计

-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Java                            18            193             46            844
JSP                              9             62             44            558
XML                              8             34             42            207
Maven                            1              3              0             44
-------------------------------------------------------------------------------
SUM:                            36            292            132           1653
-------------------------------------------------------------------------------

SUM: 36 292 132 1653




发布了6 篇原创文章 · 获赞 1 · 访问量 390

猜你喜欢

转载自blog.csdn.net/gky_1111/article/details/105102052