Skip to content

Latest commit

 

History

43 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Library Borrowing System

面向对象课程小组作业项目,主题为图书借阅管理系统。

项目目标

  • 使用 Python 实现图书、用户、借阅三大核心模块
  • 展示 OOP 核心概念:封装、继承、多态、抽象类、组合
  • 使用自定义数据结构:BST、HashTable、DoublyLinkedList、Queue、Stack、CategoryTree
  • 完成 CRUD、搜索、文件持久化、异常处理和测试

项目结构

models/      核心领域模型
structures/  自定义数据结构
services/    业务逻辑层
core/        Facade、文件持久化、历史记录、数据生成
ui/          菜单交互
tests/       单元测试与集成测试
data/        示例数据
docs/        参考文档与作业约束

模块说明

图书管理

  • Book 封装图书字段和校验逻辑
  • BookService 组合 BookBSTCategoryTree
  • 支持新增、查询、更新、删除、分类检索和库存变更

用户管理

  • AbstractUser 为抽象基类
  • StudentTeacher 继承基类并体现不同借阅规则
  • UserService 使用 HashTable 管理注册、登录、查询和更新

借阅管理

  • BorrowRecord 负责借阅记录状态与罚款计算
  • BorrowService 组合用户、图书、双向链表和预约队列
  • 支持借书、还书、续借、逾期检查和预约排队

系统集成

  • Library 作为 Facade 统一调度各个 service
  • FileManager 负责 JSON 持久化
  • HistoryOperation 使用 Stack 记录操作历史

运行方式

python3 main.py

程序启动时会检查 data/ 目录;如果缺少数据文件,会自动生成示例数据。

运行测试

python3 -m unittest discover -s tests -v

示例账号

  • 学生账号:STU2024001 密码:Student123
  • 教师账号:TEA2024001 密码:Teacher123

文档对齐说明

本项目已按 docs/TASK_ASSIGNMENT.mddocs/FIELD_DEFINITIONS.md 对齐:

  • 字段命名与业务规则保持一致
  • 模块职责与任务分工保持一致
  • OOP 展示点与数据结构要求已落实到代码
  • 单元测试与系统集成测试已补齐

About

Group Project — Library Data System

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages