Skip to content

Fui-Reconk/LibrarySystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

图书管理系统

一个功能完整的图书管理系统,支持图书管理、采购、借阅、查询和统计等功能。系统提供命令行界面(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标准库)

安装步骤

  1. 克隆或下载项目到本地
  2. 确保已安装Python 3.7+
  3. 不需要安装额外依赖

运行方式

方式一:GUI界面(推荐)

python main.py

方式二:命令行界面

注: 本方案未经后续维护

python run_cli.py

数据库初始化

  • 首次运行会自动创建数据库文件 library.db
  • 数据库表结构会自动初始化
  • 如需示例数据,可在CLI界面中选择创建示例数据

使用指南

GUI界面使用

  1. 主界面:左侧导航栏选择功能模块
  2. 图书管理
    • 查看图书列表,双击查看详情
    • 右键菜单:采购、淘汰、查看详情
    • 工具栏:新增、编辑、删除、搜索
  3. 采购管理
    • 按日期、图书、供应商筛选记录
    • 查看采购统计和趋势分析
  4. 借阅管理
    • 借阅标签页:新增借阅、查看借阅记录
    • 归还标签页:处理图书归还
    • 逾期标签页:查看和管理逾期图书
  5. 查询功能
    • 多种查询方式组合
    • 结果以表格形式展示
  6. 统计报表
    • 各标签页查看不同统计维度
    • 支持日期范围筛选

命令行界面使用

  1. 启动后显示主菜单
  2. 输入对应数字选择功能
  3. 按照提示输入相关信息
  4. 按回车返回上级菜单

数据库设计

核心数据表

  1. books - 图书基本信息表
  2. purchases - 采购记录表
  3. eliminations - 淘汰记录表
  4. borrowings - 借阅记录表
  5. inventory_history - 库存变更历史表

数据关系

  • 一对多关系:图书 ↔ 采购记录
  • 一对多关系:图书 ↔ 淘汰记录
  • 一对多关系:图书 ↔ 借阅记录
  • 一对多关系:图书 ↔ 库存历史

扩展开发

  1. 添加新功能

    • models/中添加数据模型
    • dao/中添加数据访问对象
    • services/中添加业务逻辑
    • ui/中添加界面组件
  2. 修改界面

    • 修改对应的UI模块文件
  3. 数据库变更

    • 修改database/db_connection.py中的表结构
    • 考虑数据迁移策略

测试

  • 系统包含完整的测试用例
  • 可使用测试脚本验证各模块功能
  • 数据库使用内存数据库进行测试

About

LibrarySystem 数据库大作业

Resources

Stars

Watchers

Forks

Contributors

Languages