前言
为了减轻图书管理员繁琐的工作流程;特为他们设计一个图书管理系统。本系统功能分为读者信息管理模块,图书信息管理模块、图书借阅管理模块、基础信息管理模块、用户管理模块。
流程图展示
知识回顾
- 流程控制语句
- 面向对象
- 异常类
- 日期类
- 工具类
- 集合
- I/O流
问题前置(BUG)
看到这里,你估计就能想象我当时多头疼。所以说写项目还是得一步一步来,先慢后快,写之前尽量考虑多一些。磨刀不误砍柴工,弄清各个模块之间的关系,你就能从黑夜迎接黎明。归根到底,所有问题的源头还是知识点使用不灵活,很呆。
思路概要
我分了四个类domain、messege、service和view,这样写总之就是好,没有为什么。就我而言难的是各个模块之间的调用,以及先后顺序;举个例子:在我写BookService()时,写到一大半才发现,BookTypeService()还没写;以至于我有从头先写类型。我还遇到很多就不一一举例了。图书管理系统的核心不就是借书还书吗?那与它联系最直接的不就是时间吗?所以我写了一个时间类Date()。其次就是IO流了,除了user.txt和log.txt我没有用对象序列化流其他的都用了。
- 图书信息管理:能够对图书的基本信息进行管理,包括新增图书,学校每年会购进新书,此时需要将新书的信息录入系统中;图书信息的修改,如学生借书后将图书丢失,此时需要修改图书的总数量,使总数减1;删除图书,学校在购进新书的同时,每年会对过期的图书进行清理,不再提供借阅,此时就需要将这些图书的信息从系统中删除。查询图书的信息,比如要查看有哪些是Java相关的书籍或者指定ISBN号的图书等。
-
图书借阅信息管理:能够对图书的借阅信息进行记录,包括读者信息、图书信息、借阅时间等信息。
-
图书归还信息管理:能够对图书的借阅信息进行记录,包括读者信息、图书信息、归还时间、是否超期、罚金等信息。
-
系统用户信息管理:能够对系统用户的信息进行管理,包括增加新的系统操作用户,对当前系统用户的密码进行修改,以及删除某一用户。
-
读者信息管理:能够对读者的基本信息进行管理,包括新增读者,如学校新来一名教师,想要借书,就必须先添加读者信息;读者信息的修改,如学生转到别的专业,此时要修改学生的基本信息;删除读者的信息,比如某个学生中途退学了,可以将其信息删除。查询读者的信息,比如有同学拾到了一张借阅卡,卡上有学生的编号,通过此号来查询学生的联系电话,从而可以找到学生。
代码
private static void UpdateBook() throws IOException, ClassNotFoundException, myError {
System.out.println("图书信息");
AllBookinfo();
File file = new File("src\\project2\\booker\\messege\\book.txt");
ArrayList<Book> arr = new ArrayList<>();
boolean flag = true;
boolean flags = true;
for (Book books : arr) {
System.out.println("请输入修改的图书编号:");
int ISBN = Tool.readInt_8();
if (ISBN == books.getISBN()) {
System.out<