基于pyinter和mysql的可视化酒店客房管理系统
- 需求分析
-
- 目标与要求
- 安全性、完整性要求
- 数据流图
- 数据字典
- 概念结构设计
-
- 分E-R图
- 合E-R图
- 流程图
- 逻辑结构设计
-
- 关系模式的转化
- 数据库的建立
-
- 数据表
- 视图
- 源码及相关文件
-
- 文件及流程
- 部分测试截图
- 源码及文件
- 存在问题
需求分析
目标与要求
对于客户来说:1、 上预约(留下电话 码、姓名以及预约的时间);2、到店登记入住(姓名、电话、身份证 码、性别、押金+付钱、入住时间、房间 );3、基于 上预约的客户可以实现到店查询并且补全信息之后付钱+交付押金;4、退房(退还押金)。
对于前台人员:1、实现客户到店登记信息入住,将信息存入入住信息表中;2、实现客户的预约功能,提前记录到预约表中,客户到店之后将客户信息存入入住表,同时删除预约表中的信息;3、客户退房时,将客户从入住信息表中移除;4、根据生成的用户结账 表收取额外支付金钱,并且记录收入;5、查看客户简略信息
对于管理人员:1、实现房价的更改;2、查看收支状况;3、查询客户详细信息(根据姓名、电话、身份证 、房间 );4、查询员工信息;5、修改员工信息
安全性、完整性要求
数据库需要保障无关人员无法查询、修改员工、房间以及客户的信息,因此这些操作需要由指定的管理员才能涉及更改查询;
实体完整性:入住以及预约的客户表中需要以编 为唯一主键、房间表以房间 为唯一主键、员工表以编 为唯一主键、管理员表以管理员账 为唯一主键、商品表以商品名为唯一主键,避免破坏实体完整性;
参照完整性:客户表中的房间 需要是房间表的外键,因为一个房间可以入住复数以上的客户,同理额外消费表中的房间 也需要是房间表的外键;客户表中的入住、退房办理的前台员工列也需要作为员工表的外键管理员表中的员工编 为外部键。
数据流图
顶层数据流(大体总览):
流程图
源码及相关文件
文件及流程
主要文件:
database_control.py:存储了有关涉及到数据库的一系列操作
windows_control.py:存储了涉及到窗口显示的相关函数
酒店服务管理系统.py:main()函数
其它文件
icon.ico:生成.exe文件的图标
步骤
1、在cmd窗口下使用生成可执行文件。
是生成.exe的主文件,生成的可执行文件名与此py文件名相同
是生成-F指定文件附属的其它py文件
是在执行.exe文件时不显示cmd窗口(调试时不使用,否则看不到 错)
指定生成exe文件的图标,不指定则为默认py图标
2、之后会在该文件夹下面自动生成三个子文件夹:
部分测试截图
(以下可以实现的基础是在数据库中有数据的前提下)
源码及文件
https://github.com/645692095/Hotel_Management_System
存在问题
首先只实现了普通员工的所有操作,而管理员的操作现在还是空白(实在没时间了),而且其实已经在前半部分完成了一些操作的难点步骤(数据库的增删查改,可视化的各种控件均有运用),因此管理员的操作部分基本就是按照之前的模板随便改改就是了。
其次是界面没有美化是真的丑,但是实在懒得构思了,而且pyinter这个库在界面美化一方面确实有些缺陷
最后也是最重要的一点是,由于首次独立完成数据库的工程项目,可能之前许多步骤有不足,甚至还有错的地方,基本上是全部步骤走下来写代码的地方不断发现E-R、流程图的问题,前前后后光普通员工这一块就改了5,6次,还有一次大改,因此不确定涉及到管理员操作的地方是否有错误,欢迎各位指正!
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览208470 人正在系统学习中