一、功能调查与系统功能框架图
1.功能调查
- 进入图书系统需要先登陆
- 用户在图书馆中可以通过书籍的任意标签进行查询
- 用户可以拥有自己的一个图书架,里面包含当前的借阅情况和借阅历史
2.系统功能框架图
二、类的设计:UML类图
三、类说明
User类(用户类)
-
属性
-
登录和注册方法:
在User类中定义了静态初始化块,在程序开始就先判断保存用户信息的文件(user.txt)是否存在,如果不存在就创建该文件。这里我将用户的登录和注册操作作为属于User类的方法(修饰符static),在执行登录和注册操作时,就对user.txt文件进行相应的读写,完成登录和注册的操作,且在注册的时候就创建两个文件分别保存相对应用户的书架和借阅记录。
- 更新书架文件中的数据
借书和还书时要更新文件中的数据。
Library类(图书馆类)
- 读取数据和更新数据
在图书馆中的图书信息也是用文件进行保存的,但是书架实现类用的是ArrayList,故要从文件中读取数据保存到图书馆的书架属性中,且在用户进行借书和还书操作时,对文件中的书籍信息进行更新。
BookItem类(书本条目)
保存图书的信息及借阅状态。
BookShelfDaoListImpl类(书架类)
实现了BookShelfDao接口,用ArrayList保存书本条目,一开始时想要用文件来保存数据,然后直接对文件中的内容进行读取和更新的,但是相比较来说用ArrayList对数据的提取会比较快,于是选择了ArrayList来保存书本条目。
BorrowingHistory类
保存用户的借阅历史,实现了BorrowingHistoryDao接口,使用文件直接保存过往的借阅信息。
四、系统的包(package)的规划设计
- Dao包
用于存放dao接口,这里面有关于书架和借阅记录的dao接口。 - Gui包
里面应该存放的是实现图形界面的类,但目前还未实现gui,只是在控制台进行输入输出,menu类存放着实现各个操作的提示代码,以及输入输出语句。 - Model包
保存图书馆中的各种模型类,程序中最主要的部分。
五、特色(可选)
DAO模式
dao模式将业务代码和数据存储代码分离,这里的书架类我是用list去保存数据的,使用dao模式让我在后续过程中使用其他存储结构,如数据库等,方便进行拓展和维护。
数据持久化(数据存储)
使用了文件来对数据进行保存,在使用程序的过程中也在对文件中的数据进行更新,保存操作之后的数据。
是否使用Git管理代码?
是否真的已经完成系统的初步原型(可以进行简单演示)。
-
登录注册
-
图书馆书籍展示
-
在图书馆中查询书籍
-
用户借书
-
用户还书
-
查看用户的借阅记录