Loading...

面向对象设计大作业

Gitee代码

git仓库

前期调查




以上调查截图来自于APP藏书馆

- 调查结果显示

  • 功能如下
    • 图书馆自带的用户登录系统
    • 图书的简介、借书与还书功能
  • 拓展
    • 借书时间显示
    • 还书期限提醒
    • 续借以及还书功能
    • 如有需要设计购买功能

UML图

  • User模块:用户的信息以及注册登录
  • Book模块:储存书籍信息
  • LibraryDAO模块:实现书籍的查找统计数量等功能
  • LibraryDAOArray利用数组方法实现功能
  • Library模块:实现储存书籍、增加书籍、清空书籍的功能

GUI界面

效果展示

登录界面

  • 用户首先进行注册操作,数据存入文档后登录,同时获取上一次借阅书籍的信息

菜单界面

  • 搜索栏:用户可以根据图书的名称或者序号对图书进行搜索,搜索成功选择是否借阅,确定则提示借阅时间以及归还时间

查看图书馆内容

  • 双击可以查看书籍信息,表格也展示书籍的借阅信息

查看我借阅的书籍

  • 当前页面可以进行还书以及续借操作,如有需要可以进行购买操作

类说明

BookDAO

  • public boolean addProduct(Book p):加入用户借阅书籍书单中
  • public Book searchByName(String name):按书籍名搜索
  • public Book searchByNumber(int num):按书籍序号搜索书籍
  • public void showAll():展示所有借阅书籍
  • public int getProductQuantity():用于获取图书数量
  • public Book getProduct(int n):用于获取书本信息,在图书馆GUI界面中双击书籍时获取书籍信息

Book

属性说明

  • private String name:储存书籍名称
  • private String author:储存书籍作者
  • private Integer num:储存书籍编号
  • private Double price:储存书籍价格
  • public boolean flag:储存书籍的借阅状态,若为false则暂时无人借阅,反之,则为已被借阅
  • public String time:储存书籍被借阅出时的时间,以便于提醒用户以及计算归还时间

方法

构造方法以及各个属性的set与get方法,展示书籍信息的toString方法

Users

  • 用户注册界面
  • 新建BufferedReader br , BufferedReader由Reader类扩展而来,提供通用的缓冲方式文本读取,并且提供readLine函数,用于对文本文件一行一行的读取
    由于存储用户信息时,将用户名和密码存在同一行并用空格隔开,利用split()函数,将字符串分割成字符串数组,对比注册用户信息是否已经存在,若不存在,则写入新的信息
  • 用户登录界面
  • 类似注册界面,利用readLine读取,对比用户名与密码是否与文件中存在的匹配,若匹配,则登录成功,进入购物车菜单界面
  • 数据读取

Library

属性

private List items;

  • 采用动态数组储存,对于图书的信息以及读取需要快速随机访问,同时数组大小也可以根据存放内容不断变化

方法

private int findItem(Integer id):按照书籍编号寻找
public boolean delete(Integer id):删除书籍
public void showLibrary():展示所有书籍
public int getQuantity() :获得书籍数量

  • 数据更新

GUI

BookJTable设计

LibraryJTable设计

主菜单搜索按钮设计

效果展示




特色

  • 使用Git管理代码:git仓库
  • 使用DAO模式:首先DAO接口的方法给人阅读代码者一目了然的观感,同时DAO模式实现了数据访问接口与方法实现的相分离,这样能进行更好的分工。
  • 实现数据持久化储存:将用户借阅的数目储存在文件中,下一次登录时访问文件中是否存在借阅书籍
  • 完成系统的初步原型(可以进行简单演示)
posted @ 2020-12-09 20:07  孤海  阅读(184)  评论(1编辑  收藏  举报