# 一、项目需求分析
## 1.1 项目介绍
### 项目背景
图书馆管理系统是一些单位不可缺少的部分,书籍是人类不可缺少的精神食粮,尤其对于学校来说,尤其重要。所以图书馆管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理图书、期刊、试卷合订本等,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对图书资源信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书馆管理的效率,也是学校的科学化、正规化管理的必经之路。
### 项目简介
本项目是图书管理信息系统,使得学院的图书信息管理工作能够系统化,规范化,自动化,从而达到提高学院图书管理效率的目的。我们的系统主要是有学生和管理员进行使用,二人登录系统的角色不同,因而部分功能也不一样。我们的前台部分主要是使用pyqt5来进行设计和布局,使用pycharm中的Qt Designer进行绘制,然后使用pyqt5和qss文件来编写窗口的样式;我们的后台逻辑和数据的处理是使用python结合mysql数据库以及线程的使用来进行处理,最后得到我们的NCU图书管理系统的1.0版本。
## 1.2 功能需求
我们对图书管理系统进行分析,我们认为我们需要给用户进行书籍推荐和系统公告的展示,同时需要维护借阅信息和图书信息,同时应该提供给用户和管理员之间的交流,便于系统的升级和维护。然而本系统对于管理员和普通用户的使用,功能应该是不同的,于是我们对于不同角色的功能需求分析如下:
普通用户:
- 注册、登录系统
- 查看系统推荐书籍、查看系统公告
- 借书、还书、续借、查找书籍
- 发送消息给管理员
- 系统帮助与关于
管理员:
- 注册、登录系统
- 设置系统推荐书目、发布公告
- 添加书籍、编辑已有书籍、删除书籍、查找书籍、催用户还书
- 筛选未回复消息、回复普通用户的消息、删除消息
- 系统帮助与关于
# 二、项目分析与设计
## 2.1 本项目需解决的关键技术问题
1. Qt Designer的使用
2. Qt 绘制的窗口的美化,即qss文件的编写使得页面美观
3. 使用爬虫爬取豆瓣图书时爬虫与反爬虫之间的斗争
4. 交互时信号与槽的连接
5. 交互时,mysql数据库的操作
6. 线程的使用,使得当小窗口对数据库操作之后,主线程能够监听到这种变化,及时更新界面的信息
7. 程序健壮性的体现,使用正则表达式对一些输入进行限制,以及一些常见的提示信息
## 2.2 项目流程
![](https://www.writebug.com/myres/static/uploads/2022/5/7/4058f20c0a8d03258d79ec5d0f8c906a.writebug)
## 2.3 功能模块
本项目主要分为注册登录、主页、借阅信息、图书管理、反馈交流、关于等模块。
![](https://www.writebug.com/myres/static/uploads/2022/5/7/1289f8f2057d1fdda1da64743d8185a0.writebug)
# 三、项目设计与实现
## 3.1 项目设计
### 登录页面:
设计意图和主要功能是验证登录者身份,运用了md5加密、数据库查询。
数据库查询(可以看到将密码加密后与数据库中对比):
![](https://www.writebug.com/myres/static/uploads/2022/5/7/c529d0ea791721184e7abf5cc820b40a.writebug)
页面展示:
![](https://www.writebug.com/myres/static/uploads/2022/5/7/fcdc1b83bc96342ee9f39551e1a83da6.writebug)
### 注册页面:
设计意图:便于用户注册账号与返回登录,同时输入密码后要再确认一遍密码。
主要功能:注册账号,也是通过数据库连接实现。
页面展示:
![](https://www.writebug.com/myres/static/uploads/2022/5/7/b82f2402a6943d2b124da22319411b85.writebug)
### 借阅信息:
设计意图:最上面是登录用户及角色、登出按钮,接着是搜索框可供管理员搜索筛选数据,下面则是数据表,数据表中右键点击会显示菜单(管理员有“催还”、“删除”;用户有“续借”、“还书”),同时状态有“已还”、“未还”、“逾期”3种,分别呈现不同的颜色。
主要功能:显示借阅信息、管理员催还、用户续借与还书等。
关键知识点:信号与槽、线程、数据库查询、正则表达式匹配等。
页面展示:
![](https://www.writebug.com/myres/static/uploads/2022/5/7/73b3e7246a405852c1b402203027d227.writebug)
点击“删除”:
出现提示框,提示用户是否进行删除操作。
![](https://www.writebug.com/myres/static/uploads/2022/5/7/057160a62135d32b7ac572034d0af266.writebug)
用户视角下:
点击“续借”:
可以延长应还日期。
![](https://www.writebug.com/myres/static/uploads/2022/5/7/2e287cd84d72f29b1c5bc64237c05f22.writebug)
点击“还书”:
跳出提示框,提示用户是否继续。
![](https://www.writebug.com/myres/static/uploads/2022/5/7/9927dc8486b654b26d115266f5d8d83c.writebug)
### 反馈交流:
设计意图:具备搜索框搜索某用户发出的消息,还可直接点击“筛选未回复”按钮筛选出未回复的消息,下方是数据表,管理员可以删除、回复;用户只能看见自己的消息,可以删除。
关键知识点:信号与槽、线程、数据库查询、正则表达式匹配等
主要功能:用户与管理员之间的消息交互、消息展示查询等
![](https://www.writebug.com/myres/static/uploads/2022/5/7/7c755873d2b6198ecc8b11cb2fa9cb58.writebug)
点击“回复”:
出现回复窗口,可在此编辑信息:
![](https://www.writebug.com/myres/static/uploads/2022/5/7/fa5860f94464a442b30f296244b10f86.writebug)
用户视角可以直接发送消息给管理员:
![](https://www.writebug.com/myres/static/uploads/2022/5/7/e1de60ecba4bdb0fc08a76c93fcd7a40.writebug)
## 3.2 项目实现
本项目从文件结构上划分为如下模块:
![](https://www.writebug.com/myres/static/uploads/2022/5/7/4efddfd25b09a5aba40e0dd54d411f33.writebug)
Ui中是使用Qt Designer设计的页面,使用插件转化为python代码,util中是一些工具类如数据库连接帮助类、爬虫、通用工具类等。
而view中则是连接视图与数据的中间层,不仅可以根据数据设置视图的页面显示,同时又通过视图来与用户进行交互,得到反馈去通过数据库帮助类操作数据库。
1.整体使用信号与槽的机制,启动程序后,进入事件处理的主循环,每个页面的组件通过信号控制执行某些操作。如下:
![](https://www.writebug.com/myres/static/uploads/2022/5/7/cf61526d2b214c11b336bc8610254042.writebug)
当信号发出时,将执行对应的函数。
2.对于众多数据库的表来说,几乎每个表都需要一个不重复的主键,因此使用主机ID、序列号、和当前时间来生成UUID、可保证其唯一性。
![](https://www.writebug.com/myres/static/uploads/2022/5/7/739e957238f57d050f915b775f1ffcca.writebug)
3.使用正则表达式匹配器绑定到控件上,这样可以在用户输入阶段进行限制,而不必在输入后再对文本进行判断再执行别的操作。下面是封装的控件匹配器:
![](https://www.writebug.com/myres/static/uploads/2022/5/7/0474bf6bbbe7f38659ba81b9f22120d8.writebug)
这是使用:
![](https://www.writebug.com/myres/static/uploads/2022/5/7/a3c975d
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
资源包含文件:项目源码及数据库文件+项目截图 我们对图书管理系统进行分析,我们认为我们需要给用户进行书籍推荐和系统公告的展示,同时需要维护借阅信息和图书信息,同时应该提供给用户和管理员之间的交流,便于系统的升级和维护。然而本系统对于管理员和普通用户的使用,功能应该是不同的,于是我们对于不同角色的功能需求分析如下: 普通用户: 注册、登录系统 查看系统推荐书籍、查看系统公告 借书、还书、续借、查找书籍 发送消息给管理员 系统帮助与关于 管理员: 注册、登录系统 设置系统推荐书目、发布公告 添加书籍、编辑已有书籍、删除书籍、查找书籍、催用户还书 筛选未回复消息、回复普通用户的消息、删除消息 系统帮助与关于 详细介绍参考:https://biyezuopin.blog.csdn.net/article/details/124725269
资源推荐
资源详情
资源评论
收起资源包目录
基于pyqt5编写的图书管理系统.zip (110个子文件)
基于pyqt5编写的图书管理系统 毕业论文.doc 1.59MB
.gitignore 0B
delay_time.ico 66KB
delete.ico 63KB
return.ico 44KB
push.ico 44KB
BookManager.iml 428B
LICENSE 1KB
README.md 12KB
.name 11B
home.png 329KB
K4%HQUTBAXLBQ3D$$@ZJXPW.png 199KB
FAGN46Z[R40]$3T(@AFBTYB.png 161KB
2B@0V96OES0A144{X~(8O{0.png 157KB
3.png 74KB
3.png 74KB
功能结构图.png 74KB
功能结构图.png 74KB
4.png 49KB
4.png 49KB
5.png 43KB
5.png 43KB
FKXYV0YL(PYSL_G_T%TT{40.png 42KB
O{`(ZW3D8JE}6{%IKUHB][R.png 33KB
send.png 22KB
1.png 16KB
1.png 16KB
2.png 10KB
2.png 10KB
7.png 9KB
7.png 9KB
borrow_book.png 8KB
9.png 6KB
9.png 6KB
6.png 5KB
6.png 5KB
8.png 5KB
8.png 5KB
edit.png 5KB
app-icon.png 4KB
delete.png 4KB
arrow-right.png 1KB
arrow-left.png 1KB
plus.png 983B
Raidobox_checked.png 847B
Raidobox_unchecked_hover.png 798B
Raidobox_unchecked.png 796B
minus.png 564B
checkbox_checked.png 542B
more.png 392B
spinbox_up.png 379B
spinbox_down.png 373B
spinbox_up_pressed.png 363B
spinbox_down_pressed.png 357B
borrow_info_window.py 10KB
home_window.py 8KB
book_manage_window.py 8KB
home_window.py 8KB
message_info_window.py 7KB
main_window.py 7KB
about_window.py 7KB
dbutil.py 6KB
crawl_util.py 6KB
register_window.py 6KB
message_info_user_window.py 6KB
login_window.py 6KB
book_manage_window.py 6KB
message_info_window.py 6KB
message_info_user_window.py 6KB
generate_data.py 5KB
add_book_window.py 5KB
book_borrow_info_window.py 5KB
borrow_info_window.py 5KB
login_window.py 4KB
renew_window.py 4KB
renew_window.py 4KB
book_edit_window.py 4KB
main_window.py 4KB
annouce_window.py 3KB
common_util.py 3KB
reply_window.py 3KB
register_window.py 2KB
annoucement_window.py 2KB
add_book_window.py 2KB
reply_window.py 2KB
borrow_book_window.py 2KB
main.py 602B
frozen_dir.py 300B
about_window.py 265B
style.qss 3KB
book.sql 76KB
requirements.txt 6KB
改进.txt 2KB
register_window.ui 7KB
about_window.ui 7KB
home_window.ui 7KB
main_window.ui 7KB
login_window.ui 7KB
book_manage_window.ui 5KB
message_info_user_window.ui 5KB
共 110 条
- 1
- 2
shejizuopin
- 粉丝: 1w+
- 资源: 1296
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页