# 一、项目需求分析
## 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
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
项目是图书管理信息系统,使得学院的图书信息管理工作能够系统化,规范化,自动化,从而达到提高学院图书管理效率的目的。我们的系统主要是有学生和管理员进行使用,二人登录系统的角色不同,因而部分功能也不一样。我们的前台部分主要是使用pyqt5来进行设计和布局,使用pycharm中的Qt Designer进行绘制,然后使用pyqt5和qss文件来编写窗口的样式;我们的后台逻辑和数据的处理是使用python结合mysql数据库以及线程的使用来进行处理,最后得到我们的NCU图书管理系统的1.0版本
资源推荐
资源详情
资源评论
收起资源包目录
基于pyqt5编写的图书管理系统.rar (95个子文件)
基于pyqt5编写的图书管理系统
基于pyqt5编写的图书管理系统
bookmanager
main.py 602B
LICENSE 1KB
res
style
style.qss 3KB
img
plus.png 983B
spinbox_down.png 373B
Raidobox_checked.png 847B
more.png 392B
spinbox_up_pressed.png 363B
spinbox_up.png 379B
Raidobox_unchecked.png 796B
arrow-right.png 1KB
checkbox_checked.png 542B
Raidobox_unchecked_hover.png 798B
minus.png 564B
arrow-left.png 1KB
spinbox_down_pressed.png 357B
img
edit.png 5KB
push.ico 44KB
delete.ico 63KB
home.png 329KB
return.ico 44KB
send.png 22KB
delay_time.ico 66KB
delete.png 4KB
app-icon.png 4KB
borrow_book.png 8KB
.idea
.name 11B
vcs.xml 167B
misc.xml 288B
modules.xml 274B
BookManager.iml 428B
.gitignore 0B
img
功能结构图.png 74KB
9.png 6KB
3.png 74KB
1.png 16KB
6.png 5KB
5.png 43KB
4.png 49KB
8.png 5KB
7.png 9KB
2.png 10KB
view
login_window.py 4KB
register_window.py 2KB
borrow_info_window.py 10KB
renew_window.py 4KB
borrow_book_window.py 2KB
main_window.py 4KB
annoucement_window.py 2KB
book_edit_window.py 4KB
message_info_user_window.py 6KB
home_window.py 8KB
reply_window.py 2KB
add_book_window.py 2KB
about_window.py 265B
message_info_window.py 7KB
book_manage_window.py 8KB
generate_data.py 5KB
requirements.txt 6KB
说明文档.doc 1.59MB
book.sql 76KB
改进.txt 2KB
ui
login_window.py 6KB
register_window.py 6KB
message_info_user_window.ui 5KB
borrow_info_window.py 5KB
login_window.ui 7KB
renew_window.py 4KB
book_borrow_info_window.ui 4KB
register_window.ui 7KB
book_manage_window.ui 5KB
main_window.py 7KB
add_book_window.ui 5KB
borrow_info_window.ui 4KB
renew_window.ui 4KB
annouce_window.py 3KB
message_info_user_window.py 6KB
home_window.py 8KB
reply_window.py 3KB
about_window.ui 7KB
reply_window.ui 3KB
add_book_window.py 5KB
book_borrow_info_window.py 5KB
about_window.py 7KB
message_info_window.ui 5KB
main_window.ui 7KB
message_info_window.py 6KB
book_manage_window.py 6KB
annouce_window.ui 3KB
home_window.ui 7KB
util
crawl_util.py 6KB
dbutil.py 6KB
common_util.py 3KB
README.md 12KB
frozen_dir.py 300B
共 95 条
- 1
资源评论
- Sunday✼2023-05-10资源有一定的参考价值,与资源描述一致,很实用,能够借鉴的部分挺多的,值得下载。
- 管哥_kr2023-04-06资源内容详实,描述详尽,解决了我的问题,受益匪浅,学到了。
- 鸢于九天2023-07-11资源很实用,对我启发很大,有很好的参考价值,内容详细。
- Heartmelon2023-05-21终于找到了超赞的宝藏资源,果断冲冲冲,支持!
- 超人一等啊2023-09-26感谢资源主的分享,这个资源对我来说很有用,内容描述详尽,值得借鉴。
甜辣uu
- 粉丝: 9148
- 资源: 1103
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 单片机仿真∶电流电压检测系统 可完成(1)电网参数监测,包括电流、电压 (2)监测参数的显示; (3)报警数据数值设定(按键)
- SpringBoot之移动互联网论坛网站
- 基于PLC和组态软件的智能停车场收费系统停车场电气控制
- 西门子PLc程序,博途V16 V17版1200与多台G120变频器通过过modbus RTU485 通讯控制,模拟量转换,温度
- 基于springboot的论坛网站
- 恒压供水,维纶通屏+s7 200程序
- 基于S7-200 PLC和组态王组态切片机控制系统 带解释的梯形图程序,接线图原理图图纸,io分配,组态画面
- 相关材料认证的备份11
- 三菱 FX5U PLC 4轴程序 控制松下伺服3个, 步进电机一个, 四轴自动堆垛码垛设备程序, 回原点动作用专用的原点
- springcolud与springboot不一致造成的
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功