用IO流写图书管理系统

本文介绍了一款旨在简化图书管理员工作流程的图书管理系统,通过面向对象、异常处理、日期类和集合等知识实现。文章讨论了设计过程中遇到的问题,如模块间的调用顺序,并强调了IO流在系统中的关键作用,特别是在图书信息管理中的应用。系统功能涵盖读者、图书、借阅管理和基础信息管理等模块。
摘要由CSDN通过智能技术生成

前言

  为了减轻图书管理员繁琐的工作流程;特为他们设计一个图书管理系统。本系统功能分为读者信息管理模块,图书信息管理模块、图书借阅管理模块、基础信息管理模块、用户管理模块。

流程图展示

在这里插入图片描述

在这里插入图片描述

知识回顾

  1. 流程控制语句
  2. 面向对象
  3. 异常类
  4. 日期类
  5. 工具类
  6. 集合
  7. I/O流

问题前置(BUG)

在这里插入图片描述

  看到这里,你估计就能想象我当时多头疼。所以说写项目还是得一步一步来,先慢后快,写之前尽量考虑多一些。磨刀不误砍柴工,弄清各个模块之间的关系,你就能从黑夜迎接黎明。归根到底,所有问题的源头还是知识点使用不灵活,很呆。

思路概要

  我分了四个类domain、messege、service和view,这样写总之就是好,没有为什么。就我而言难的是各个模块之间的调用,以及先后顺序;举个例子:在我写BookService()时,写到一大半才发现,BookTypeService()还没写;以至于我有从头先写类型。我还遇到很多就不一一举例了。图书管理系统的核心不就是借书还书吗?那与它联系最直接的不就是时间吗?所以我写了一个时间类Date()。其次就是IO流了,除了user.txt和log.txt我没有用对象序列化流其他的都用了。
在这里插入图片描述

  1. 图书信息管理:能够对图书的基本信息进行管理,包括新增图书,学校每年会购进新书,此时需要将新书的信息录入系统中;图书信息的修改,如学生借书后将图书丢失,此时需要修改图书的总数量,使总数减1;删除图书,学校在购进新书的同时,每年会对过期的图书进行清理,不再提供借阅,此时就需要将这些图书的信息从系统中删除。查询图书的信息,比如要查看有哪些是Java相关的书籍或者指定ISBN号的图书等。
  2. 图书借阅信息管理:能够对图书的借阅信息进行记录,包括读者信息、图书信息、借阅时间等信息。
    
  3. 图书归还信息管理:能够对图书的借阅信息进行记录,包括读者信息、图书信息、归还时间、是否超期、罚金等信息。
    
  4. 系统用户信息管理:能够对系统用户的信息进行管理,包括增加新的系统操作用户,对当前系统用户的密码进行修改,以及删除某一用户。
    
  5. 读者信息管理:能够对读者的基本信息进行管理,包括新增读者,如学校新来一名教师,想要借书,就必须先添加读者信息;读者信息的修改,如学生转到别的专业,此时要修改学生的基本信息;删除读者的信息,比如某个学生中途退学了,可以将其信息删除。查询读者的信息,比如有同学拾到了一张借阅卡,卡上有学生的编号,通过此号来查询学生的联系电话,从而可以找到学生。
    

代码

在这里插入图片描述

 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<
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值