Skip to content

huyunke/Library-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

194 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 Library Management System

一个图书馆管理系统(C++ + SQLite3(后续可能迁移至MySQL))


使用说明

本项目依赖以下第三方库。请在编译前,将对应文件下载并放置到项目的 external/include 目录(需要自己创建)下:

出现以下报错可以通过在main.cpp中添加以下代码到文件开头来解决

#error "cpp-httplib doesn't support Windows 8 or lower. Please use Windows 10 or later."
#define _WIN32_WINNT 0x0A00
#define WINVER 0x0A00

角色说明user 表中 role 取值为 student(读者)、admin(管理员)、super_admin(超级管理员)。首次启动应用且数据库中尚不存在 super_admin 时,会自动创建默认超级管理员账号:用户 ID 000000000001默认密码 123456 ,登录后请尽快通过「个人信息 / 修改密码」更换密码。普通读者通过注册页面自助注册;管理员由超级管理员在「超级管理员控制台」将读者提拔产生。用户 ID 000000000001 已在注册接口中保留,不可被他人占用。


环境变量

LIBRARY_LOG_DIR(可选)

  • 作用:指定日志根目录;建议使用绝对路径。设置后,访问 / 业务 / 错误日志分别写入该目录下的 accessbusinesserror 子目录,文件按日期命名(如 2026-04-22.log)。
  • 未设置时:默认写入 CMake 配置时的项目源码根目录下的 logs 目录(同样包含上述子目录)。
  • 部署注意:若将可执行文件拷贝到其他机器、或构建机路径在目标环境无效,请设置 LIBRARY_LOG_DIR 指向目标机上可写目录(例如 Linux 下的 /var/log/<应用名>)。

Windows(PowerShell)示例

$env:LIBRARY_LOG_DIR = "D:\logs\library-system"
.\Library_Management_System.exe

Linux / macOS 示例

export LIBRARY_LOG_DIR=/var/log/library-system
./Library_Management_System

已经实现的功能

普通学生端
  • 查找图书(支持作者,书名,类别模糊查询,isbn精确查询)
  • 借阅图书
  • 查看借阅记录和状态
  • 查看个人信息
  • 修改密码
  • 借阅统计(在个人信息界面和主页面显示当前借阅数量,历史借阅数量,超期图书数量,即将到期图书数量)
  • 归还图书
  • 续借申请(提交后由管理员审核通过后延期)
  • 用户注册
管理员端
  • 图书管理(添加,编辑(字段可以选择,bookId不可修改),删除图书(删除所有副本);添加副本,删除副本)
  • 冻结/解冻账户
  • 查看读者详细信息
  • 搜索用户
  • 人工借书
  • 人工还书
  • 提交书籍异常处理报告
  • 统计图书总数,读者总数,当前借阅,超期图书
  • 文件上传(支持txt文件批量添加,批量添加过程中如果有错误,会生成并自动下载错误报告)
  • 处理书籍异常处理报告
  • 读者续借申请的审批
超级管理员端(包含管理员端的所有功能和以下功能)
  • 独立控制台页面(super-admin.html):登录后超级管理员进入该页,可跳转至图书管理后台(admin.html
  • 查看管理员与超级管理员账号列表
  • 将读者(student)提拔为管理员
  • 撤销管理员身份,恢复为读者(不可撤销超级管理员)
  • 删除管理员
  • 添加管理员
其他
  • 密码加密
  • 黑名单
  • 日志(文件分流、按日切分;路径见上文「环境变量」)

前端待解决的问题

  • 用户登录和修改密码时boby中的密码未加密就传到了后端,应该在前端加密后传到后端

后端待解决的问题


🚀 功能扩展规划TODO(后端)

管理员端

  • 导出书籍异常处理报告为excel
  • 对超期图书进行操作
  • 后台应有对距离当天多久为新书的设置
  • 支持批量导入读者信息

1.1 用户体验优化

  • 密码找回功能

1.2 数据备份

  • 数据库备份功能

1.3 借阅规则完善

  • 逾期提醒功能,弹窗提醒,并显示超期天数和书本基本信息

1.4 推荐系统

推荐系统的仓库地址[[https://github.com/huyunke/Book_Recommendation_System]]

  • 基于自身借阅内容的推荐
  • 基于相似读者的推荐
  • 基于热门度 / 趋势的推荐
  • 基于类别平衡 / 多样性的推荐
  • 基于新书 / 时间因素的推荐
  • 混合推荐

1.5 其他

  • 多线程
  • 从SQLite迁移到MySQL

About

Library Management System

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors