Skip to content

Latest commit

 

History

History
110 lines (61 loc) · 8.63 KB

README.md

File metadata and controls

110 lines (61 loc) · 8.63 KB

BMT使用手册

[TOC]


一、声明

1.该界面设计为中山大学《Python数据分析》教学班(2021.09-2022.01)-A301/A305-(9-10)/(7-8) 所制作的课程期末作业。
2.选择制作该GUI用户界面的原因是学习本课程后想利用所学知识应用到实际生活中,以期末作业为契机系统梳理python基础语法、图形交互、数据分析、可视化等知识点。
3.该界面设计为智能书店系统用户注册和登录界面。
4.本项目由中山大学研究生胡心亭、胡琰、李晋、李松璋(拼音字母排序,四人贡献值均等)共同完成,部分内容参考网络上的学习资源,如有侵权请在讨论区进行说明,作者将视情况进行删除修改。


二、 使用说明

1.界面逻辑

image-业务逻辑

2.该GUI界面可用于智能书店系统用户注册和登录,注册时必须两次输入的密码相同并且用户名不存在方可注册成功,注册完成之后将用户信息录入数据库 account_info.db;输入已注册过的用户名和密码方可成功登录,登录时通过数据库 account_info.db 查询是否有此用户、密码是否正确完成登录动作;通过数据库 account_info.db 查询是否为管理员、是否为书店、是否为仓库端并最终确认是普通用户;普通用户主页面和普通网页无异,可检索、购买书籍以及查看并导出购买记录,可获取使用说明、联系客服等。
3.该GUI界面设有管理员主页面,连接数据库 account_info.db,可用于对所有用户进行操作如查询、添加、删除和更新用户信息。
4.该GUI界面设有书店端主页面,连接数据库 purchase_history.db,可查看实时销量、销售额、利润统计的可视化图表,可自主筛选时间查看该时间段内的销量情况。
5.该GUI界面设有仓库端主页面,连接数据库 book_info.db,可生成库存清单包括书籍类别、名称、进价、售价和库存量,可操作书籍入库和出库,可实时更新书籍进价和售价,以及在库存量低于100本时自动警告书店端并生成书籍采购清单。
6.本GUI界面应在 Python3 环境下运行,需要下载与主体程序相关的模块,已在 PyCharm 和 Anaconda3 环境下成功运行。
7.本GUI界面需要自行登录 Github 网站 https://github.com/hyBio/BMT 并下载完整代码,运行主体逻辑程序 BMT_client.py 即可成功进入GUI界面。


三、模块说明

1. log_in.py

该模块负责用户登录,以及与其他窗口的联系,必须在用户名存在以及输入密码正确方可登陆成功,使用时应注意安装 PyQt5 模块,使用 pip 安装,在 PyCharm 配置 Qt Designer、pyuic、pyrcc工具。

2. register_to.py

该模块负责用户注册,注册时必须两次输入的密码相同并且用户名不存在方可注册成功,否则提示“用户已经存在”。

3. register_success.py

该模块负责提示新用户注册成功,以及与其他窗口的联系。

4. Admin.py

该模块负责管理员对所有用户信息的操作,包括对所有用户进行操作如清除全部用户、删除、查询和更新用户信息,只有用户名为 admin 才能进入管理员窗口,即管理员的账号一定为 admin,数据库 account_info.db 中必含有 admin 用户名,如果该用户名被删除,会自动生成默认的 admin 及默认密码 admin123。
管理员主页面可查询到用户名、密码及注册时间。删除用户时,需要勾选前面的选择框,然后点击 Delete,Select All 可方便一次性选择全部用户,点击之后变成 Unselect,可勾选不作操作的用户,再次点击 Unselect 可不选择任何用户;Clear 可一次性删除全部用户,包括 admin,但之后会自动生成 admin 及设置好默认密码 admin123;Refresh 可以更新表格,将数据库中的数据重新添加到表格中;Update 可更新用户密码;Add 可直接添加新用户账号和密码。

5. purchase_history.py

该模块负责导出用户的购买记录。

