面向对象课程小组作业项目,主题为图书借阅管理系统。
- 使用 Python 实现图书、用户、借阅三大核心模块
- 展示 OOP 核心概念:封装、继承、多态、抽象类、组合
- 使用自定义数据结构:BST、HashTable、DoublyLinkedList、Queue、Stack、CategoryTree
- 完成 CRUD、搜索、文件持久化、异常处理和测试
models/ 核心领域模型
structures/ 自定义数据结构
services/ 业务逻辑层
core/ Facade、文件持久化、历史记录、数据生成
ui/ 菜单交互
tests/ 单元测试与集成测试
data/ 示例数据
docs/ 参考文档与作业约束
Book封装图书字段和校验逻辑BookService组合BookBST和CategoryTree- 支持新增、查询、更新、删除、分类检索和库存变更
AbstractUser为抽象基类Student、Teacher继承基类并体现不同借阅规则UserService使用HashTable管理注册、登录、查询和更新
BorrowRecord负责借阅记录状态与罚款计算BorrowService组合用户、图书、双向链表和预约队列- 支持借书、还书、续借、逾期检查和预约排队
Library作为 Facade 统一调度各个 serviceFileManager负责 JSON 持久化HistoryOperation使用Stack记录操作历史
python3 main.py程序启动时会检查 data/ 目录;如果缺少数据文件,会自动生成示例数据。
python3 -m unittest discover -s tests -v- 学生账号:
STU2024001密码:Student123 - 教师账号:
TEA2024001密码:Teacher123
本项目已按 docs/TASK_ASSIGNMENT.md 与 docs/FIELD_DEFINITIONS.md 对齐:
- 字段命名与业务规则保持一致
- 模块职责与任务分工保持一致
- OOP 展示点与数据结构要求已落实到代码
- 单元测试与系统集成测试已补齐