一个功能完整的图书管理系统,支持图书管理、采购、借阅、查询和统计等功能。系统提供命令行界面(CLI)和图形用户界面(GUI)两种操作方式。
- 图书管理:新增、编辑、删除、查询图书信息
- 采购管理:记录图书采购信息,管理供应商
- 借阅管理:图书借阅、归还、逾期处理
- 淘汰管理:记录图书淘汰信息及原因
- 图书查询:按标题、作者、ISBN、分类等多条件查询
- 采购记录查询:按日期、图书、供应商查询
- 借阅记录查询:按借阅者、日期、状态查询
- 库存查询:实时库存状态查询
- 库存统计:图书分类统计、低库存预警
- 采购统计:采购趋势分析、供应商排名
- 借阅统计:热门图书排行、活跃读者分析
- 淘汰统计:淘汰原因分析、趋势统计
- 图书馆总览:整体运行状况概览
- 双界面支持:CLI命令行界面和Tkinter GUI界面
- 数据持久化:使用SQLite数据库存储数据
- 事务支持:关键操作使用数据库事务保证数据一致性
- 输入验证:完善的数据验证和错误处理
- 响应式设计:GUI界面支持不同屏幕尺寸
- 后端:Python 3.7+
- 数据库:SQLite 3
- GUI框架:Tkinter
- 架构模式:三层架构(表示层、业务逻辑层、数据访问层)
图书管理系统/
├── main.py # GUI主程序入口
├── run_cli.py # CLI主程序入口
├── test.py # 测试程序入口
├── library.db # 数据库文件(自动生成)
├── ui/ # 用户界面模块
│ ├── main_window.py # 主窗口框架
│ ├── book_management.py # 图书管理界面
│ ├── purchase_management.py # 采购管理界面
│ ├── borrow_management.py # 借阅管理界面
│ ├── statistics_interface.py # 统计报表界面
│ ├── query_interface.py # 查询功能界面
│ ├── dialogs.py # 对话框组件
│ ├── cli_interface.py # 命令行界面
│ └── common_widgets.py # 公共UI组件
├── database/ # 数据库模块
│ └── db_connection.py # 数据库连接管理
├── models/ # 数据模型
│ ├── book.py # 图书模型
│ ├── purchase.py # 采购模型
│ ├── elimination.py # 淘汰模型
│ ├── borrowing.py # 借阅模型
│ └── inventory.py # 库存模型
├── dao/ # 数据访问层
│ ├── book_dao.py # 图书DAO
│ ├── purchase_dao.py # 采购DAO
│ ├── elimination_dao.py # 淘汰DAO
│ ├── borrowing_dao.py # 借阅DAO
│ └── inventory_dao.py # 库存DAO
├── services/ # 业务逻辑层
│ ├── book_service.py # 图书服务
│ ├── query_service.py # 查询服务
│ └── statistics_service.py # 统计服务
└── README.md # 项目说明文档
- Python 3.7 或更高版本
- 不需要额外安装第三方库(仅使用Python标准库)
- 克隆或下载项目到本地
- 确保已安装Python 3.7+
- 不需要安装额外依赖
python main.py注: 本方案未经后续维护
python run_cli.py- 首次运行会自动创建数据库文件
library.db - 数据库表结构会自动初始化
- 如需示例数据,可在CLI界面中选择创建示例数据
- 主界面:左侧导航栏选择功能模块
- 图书管理:
- 查看图书列表,双击查看详情
- 右键菜单:采购、淘汰、查看详情
- 工具栏:新增、编辑、删除、搜索
- 采购管理:
- 按日期、图书、供应商筛选记录
- 查看采购统计和趋势分析
- 借阅管理:
- 借阅标签页:新增借阅、查看借阅记录
- 归还标签页:处理图书归还
- 逾期标签页:查看和管理逾期图书
- 查询功能:
- 多种查询方式组合
- 结果以表格形式展示
- 统计报表:
- 各标签页查看不同统计维度
- 支持日期范围筛选
- 启动后显示主菜单
- 输入对应数字选择功能
- 按照提示输入相关信息
- 按回车返回上级菜单
- books - 图书基本信息表
- purchases - 采购记录表
- eliminations - 淘汰记录表
- borrowings - 借阅记录表
- inventory_history - 库存变更历史表
- 一对多关系:图书 ↔ 采购记录
- 一对多关系:图书 ↔ 淘汰记录
- 一对多关系:图书 ↔ 借阅记录
- 一对多关系:图书 ↔ 库存历史
-
添加新功能:
- 在
models/中添加数据模型 - 在
dao/中添加数据访问对象 - 在
services/中添加业务逻辑 - 在
ui/中添加界面组件
- 在
-
修改界面:
- 修改对应的UI模块文件
-
数据库变更:
- 修改
database/db_connection.py中的表结构 - 考虑数据迁移策略
- 修改
- 系统包含完整的测试用例
- 可使用测试脚本验证各模块功能
- 数据库使用内存数据库进行测试