6. shop_windows.py

该模块负责实时记录书籍销量、销售额和利润清单以及今日销售额、累计销售额、今日支出、累计支出、今日利润和累计利润的可视化图。

7. date_choose.py

该模块负责书店端筛选日期以查看该时间段内的销量情况。

8. storehouse_windows.py

该模块负责实时记录、操作和更新仓库端书籍的库存信息,包括主页面显示书籍基本库存信息如类别、名称、进价、售价和库存量,以及更新书目、入库管理、出库管理、更新进价和生成采购单。自动提示书店端是否有书目库存量少于100本并需要重新采购,当有书目库存少于100本时,可点击“入库单”手动添加书目数量,点击“生成采购单”导出采购单,点击“出库单”修改书目库存数量,点击“更新进价”可手动更新书籍进价和售价。

9. storehouse_shop_window.py

该模块负责导出采购单。

10. storehouse_intput_main_window.py

该模块负责书籍入库管理,手动添加书目类别、书籍名称、进价及入库书目,实时添加到数据库 book_info.db,可方便管理智能书店主页面的书籍信息。

11. storehouse_output_main_window.py

该模块负责书籍出库管理,手动下拉选择出库的书籍类别和名称以及输入出库数目,实时更新数据库 book_info.db,可方便管理智能书店主页面的书籍信息。

12. storehouse_pricechange_main_window.py

该模块负责更新书籍进价,查看当前进价,手动下拉选择出库的书籍类别和名称,输入修改后的进价并点击“修改进价”,可实时更新书籍进价及售价。

13. main_windows.py

该模块负责用户检索、浏览、购买书籍并生成购买记录,以及与其他窗口的联系。

14. books_info_to_db.py

该模块负责把所有书籍信息转换成数据库文件,方便计算机处理。具体操作是利用 pandas 读取 books_info.csv 文件并创建 DataFrame,通过 sqlite3 内置模块连接数据库 books_info.db 并使用 append 方式添加书籍信息。

15. resource_rc.py

该模块负责把书籍图片和书店标识图片转换成二进制数据,方便计算机保存和读取。

16. Account_Database.py

该模块是数据库模块,负责为操作数据提供更简易操作的接口,可实现插入数据、获取数据、更新数据,以用户名查找密码、以用户名删除数据,判断数据库中是否有用户名信息,清空所有数据等功能。

17. BMT_client.py

该模块是未登录或各用户登录后所看到的主页面,与网页登录页面无异,负责普通用户、管理员、书店端和仓库端操作使用,注意需要调用上述所有模块。
注册时必须两次输入的密码相同并且用户名不存在方可注册成功,否则提示“用户已经存在”;如果用户名只有一个字符且两次输入的密码不为空,提示“用户名太短,请输入至少2个字符”;如果只输入一个密码或密码确认框为空时,提示“密码为空”;如果用户名符合要求且两次密码都少于6位,提示“密码少于六位,请重新输入”;如果用户名符合要求但两次输入密码不一致,提示“两次输入的密码不一致,请确认后重新输入”。注册完成后,提示“注册成功”,自动跳转到注册成功页面,返回用户注册成功可以去登录的页面。 只有输入已注册过的用户名和密码才能成功登录,并提示“欢迎加入 BMT:XX”,如果是普通用户则进入个人主页,如果是管理员则进入管理员主页面,如果是书店端则进入书店端主页面,如果是仓库端则进入仓库端主页面,一旦输入错误密码或者输入没有注册的用户名等,则登录失败。
主页面中,“使用手册”可实现自动跳转,“联系客服”可获取帮助,实时更新销售量前十和后十作为书店推荐和特价书籍;普通用户登录后可检索、购买书籍、查看购买记录;书店端登录后可查看书籍销售情况,包括销售额和利润的可视化图表;仓库端登录后可查看、操作和更新仓库端书籍的库存信息,包括更新书目、入库管理、出库管理、更新进价和导出采购单。


四、致谢

感谢授课教师王佳琪老师为本项目提供项目结构分析和技术支持!