pyqt5+pymysql写的一个简易校医室管理系统
概述
数据库大作业,写了一个简易校医室管理系统。共三个界面,第一个是登录界面,分两个身份:管理员和学生;第二个界面是管理员界面,实现管理员身份权限下的一些操作;第三个界面是学生界面,实现学生身份权限下的操作。
系统功能设计
系统功能设计图如下图所示,其中管理员界面将献血信息增删改查的功能与学生报名信息查询功能放至同一个界面实现,学生界面专家信息和药品信息的查询功能放至同一个界面实现,献血相关的功能在另一个界面:
系统界面
登录界面
-
登录界面外观:设置窗体无边框,窗口半透明(后面是我的桌面嘿嘿),重新添加关闭和最小化按钮,重写关闭、最小化、鼠标点击、拖动窗口函数,采用我们学校的代表颜色红色为主色调,所有按钮悬停时为黄色。
-
登录界面功能:检查账号密码和身份是否有漏填漏选,如果没有,在数据库账户表匹配账号密码和身份,如果正确则成功登录。
登录为管理员
- 管理员界面外观:布局为导航栏+页面,左侧导航栏可以选择想要进行的操作,同时右侧页面会根据左侧导航切换;三个页面中,四种操作的排列均为,查询在上方、修改和新增在下方。
界面1功能:专家信息管理
- 页面最初,显示所有专家信息,当超出显示范围,表格右侧自动生成滚动条可以拖动查看信息且表格双击不可修改。
- 查询功能:输入专家姓名进行查询,点击查询按钮后,如果没有该医生信息,会提示用户“请检查输入是否正确或SUFE没有该专家坐诊信息”,如果有该医生信息,则表格显示该医生信息。点击返回按钮后,又会回到最初,显示所有医生信息,查询输入框清空。
- 删除功能:删除字样在表格中每行的最后,点击即可删除该行,并同步在数据库删除。
- 修改功能:点击修改专家信息按钮,提示“现在可以双击单元格修改”后,此时双击单元格可以直接在表格修改,数据库也进行了同步,点击确认后,提示“操作成功”,单元格重新锁定,不允许双击修改。
界面2功能:献血信息管理
- 管理员只能对献血信息进行增删改查操作,而对于学生的报名信息,只能进行查找(新增是由学生自己登陆报名)。查询献血日期时,不仅献血信息表格会显示该日期的记录,下面学生报名表格也会同步显示报名当天日期的学生信息,便于比对,然后可以在当天日期报名的学生中查询学生学号,表格显示该学生。点击学生查询返回按钮,返回报名当天日期的学生信息,点击献血查询返回按钮,献血表格和学生表格均返回至初始状态,查询输入框清空。而新增和修改操作以及提示框和界面1是基本相同的,请参考之前的图示。
界面3功能:药品管理
- 药品管理同界面1专家信息管理的功能和操作提示是基本相同的,请参考之前的图示。
登录为学生
- 学生界面外观:布局与管理员界面基本相同,无新增和修改按钮,献血预约报名界面添加了报名表和报名按钮
信息查询:门诊和药品界面
- 由于是学生操作,所以不开放新增和修改专家、药品信息的功能,只能进行查询,表格是不允许修改的。与管理员查询操作不同的是:管理员查询必须通过主键(医生姓名和药品编号)查询,对于管理来说可以精准找到信息;而学生查询时,是根据科室和药品名称查询,因为学生看病是根据病症看有没有对应的专家门诊,且对于药品信息的查询,学生不可能记得药品的编号,更一般的情况是查询药品名称来了解该药品的使用说明等信息。查询失败的提示也与管理员操作不同(不放图了,大概就是语气更活泼了一点)。查询成功和返回功能与管理员操作基本相同,请参考之前的图示。
界面2功能:献血信息查询和预约报名
- 献血信息查询功能和前面已展示的大致相同,请参考之前的图示;查询失败提示“Sorry,您的输入格式不正确或该日期没有献血活动!”
献血预约报名有如下几种情况:
如果报过名则系统提示“已经报名XX日期的献血活动,请勿重复报名”:
如果信息有漏填或者报名的日期并没有献血活动,则系统提示“报名失败!请检查报名日期或是否有漏填项!”:
如果报名的日期已经没有名额,则系统提示“对不起!报名人数已达上限”:
以上情况均无,则点击确认报名按钮后,系统提示报名成功(如图27),报名信息被同步到数据库学生报名表中,刷新后看到12月10日名额由200变为199:
点击清空按钮则清空各输入框(LineEdit)
其他说明
- 侧边栏用的QListWidget,连接右侧QStackWidget页面,输入框都是QLineEdit。
- 代码有很多重复的函数(只是里面的变量名不一样所以复制粘贴改了一下函数名),因为快要交作业了,就没有优化,py文件比较少,代码长度不平均,但是注释都写了。
- 大家需要源码的话不用留邮箱了,我传资源了。链接:https://download.youkuaiyun.com/download/Linnebula/16065093
- 2022/11/25更新:貌似在csdn下载开始收积分了,我传在网盘大家自取,希望大家留个赞再走喔:
-网盘链接:https://pan.baidu.com/s/1y3xAlUvih3qmqekHg8jNsw
提取码:k3ay