java图书借阅管理系统用book、user、borrowrecord三类建模,通过arraylist内存存储,实现借/还/查核心流程;控制台菜单驱动,输入校验完备,结构清晰易读,适合面向对象初学者练手。

用 Java 写一个简单的图书借阅管理系统,核心不在于功能多全,而在于结构清晰、逻辑可读、能跑起来。它适合刚学完面向对象和集合基础的同学练手,重点是把“书”“人”“借阅行为”这三类数据串起来,用控制台交互验证流程。
设计三个核心类:Book、User、BorrowRecord
先别急着写界面或数据库,从实体建模开始。每个类只管自己的职责:
- Book:包含编号(id)、书名(title)、作者(author)、是否被借出(isBorrowed)等字段,提供 toString 方便打印;
- User:含用户ID(id)、姓名(name)、联系方式(phone),不存借阅历史,只作身份标识;
- BorrowRecord:记录一次借阅,关联 bookId、userId、借出时间(可用 System.currentTimeMillis() 或简单字符串如 "2024-05-20")。
用 ArrayList 管理数据,避免过早引入数据库
初期用内存集合模拟数据存储,既轻量又便于调试:
- 创建 List
存所有图书,初始化几本测试数据; - 用 List
存注册用户; - 借阅记录存在 List
中,每次借/还都增删对应记录; - 注意:借书前检查 book.isBorrowed == false,还书时同步更新 book.isBorrowed = false,并从记录列表中移除该条目。
主菜单用 while + switch 实现交互逻辑
控制台程序靠循环维持运行,输入数字选择功能:
- 显示菜单项:“1. 查看全部图书 2. 添加图书 3. 借书 4. 还书 5. 查看借阅记录 0. 退出”;
- 用 Scanner 读取用户输入,switch 分支调用对应方法;
- 每个功能方法尽量短小,比如 borrowBook() 只负责:提示输入 bookId 和 userId → 校验是否存在 → 更新状态 → 添加记录;
- 关键细节:输入校验不能省,比如输入非数字时 catch InputMismatchException 并提示重输。
逐步扩展,但先保证核心流程闭环
完成借、还、查三个动作能连贯走通,就算 MVP 达成。后续优化可按需加:
- 给 Book 和 User 加构造方法,避免 set 太多行;
- 借阅时自动记录时间,还书时输出“已归还《XXX》”增强反馈;
- 用 id 而非下标查找对象(比如根据 bookId 找 Book),更贴近真实场景;
- 最后再考虑保存到文件(如用 ObjectOutputStream)或改用 Scanner 读配置文件预加载图书。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











