基于Python和MySQL的酒店服务管理系统
前言
在学习《数据库系统原理教程》等相关课程时,期末的结课作业往往是设计一个数据库系统。设计开发过程中,大多数只是注重需求分析、概念结构设计、逻辑结构设计、数据库实施、运行测试等主要环节。本篇博客即为本人的结课作业,本人才疏学浅,文章中如有错误之处,还请大家多多指正。
一、需求分析
随着市场经济的发展,消费者消费意识的提高,酒店行业的竞争越来越激烈。为了提高办事效率,增加、保证酒店的销售额,树立酒店的良好形象,运用科学的管理方法非常必要。为此开发了酒店服务管理系统,更好的满足各方面的需求,通过对各个房间的酒水、订房退房等需求的记录信息,可以进行数据挖掘和数据分析,掌握客户的喜好与需求,为酒店收入和营销提供更好的服务。
目标与需求分析:
(1)对于客户来说:
①网上预约(填写姓名、房间类型、电话号码以及预计到店的时间);
②到店登记入住(姓名、房间类型、电话号码、性别、身份证号码、房间号);
③基于网上预约的客户可以实现到店查询并且补全信息之后分配相应房间号;
④退房。
(2)对于前台人员
①实现客户到店登记信息入住,将信息存入入住信息表中;
②实现客户sab的预约功能,提前记录到预约表中,客户到店之后将客户信息存入入住表,同时删除预约表中的信息;
③客户退房时,将客户从入住信息表中移除;
④根据生成的用户结账报表收取额外支付金钱,并且记录收入;
⑤查看客户简略信息。
(5)对于管理人员
①实现房间增添以及房间信息、房价的更改;
②账单查询;
③查询客户详细信息(根据姓名、电话、身份证号、房间号);
④查询员工信息;
⑤修改员工信息。
二、数据库设计
1.需求分析
①办理入住:前台人员录入客户的姓名、性别、身份证号、联系电话、预约状态、入住时间、房间号等信息。
②登记、预约操作:录入客户的姓名、联系电话、需要的房间类型、预计到店时间;对于预约之后到店登记,还需记录身份证号和实际入住时间。
③退房操作:输入客户的房间号、退房时间,返回计算出的额外消费和总计消费,通过支付宝或微信扫码支付,也可直接现金支付。
④客户信息查询:普通员工和管理员均可查询客户的姓名、性别、身份证号、联系电话、预约状态、入住时间、房间号等信息。
⑤员工信息管理:管理员可以查询所有员工的编号、姓名、性别、职位、工资等信息,并可以对这些信息进行修改操作。
⑥房间信息管理:管理员登陆管理员账号可查询房间住房信息、房间状态,可以进行修改价钱、类型、增减客房等操作。
⑦商品服务管理:普通员工查询商品并根据客户需求,选择商品的类型、数量,对客户进行服务;管理员不仅可以查询商品,还可以增减商品,修改商品价格等。
2.概念结构设计
使用E-R图来描述概念模型,分E-R图如下所示:
员工-入住客户分ER图:
员工-房间分E-R图:
额外消费-客户入住房间号分E-R图:
额外消费-已入住房间号分E-R图:
商品-价格分E-R图:
管理员-额外消费分E-R图:
管理员-房间号分E-R图:
管理员-收支分E-R图:
管理员-客户分E-R图:
管理员-员工分E-R图:
将各个分E-R图消除冗余,合并成合E-R图:
2.逻辑结构设计
根据转换规则得到十种关系模式,其中第一个属性为主码:
①房间信息(房间号,房间类型,价格,房间状态(是否入住))
②员工信息(工号,姓名,性别,身份证号,电话,职位,薪资,密码)
③顾客-房间信息(主键自增,姓名,电话,房间号,预约时间)
④入住顾客信息(主键自增,姓名,性别,身份证号,电话,入住时间,办理工号(外键),房间号(外键))
⑤入住过的顾客信息(主键自增,姓名,性别,身份证号,电话,入住时间,入住办理工号,退房时间,退房办理工号,房间号)
⑥管理员信息(工号,账户,密码)
⑦入住顾客额外消费(房间号,果汁,毛巾,烟)
⑧入住过顾客的消费信息(房间号,果汁,毛巾,烟)
⑨商品价格信息(主键自增,商品名,价格)
⑩入住顾客信息(主键自增,房间号,消费日期,总消费)
3.数据表设计
三、应用系统设计
本系统角色分为管理员、普通员工(前台人员)。通过MVC思想进行分层设计,总体结构设计如下图:
其中,管理员模块中信息更改包括房屋更改和商品更改两个模块,两个模块下分别又下设四个模块,为针对房屋和商品的增删改查。管理员模块中员工管理包括增加员工信息、删除员工信息、改变员工信息、查询员工信息四个模块。普通员工模块中登记入住又分为预约登记和到店登记两个模块。
四、安装使用说明
1.环境部署
方式一:
第一步:正确安装MySQl,版本号>=5.7.0。
第二步:正确安装Python,版本号>=3.6.0。
第三步:正确安装PyCharm,并连接python。
第四步:使用MySQL打开‘数据库文件’文件夹下MySQL文件,使用PyCharm打开Hotel_Management_System项目。
第五步:安装tkinter,pymysql功能包。
第六步:运行酒店服务管理系统.py文件。
第七步:登录账号。其中,管理员用户账号:111 密码:1 普通用户账号:001或002或003 密码:123456
方式二:
第一步:第一步:正确安装MySQl,版本号>=5.7.0。
第二步:使用MySQL打开‘数据库文件’文件夹下MySQL文件。
第三步:运行‘dist\酒店服务管理系统’目录下‘酒店服务管理系统.exe’
第四步:登陆账号:其中,管理员用户账号:111 密码:1 普通用户账号:001或002或003 密码:123456
2.文件解析
①Hotel_Management_System文件夹:
datebase_control.py:对数据库进行操作的文件
windows_control.py:界面进行布局的文件
酒店服务管理系统.py:主函数
test.py:代码测试文件
build:打包过程中的缓存文件
dist:存放的打包结果
酒店服务管理系统.spec:封装参数配置文件
hotel.png:登录界面背景图
icon.ico:可执行文件的logo
②数据库文件夹:
MySQL.sql:建立数据库的文件
③说明书文件夹:
安装使用说明书.word:安装使用说明书
④课程报告文件夹:
课程报告.word:课程报告
3.实现效果
登陆界面:
管理员:
普通员工:
总结
以上为建立酒店服务管理系统的内容,如有需要代码请联系QQ:745384235
参考文献:
https://blog.csdn.net/xiao_xiao_lan/article/details/111413572