1. 功能调查与系统功能框架图

1.1 功能调查

  • 读者登录图书馆借阅系统后,可以根据图书编号或者图书名称来查询图书,若查询成功,可以加入书单。

  • 读者登录图书馆借阅系统后,可以查看图书馆的图书清单,选择图书加入到自己的书单中。

  • 读者登录图书馆借阅系统后,可以查看自己的书单,进行续借图书的操作或者归还图书的操作。

1.2 系统功能框架图


2. 类的设计

2.1 UML类图


3. 类说明

  • Library类中使用了Map类,方便根据书本编号或者书名来查询对应的书本。因为书本编号或者书名和书本是一一对应的映射关系,所以通过Map<String, Book>的形式可快速查找到图书馆中的书本。

  • 主要类:Reader类。

    • 因为借书,还书,续借图书等操作都是读者的行为,所以我在Reader类中设计了相应的方法,这样只需要调用此类中的这些方法就可实现这些业务逻辑。

    • Reader类的属性:MyBooksList myBooksList。因为每位读者都有一份自己的书单,所以设计属性时会添加此项。

    • 主要方法:

      1. borrowBooks(String idOrName),此方法用于借书操作,读者可以借阅字符串idOrName(图书编号或者书名)对应的书本。

      2. returnBooks(),此方法用于还书操作,在GUI界面中,读者可以点击书本后面的勾选框进行还书操作,此方法就是监视勾选框的状态,对选中的勾选框执行还书操作。

      3. renewBooks(),此方法用于续借图书的操作,在GUI界面中,读者可以点击书本后面的勾选框进行续借图书的操作,此方法就是监视勾选框的状态,对选中的勾选框执行续借图书的操作。


4. 系统的包(package)的规划设计


5. 特色

  • MVC模式:设计的GUI界面为View 视图,就是负责跟用户交互的界面,不同的界面对应着不同的功能。而Model 模型则是通过相应类的方法来实现,如借书、还书、续借图书等方法,这些方法可被重复调用从而完成相应的任务。Controller 控制器则是用户点击GUI界面中不同的按键,对应的jButton组件通过动作监听器调用Model 模型中的方法,从而返回结果并在GUI界面中显示出来。

  • 数据持久化(数据存储):使用了一个reader.txt文件来存储读者的账号密码信息,用于一开始的登录注册界面。读者登录时通过比对文件中的内容和GUI界面中输入的内容,判断读者是否登陆成功;而注册时,若注册成功,相关的账号密码信息也会写入到reader.txt文件中。

  • 使用了阿里巴巴代码规范扫描插件对项目代码进行扫描

  • 使用Git管理代码:Git仓库入口

  • 已经完成系统的初步原型,已将相应项目打包成可执行文件,各步的运行结果如下所示。