数据库系统课设——基于python+pyqt5+mysql的酒店管理系统(可直接运行)--GUI编程
几个月之前写的一个项目,通过这个项目,你能学到关于数据库的触发器知识,python的基本语法,python一些第三方库的使用,包括python如何将前后端连接起来(界面和数据),还有界面的设计等等。希望大家能从项目中学到东西。
一,项目背景
1,实验设计简述
宾馆管理系统通过提供顾客和员工信息之间的关系建立该系统,其中包括员工管理功能,出租管理功能,客户管理功能,订单管理功能,报表和维护功能,登录功能。该系统可以通过客户信息的查找 快速找到该客户的房间信息。还包括对客户信息的增加、删除、修改、查询等以及员工信息的增加、删除、修改、查询
(1)宾馆有员工,员工员工信息查看,查看订单权限,查看房号,房型。
(2)宾馆有各种标准的房间。房间数据包括房间号、房间级别、房间价位及房间的状态(是否已经有客人)。房间号唯一表示一个房间,房间级别决定房间价位。房间有多种级别,分别为单人间、标准间、豪华间、商务间、行政间。房间状态表示此房间是否可以预定、入住或者转房。
基本功能实现:
(1)房间管理。
(2)客人预定、退订客房管理。
(3)客人入住、店内消费管理。
(4)结算管理。
(5)实现分类查询。
(6)输出相应的数据报
描述每个业务的主要功能。
1、房间管理:存储房间信息数据,房间号,客户可以查看房型(单人间,标准间,豪华间、商务间、行政间),房间价位,房间状态(有无客人,无客人:房间可以预定,房间可以转入。有客人:客人能退房,转房),房间对应楼层。
2、客户管理:客户分为个人预约客户和团队预约客户(预约时间,预约客户号),个人入住客户和团队入住客户(入住时间,入住客户号),还有换房功能。
3、员工管理:可以添加员工(姓名,性别,员工号,职位,入职时间),删除员工,修改员工,查询员工信息。可以查看所有订单,对房间进行增删改查操作(房间号,房型,价格)。
4、报表和维护:数据备份(导出数据,导入数据,导出数据表到表格),报表。
5、订单管理功能:订单记录报表,客户入住的房型(图片说明),支付金额,入住的客户信息(客户号,入住时间,退房时间)
6、登陆功能:登陆(员工(账号密码)登陆/客户(账号密码)登陆)密码找回功能,修改密码功能。
2,根据功能分析和列举涉及的数据项。
- booking_client个人预定表:(cid客户号,rid房间号,star_time入住时间,end_time退房时间,booking_time预定时间,remark备注)
- booking_team团队预定表:(tid团队号,rid房间号,star_time入住时间,end_time退房时间,booking_time预定时间,remark备注)
- checking_clint个人入住表:(rid房间号,cid客户号,star_time入住时间,end_time退房时间,total_price总价格,check_in_sid办理入住的员工编号,remark备注)
- checking_team团队入住表:(rid房间号,tid团队好,star_time入住时间,end_time退房时间,total_price总价格,check_in_sid办理入住的员工编号,remark备注)
- client客户表:(cname姓名,cid客户号,cphone电话号码,cage年龄,csex性别,register_sid注册员工号,accomodation_times入住次数,register_time注册时间)
- hotel order订单表:(id用户标识,ordertype订单形式,start_time预定时间,rid房间号,pay_type支付方式,money支付价格,remark备注,order_time订单时间,register_sid注册员工时号)
- room房间表:(rid房间号,rtype类型,rstorey楼层,rprice价格,rdesc房间状态,rpic房间图片)
- staff员工表:(sid员工号,sname姓名,ssex性别,stime登记入职时间,susername账户号,spassword密码,srole权限,sidcard身份证,sphone手机号)
9、team团队表:(tname名称,tid团队好,tphone电话号码,check_in_sid登陆员工号,accomodation_time入住次数,register_time注册时间)
二,项目具体实现
1、数据项的简要描述。
1、booking_client客户个人预定表 (cid varchar(255) NOT NULLrid varchar(255) NOT NULLstart_time date DEFAULT NULLend_time date DEFAULT NULL)
2、booking_team团队预定表(tid varchar(255) NOT NULLrid varchar(255) NOT NULLstart_time date DEFAULT NULLend_time date DEFAULT NULLbooking_time timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)remark varchar(255) DEFAULT NULL
3、checkin_client个人入住表 (rid 房间号 varchar(255) NOT NULLcid客户号 varchar(255) NOT NULLstart_time入住时间 date DEFAULT NULLend_time退房时间 date DEFAULT NULLtotal_price总价格 varchar(255) DEFAULT NULLcheck_in_sid办理入住的员工编号 varchar(255) DEFAULT NULLremark备注 varchar(255) DEFAULT NULL)
4、checkin_team团队入住表(rid房间号 varchar(255) NOT NULLtid 客户号 varchar(255) NOT NULLstart_time入住时间 date DEFAULT NULLend_time退房时间 date DEFAULT NULLtotal_price总价格 varchar(255) DEFAULT NULL,check_in_sid办理入住的员工编号 varchar(255) DEFAULT NULL,remark备注 varchar(255) DEFAULT NULL)
5、 client客户表 (cname姓名 varchar(255) NOT NULLcid客户号 varchar(255) NOT NULLcphone电话号 varchar(255) DEFAULT NULLcage年龄 varchar(255) NOT NULLcsex性别 varchar(255) DEFAULT NULLregister_sid注册员工号 varchar(255) DEFAULT NULLaccomodation_times入住次数 int(11) DEFAULT NULL)register_time注册时间 timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
6、hotelorder订单表 (id 用户标识 varchar(255) NOT NULLordertype订单形式 varchar(255) NOT NULLstart_time入住时间 date NOT NULLend_time退房时间 date NOT NULLrid房间号 varchar(255) NOT NULLpay_type支付方式 varchar(255) DEFAULT NULLmoney缴费 varchar(255) DEFAULT NULLremarkv备注 varchar(255) DEFAULT NULLorder_time订单时间 timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMPregister_sid注册员工编号 varchar(255) DEFAULT NULL)
7、room房间表 (rid房间号 varchar(255) NOT NULLrtype房间类型 varchar(255) NOT NULLrstorey楼层 varchar(255) NOT NULLrprice价格 varchar(255) NOT NULLrdesc房间状态 varchar(255) DEFAULT NULLrpic房间图片 varchar(255) DEFAULT NULL)
8、 staff员工表 (sid 员工号 varchar(255) NOT NULLsname 姓名 varchar(255) NOT NULLssex性别 varchar(255) DEFAULT NULLstime入职时间 date DEFAULT NULLsusername账号 varchar(255) NOT NULLspassword 密码 varchar(255) NOT NULLsrole 权限 varchar(255) NOT NULLsidcard 身份证号 varchar(255) NOT NULLsphone 手机号码 varchar(255) DEFAULT NULL)
9、team 团队表(tname名字 varchar(255) NOT NULLtid团队号 varchar(255) NOT NULLtphone电话号码 varchar(255) DEFAULT NULLcheck_in_sid 登记员工编号 varchar(255) DEFAULT NULLaccomodation_times 入住次数 int(11) DEFAULT NULLregister_time注册时间 timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
2、安全性分析
数据安全是指在数字信息的整个生命周期中保护数字信息免遭未经授权的访问并抵御损坏、失窃等风险,为此,我们设置了权限访问,只有输入正确的账号密码才能查看系统中的相关信息,非管理员登录无法得到系统的信息。此外,我们还可以通过输入的账号密码匹配查看相应的数据报表和客户员工个人信息,或者修改需要变动的数据。这也使得信息不容易被泄露出去,增加了数据的可改性。为防止因管理员想要修改密码,我们还设置了在登录页面可修改密码功能,加强了数据的安全性。为了防止人为操作失误使得原数据丢失、软件BUG造成数据丢失以及硬件故障造成数据库数据丢失等问题,我们设置了数据库备份,用来找回丢失的数据信息。尤其是客户的预订信息、入住信息以及数据报表的信息,在每添加一名新客户或新团体时,我们的数据库便会进行更新,这也有利于我们进行数据核对。使用数据库备份也有利于相同数据库用于新环境的搭建以及开发测试环境数据库的搭建。围绕数据安全、数据备份和其他等角度,描述系统可采取的安全策略和风险控制策
3、给出关系关系模式,标注关系模式的主码和外码。
1、booking_client个人预定表:(cid,rid,star_time,end_time,booking_time,remark)
主码:(cid,rid)
外码:(cid) REFERENCES client (cid)
(rid) REFERENCES room (rid)
范式级别:1NF
2、booking_team团队预定表:(tid,rid,star_time,end_time,booking_time,remark)
主码:(tid,rid)
外码:(tid) REFERENCES team (tid)
(rid) REFERENCES room (rid)
范式级别:1NF
3、checking_clint个人入住表:(rid,cid,star_time,end_time,total_price,check_in_sid,remark)
主码:(rid,cid)
外码: (rid) REFERENCES room (rid)
(cid) REFERENCES client (cid)
(check_in_sid) REFERENCES staff (sid)
范式级别:1NF
4、checking_team团队入住表:(rid,tid,star_time,end_time,total_price,check_in_sid,remark)
主码:(rid,tid)
外码:(rid) REFERENCES room (rid)
(check_in_sid) REFERENCES staff (sid)
(tid) REFERENCES team (tid)
范式级别:1NF
5、clien客户表:(cname,cid,cphone,cage,csex,register_sid,accomodation_times入,register_time)
主码:(cid)
外码:(register_sid) REFERENCES staff(sid)
范式级别:3NF
6、hotelorder订单表:(id,ordertype,start_time,rid,pay_type,money,remark,order_time,register_sid)
主码:(id,start_time,end_time,rid,ordertype)
外码:(rid) REFERENCES room(rid)
范式级别:1NF
7、room房间表:(rid,rtype,rstorey,rprice,rdesc,rpic)
主码:(rid)
外码:无
范式级别:BCNF
8、staff员工表:(sid,sname,ssex,stime,susername,spassword,srole,sidcard,sphone)
主码:(sid)
外码:无
范式级别:BCNF
9、team团队表:(tname,tid,tphone,check_in_sid,accomodation_time,register_time)
主码:(tid)
外码:(check_in_sid) REFERENCES staff (sid)
范式级别:3NF
4,全局ER图
5,数据安全性
数据安全是指在数字信息的整个生命周期中保护数字信息免遭未经授权的访问并抵御损坏、失窃等风险,为此,我们设置了权限访问,只有输入正确的账号密码才能查看系统中的相关信息,非管理员登录无法得到系统的信息。此外,我们还可以通过输入的账号密码匹配查看相应的数据报表和客户员工个人信息,或者修改需要变动的数据。这也使得信息不容易被泄露出去,增加了数据的可改性。若用户想要修改密码,我们还设置了在登录页面可修改密码功能,加强了数据的安全性。为了防止人为操作失误使得原数据丢失、软件BUG造成数据丢失以及硬件故障造成数据库数据丢失等问题,我们设置了数据库备份,用来找回丢失的数据信息。尤其是客户的预订信息、入住信息以及数据报表的信息,在每添加一名新客户或新团体时,我们的数据库便会进行更新,这也有利于我们进行数据核对。使用数据库备份也有利于相同数据库用于新环境的搭建以及开发测试环境数据库的搭建。
三,数据库的创建
图太多了,都放出来就有点水篇幅了,如果想看,就点赞收藏关注,然后后台私信我就好啦。
四,GUI界面呈现
也是一样,没有将所有界面都展示出来,也只是展示了一部分,如果想看后续,就点赞收藏关注,然后后台私信我就好啦。
1,修改密码界面
2,查看个人信息,员工可登录进行查看
3,增加员工并填入员工基本信息
4,查询客房信息
5,查询报表:出租率和订单量,以及客户和员工的相关信息
6,数据库风险预防措施:数据备份,并在电脑生成该备份文件
7,宾馆管理系统主界面
五,代码文件
如果需要源码,请点赞收藏关注,然后后台私信我就好啦!!!
相关文章:

数据库系统课设——基于python+pyqt5+mysql的酒店管理系统(可直接运行)--GUI编程
几个月之前写的一个项目,通过这个项目,你能学到关于数据库的触发器知识,python的基本语法,python一些第三方库的使用,包括python如何将前后端连接起来(界面和数据),还有界面的设计等…...
《C和指针》笔记9: typedef
C语言支持一种叫作typedef的机制,它允许你为各种数据类型定义新名字。typedef声明的写法和普通的声明基本相同,只是把typedef这个关键字出现在声明的前面。例如,下面这个声明: char *ptr_to_char;把变量ptr_to_char声明为一个指向…...
《C和指针》笔记6:gets/puts/scanf/printf/getchar函数用法
本博客可以了解一些gets/puts/scanf/printf/getchar函数的基本用法。 文章目录 1. gets函数2. puts函数3. scanf函数4. printf函数5. getchar函数6. putchar函数 1. gets函数 gets函数从标准输入读取一行文本并把它存储于作为参数传递给它的数组中。一行输入由一串字符组成&a…...

智慧课堂学生行为检测评估算法
智慧课堂学生行为检测评估算法通过yolov5系列图像识别和行为分析,智慧课堂学生行为检测评估算法评估学生的表情、是否交头接耳行为、课堂参与度以及互动质量,并提供相应的反馈和建议。智慧课堂学生行为检测评估算法能够实时监测学生的上课行为࿰…...

rainbond云原生应用管理平台部署
rainbond简介 rainbond 是 一个 开源的Kubernetes 云原生应用管理平台。 Rainbond 核心100%开源,Serverless体验,不需要懂K8s也能轻松管理容器化应用,平滑无缝过渡到K8s,是国内首个支持国产化信创、适合私有部署的一体化应用管理…...

jemter连接数据json断言
文章目录 一、jmeter连接数据库1、加载JDBC驱动2、连接数据3、SQL Query的Query Type使用方法:4、Variable Name使用方法:5、Result variable name使用方法: 二、Json响应断言1、添加 》 断言 》 JSON断言2、JSON断言界面参数说明:…...

JavaFX 加载 fxml 文件
JavaFX 加载 fxml 文件主要有两种方式,第一种方式通过 FXMLLoader 类直接加载 fxml 文件,简单直接,但是有些控件目前还不知道该如何获取,所以只能显示,目前无法处理。第二种方式较为复杂,但是可以使用与 fx…...
(三)Redis——Set
SADD key value SMEMBERS 127.0.0.1:6379> SADD set aaa 1 127.0.0.1:6379> SMEMBERS set aaa 127.0.0.1:6379> SADD set aaa 0 127.0.0.1:6379> SMEMBERS set aaaSISMEMBER 判断 aaa 是否在 set 中 127.0.0.1:6379> SISMEMBER set aaa 1 127.0.0.1:6379>…...
Vue组件通信方式详解(全面版)
在Vue应用开发中,组件通信是一个重要的话题。不同的组件可能需要在不同的情况下进行数据传递和交互。Vue提供了多种方式来实现组件通信,每种方式都有其适用的场景。本文将详细介绍Vue中实现组件通信的各种方式,并为每种方式提供通俗易懂的代码…...

什么是Promise对象?它的状态有哪些?如何使用Promise处理异步操作?以及 async、await
聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ Promise对象⭐ 创建Promise对象⭐ 使用Promise处理异步操作⭐ async、await⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅…...
Android 之自定义绘制一
绘制的基本要素 onDraw(Canvas) 绘制方法 Canvas 绘制工具 Paint 调整风格 粗细等 坐标系: x y ,3D 会有z轴,x 左到右,y 上至下,与数学中y颠倒 尺寸单位: 布局中 dp ,sp ,代码中 px;dp 为了适配不同的尺寸 绘制的关键: draw(Canvas )......(关键类:Paint) Paint.ANTI_A…...

vue3 计算两个表单得到第三个表单数据
<el-formref"ruleFormRef"label-width"150px"label-suffix":":rules"rules":disabled"drawerProps.isView":model"drawerProps.rowData"><el-form-item label"云平台名称" prop"cloudId&…...

Premiere Pro软件安装包分享(附安装教程)
目录 一、软件简介 二、软件下载 一、软件简介 Adobe Premiere Pro,简称PR,是Adobe公司开发的一款非线性视频编辑软件,被广泛应用于电影、电视剧、广告、纪录片、独立电影和音乐会等影视制作领域。它被公认为是行业内的标准工具,…...

springboot设置文件上传大小,默认是1mb
问题排查和解决过程 之前做了个项目,需要用到文件上传,启动项目正常,正常上传图片也正常,但这里图片刚好都小于1M,在代码配置文件里面也写了配置,限制大小为500M,想着就没问题(测试…...

Unity 之transform.LookAt() 调整一个物体的旋转,使其朝向指定的位置
文章目录 总的介绍补充(用于摄像机跟随的场景) 总的介绍 transform.LookAt 是 Unity 引擎中 Transform 组件的一个方法,用于调整一个物体的旋转,使其朝向指定的位置。通常情况下,它被用来使一个物体(如摄像…...

linux————haproxy
一、概述 HAProxy是一个免费的负载均衡软件,可以运行于大部分主流的Linux操作系统上(CentOS、Ubuntu、Debian、OpenSUSE、Fedora、麒麟、欧拉、UOS)。 HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力,具备丰富的功能。HAProxy具…...

【80天学习完《深入理解计算机系统》】第十天 3.3 条件码寄存器【CF ZF SF OF】【set】
专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录) 文章字体风格: 红色文字表示&#…...

使用WSL修改docker文件存储位置
按照以下说明将其重新定位到其他驱动器/目录,并保留所有现有的Docker数据。 首先,右键单击Docker Desktop图标关闭Docker桌面,然后选择退出Docker桌面,然后,打开命令提示符: wsl --list -v您应该能够看到&a…...

软件设计师学习笔记6-存储系统
1.层次化存储体系 1.1层次化存储结构 局部性原理是层次化存储结构的支持 时空局部性:刚被访问的内容,立即又被访问(eg: 循环体 ) 空间局部性:刚被访问的内容,临近的空间很快被访问(eg:数组) 1.2层次化存储结构的分类 DRAM&…...

【TI毫米波雷达笔记】CCS雷达工程内存RAM指定(DATA_SECTION,以IWR6843AOP为例)
【TI毫米波雷达笔记】CCS雷达工程内存RAM指定(DATA_SECTION,以IWR6843AOP为例) 工程建立好以后会有一个cmd文件 此文件描述的是内存map /*----------------------------------------------------------------------------*/ /* r4f_linker…...

接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...