酒店管理系统设计毕业设计.docx
- 文档编号:12636591
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:26
- 大小:97.70KB
酒店管理系统设计毕业设计.docx
《酒店管理系统设计毕业设计.docx》由会员分享,可在线阅读,更多相关《酒店管理系统设计毕业设计.docx(26页珍藏版)》请在冰豆网上搜索。
酒店管理系统设计毕业设计
酒店管理系统设计
张平
(德州学院物理系,山东德州253023)
摘要本论文针对酒店管理系统的简单的功能进行设计,以求达到对酒店的简单管理。
共分为三章。
第一章主要阐述了该应用系统的设计思路,其中包括系统的功能目标、功能模块的设计图以及应用系统的开发工具;第二章主要讲述数据库设计过程,包括数据库的需求分析、概念结构设计以及逻辑结构设计;第三章是整个论文的主体部分,主要介绍各个主体模块的功能实现以及源程序代码。
本论文的设计过程中,应用了图形界面的应用程序开发环境PowerBuilder9.0以及SQLServer7作为后台数据库支持,通过PB9.0与数据库的连接完成了对数据库现存数据的操作,从而实现了对整个酒店系统的管理。
关键词酒店管理系统;功能模块;数据库;PowerBuilder9.0;SQL;Server7
绪论
在科技高速发展的今天,一切的商业行为都能跟计算机搭上边。
这不仅仅是为了不落后于时代,不被主流所淘汰,更是为了更好的借助于计算机来实现更大的商业利益。
随着更多的人接受电子商务,以及年轻一代享受电脑带来的方便、迅速,酒店行业也不例外的加入了电子商务时代的行列。
现代化的酒店是集客房、餐饮、通讯、娱乐,商务文化及其他各种服务与设施为一体化的消费场所。
酒店在正常的运营中需要对客房资源、顾客信息、结算信息等进行管理,但是酒店组织庞大,服务项目多,信息量大,要想提高效率,降低成本,提高服务质量和管理水平,进而促进经济效益,必须借助计算机来进行现代化的信息管理。
酒店管理系统正是为此而设计的。
1系统的功能框架设计
1.1功能目标
该酒店管理系统主要有两大功能模块,即:
客房部管理和餐饮部管理。
1.1.1客房管理
该模块主要用来实现客户登记,并打印入住单。
根据客人的需求查询房间,进而选定房间,并填写客人信息,完成登记,最后打印入住单。
要求实现查询客房状态(占用或空房)、显示客房类型(标准间、单人间、豪华间等)和查看已入住客户信息等功能。
1.1.2餐饮管理
餐饮管理分菜单、点菜、结帐、报表、菜谱编辑等。
下面列举一些最主要的功能:
菜单:
列出常用菜名称、编号、所属类别、定价等内容。
点菜:
记录点菜单、定价、台号、就餐人数、就餐人员类别、就餐时间、服务员等。
结帐:
记录结算信息。
1.1.3系统维护
该功能模块为用户提供维护、设置功能。
在相应的设置模块中用户可以自行设置系统的数据,设置完成以后该设置立刻会在系统中生效,并在下一次的使用中反映出来。
在这里,数据维护非常重要的,它的作用是将系统中用户选择的数据进行初始化,一旦操作完成,系统中原有的数据将会被全部删除,所以需慎重使用。
1.2功能模块图
酒店管理系统的功能模块如图1-1。
图1-1酒店管理系统功能模块图
1.3开发工具选择
1.3.1前台开发工具的选择
该酒店管理系统前端开发工具为PowerBuilder9.0,PowerBuilder是一个图形界面的应用程序开发环境。
在Client/Server结构的应用中,PowerBuilder具有描述多个数据库连接与检索的前端能力。
尤其是PowerBuilder能从大多数流行的RDBMS中存取数据,且不管数据存放在什么地方。
另外,各种应用程序又可以独立于RDBMS,因为PowerBuilder可以与数据库的标准操纵语言SQL(结构化查询语言)进行通信。
PowerBuilder相对于其他应用程序开发环境来说,可使开发人员的工作更快、成本更低、质量更高、功能更强。
PowerBuilder为应用开发提供了全面支持,可以概括为如下五点。
Ø事件驱动应用程序
ØPowerScript语言与函数
Ø面向对象的编程
Ø跨平台开发
Ø与数据库的连接性
1.3.2数据库OS平台的选择
该酒店管理系统选用sqlserver7作为后台数据库支持。
2数据库设计
2.1数据库需求分析
根据对客房部的功能需求分析,画出系统的数据流图,如图2-1。
图2-1客房部数据流图
通过对酒店客房部管理的内容和数据流程分析,设计的数据项和数据结构如下:
客房信息:
包括的数据项有房间号、房间类型、房间状态。
客房登记信息:
包含数据项有姓名、性别、职业、工作单位、联系电话、证件名称、证件号码、住址、国籍、房间号、登记时间、预付金、折扣、备注。
客房结帐信息:
包含数据项有房间号、姓名、性别、证件名称、证件号、国籍、退房时间、住宿天数、预付金、住宿费、其他费用、总费用、折扣、收银员、备注。
客房预定信息:
包含数据项有房间号、预定人姓名、证件名称、证件号码、押金、联系电话、操作员、备注。
根据对餐饮部的功能需求分析,画出系统的数据流图,如图2-1。
图2-2客房部数据流图
餐桌信息:
桌号、状态。
菜单信息:
包括的数据项有菜名、所属类别、所属子类、价格、折扣、实收价格、备注。
菜统计:
菜名、份数、金额、桌号、就餐时间、是否结帐。
就餐结帐:
桌号、就餐人数、就餐时间、结帐时间、服务员名、就餐费、其他费用、总费用、支付方式、收银员、备注。
定餐信息:
桌号、定餐人姓名、联系电话、定餐时间、就餐时间、备注。
2.2数据库概念结构设计
根据上面设计,规划出实体ER图有:
客房实体、客户实体、开房登记实体、退房结帐实体。
图2-3客房实体ER图
图2-4客户实体ER图
图2-5开房登记实体ER图
图2-6退房结帐实体ER图
图2-7菜单信息实体ER图
图2-8就餐结帐实体ER图
图2-9菜统计实体ER图
图2-10定餐信息实体ER图
2.3数据库逻辑结构设计
表2-1客房类型(kf_leixing)
字段名
字段类型
字段长度
可否为空
说明
Kf_leixing
varchar
10
Notnull
客房类型(主键)
Kf_jage
Numeric
8.2
Null
客房价格
Kf_mzzongshu
integer
Null
每种客房总数
Kf_beizhu
varchar
100
Null
备注
表2-2房间信息(kf_xinxi)
字段名
字段类型
字段长度
可否为空
说明
Kf_no
Varchar
6
Notnull
房间号(主键)
Kf_leixing
Varchar
10
Null
客房类型(外键)
Kf_kongfou
Varchar
2
Null
是否空闲
表2-3客房登记信息(kf_dengjixinxi)
字段名
字段类型
字段长度
可否为空
说明
Name
Varchar
10
Notnull
登记人姓名
Sex
Varchar
2
Null
登记人性别
Zhiye
Varchar
40
Null
职业
Gzdanwei
Varchar
40
Null
工作单位
Tel
Varchar
12
Null
联系电话
Zhengjianname
Varchar
10
Null
证件名称
Zhengjianhao
Varchar
20
Null
证件号码
Zhuzhi
Varchar
40
Null
住址
Guoji
Varchar
10
Null
国籍
Kf_no
Varchar
6
Null
房间号(外键)
Dengjishijian
Timestamp
Null
登记时间
Yufujin
Numeric
6.2
Null
预付金
zhifufangshi
Varchar
20
Null
支付方式(外键)
zhekou
Numeric
2.1
Null
折扣
beizhu
Varchar
100
Null
备注
表2-4客房预定(kf_yuding)
字段名
字段类型
字段长度
可否为空
说明
Id
Varchar
10
Notnull
Id号
Kf_no
Varchar
3
Null
客房号
Name
Varchar
10
Null
预定人姓名
Zhengjianname
Varchar
20
Null
证件名
Zhengjianhao
Varchar
20
Null
证件号
Yajin
Numeric
9
Null
押金
Lianxitel
Varchar
12
Null
联系电话
Caozuoyuan
Varchar
10
Null
操作员
beizhu
Varchar
512
Null
备注
表2-5客房结帐(kf_jiezhang)
字段名
字段类型
字段长度
可否为空
说明
Kf_no
Varchar
6
Notnull
房间号(主键)
Name
Varchar
10
Notnull
姓名
Sex
Varchar
2
Null
性别
Zhengjianname
Varchar
10
Null
证件名称
Zhengjianhao
Varchar
20
Null
证件号
Guoji
Varchar
10
Null
国籍
Tuifangdate
Timestamp
Null
退房时间
Yufujin
Numeric
6.2
Null
预付金
Zhekou
Numeric
2.1
Null
折扣
Zhusutianshu
integer
3
Null
住宿天数
Zhusufei
Numeric
6.2
Null
住宿费
Qitafei
Numeric
6.2
Null
其他费用
Zongfei
Numeric
6.2
Null
总费用
Xujiaofei
Numeric
6.2
Null
续交费用
Shouyinyuan
Varchar
10
Null
收银员
beizhu
Varchar
100
Null
备注
表2-6菜单信息(caidan1)
字段名
字段类型
字段长度
可否为空
说明
cainame
Varchar
10
Notnull
菜名
class
Varchar
20
Null
所属类别
subclass
Varchar
20
Null
所属子类
Jiage
Numeric
11.2
Null
价格
Zhekou
Numeric
4.2
Null
折扣
Shishoujiage
Numeric
11.2
Null
实收价格
beizhu
Varchar
512
Null
备注
表2-7就餐结帐(jc_jiezhang)
字段名
字段类型
字段长度
可否为空
说明
zhuohao
varchar
5
Notnull
桌号
jiucanrenshu
int
2
Null
就餐人数
jiucanshijian
Timestamp
Null
就餐时间
jiezhangshijian
Timestamp
Null
结帐时间
Fuwuyuan_no
Varchar
10
Null
服务员名
jiucanfei
Numeric
9.2
Null
就餐费
Qitafei
Numeric
9.2
Null
其他费用
Zongfeiyong
Numeric
9.2
Null
总费用
zhifufangshi
Varchar
20
Null
支付方式(外键)
Shouyinyuan
Varchar
10
Null
收银员
Beizhu
Varchar
1000
Null
备注
表2-8定餐信息(dc_xinxi)
字段名
字段类型
字段长度
可否为空
说明
Zhu_no
Varchar
5
Notnull
桌号
Name
Varchar
10
Null
定餐人姓名
tel
Varchar
12
Null
联系电话
Dizhi
Varchar
60
Null
地址
Dctime
Timestamp
Null
定餐时间
Jctime
Timestamp
Null
就餐时间
Beizhu
varchar
512
Null
备注
表2-9餐桌信息(canzhuoinfo)
字段名
字段类型
字段长度
可否为空
说明
Zhuohao
varchar
5
Notnull
桌号(主键)
zhuangtai
Varchar
10
Null
状态
表2-10菜统计(cai_tongji)
字段名
字段类型
字段长度
可否为空
说明
Id
Varchar
10
Notnull
(主键)
Caiming
Varchar
30
Null
菜名
Fenshu
Int
Null
份数
Jine
Numeric
9
Null
金额
Zhuohao
Varchar
5
Null
桌号
Jiucantime
Datetime
Null
就餐时间
shifoujiezhang
varchar
4
Null
是否结帐
表2-11就餐登记
字段名
字段类型
字段长度
可否为空
说明
id
varchar
5
Notnull
id号
zhuohao
Varchar
5
Notnull
桌号
Jiucanren_name
Varchar
10
Null
姓名
renshu
Varchar
2
Null
人数
jiucantime
datetime
Null
就餐时间
Fuwuyuan
Varchar
10
Null
服务员姓名
3系统实现
3.1客房登记模块
该系统模块完成的功能主要为用户登记并打印入住单发票,是客房管理系统的重要模块之一。
展现给用户的两个界面,即两个窗口分别为w_kf_dengji和w_kf_dengji_ruzhudan和以上窗口相关连还有三个数据窗口和四个表,分别为dw_kf_all,dw_kf_zhuangtai,dw_kf_rzxx;kf_dengjixinxi,kf_leixing,kf_xinxi,kf_jiezhang。
其实现登记功能的界面如图3-1所示。
图3-1实现登记功能的界面
该界面主要分为两大区域,即客房状态区和用户注册区。
在客房状态区的左上角的下拉列表框中显示的是所有可供选择的房间的类别,根据住客需求来选择某类房间时,在下拉菜单选项中“空房间”,即可进行检索。
检索结果在左边的下半部(数据窗口dw_1)中显示出来,其中包括房号,类别,价格。
具体实现代码如下:
ifddlb_1.text='所有可供'then
ddlb_1.text="所有可供"
dw_1.dataobject="dw_kf_all"
dw_1.settransobject(sqlca)
dw_1.retrieve("空房间")
dw_1.selectrow(0,false)
else
dw_1.dataobject="dw_kf_zhuangtai"
dw_1.settransobject(sqlca)
dw_1.retrieve(ddlb_1.text,"空房间")
dw_1.selectrow(0,false)
endif
在dw_1中双击某一行时,该行相关信息将显示在该窗口的右半部分,即用户注册区。
实现代码为:
sle_1.text=dw_1.GetItemstring(dw_1.getrow(),1)
sle_2.text=dw_1.GetItemstring(dw_1.getrow(),2)
sle_3.text=string(dw_1.GetItemnumber(dw_1.getrow(),3))
当成功的完成了用户信息的注册后,即点击cb_1按扭则具有该用户信息的空房间记录将被修改为入住房,则在下一次检索空房间记录时,此房间信息将不被显示。
该过程用insert语句将用户的信息插入到表kf_dengjixinxi和kf_jiezhang中。
具体实现代码如下:
selectcount(id)into:
numfromkf_dengjixinxi;
bb=string(num+1)
insert
into
kf_dengjixinxi
values(:
bb,:
sle_9.text,:
sle_8.text,:
sle_6.text,:
sle_5.text,:
sle_7.text,:
ddlb_2.text,:
sle_12.text,:
sle_15.text,:
sle_14.text,:
sle_1.text,:
dt,:
cc,:
ddlb_3.text,:
dd,:
mle_1.text,:
sle_16.text,'否');
updatekf_xinxisetkf_zhuangtai='入住房'wherekf_no=:
sle_1.text;
selectcount(id)into:
num1fromkf_jiezhang;
jz_num=string(num1+1)
insert
into
kf_jiezhang(id,kf_no,name,sex,zhengjianname,zhengjianhao,guoji,yufujin,shouyinyuan,beizhu,shifoujiezhang)
values(:
jz_num,:
sle_1.text,:
sle_9.text,:
sle_8.text,:
ddlb_2.text,:
sle_12.text,:
sle_14.text,:
cc,:
sle_16.text,:
mle_1.text,'否');
commit;
dw_1.dataobject="dw_kf_all"
dw_1.settransobject(sqlca)
dw_1.retrieve("空房间")
sle_4.setfocus()
sle_13.text=string(datetime(today(),now()))
此窗口中用游标实现数据窗口取数据的代码为:
stringch
intshu,i
DECLAREkf_lxCURSORFOR
SELECTkf_leixing
FROMkf_leixing;
selectcount(kf_leixing)
into:
shu
fromkf_leixing;
openkf_lx;
fori=1toshu
fetchkf_lxinto:
ch;
ddlb_1.additem(ch)
next
closekf_lx;
ddlb_1.text="所有可供"
dw_1.dataobject="dw_kf_all"
dw_1.settransobject(sqlca)
dw_1.retrieve("空房间")
dw_1.selectrow(0,false)
ifdw_1.rowcount()<1then
messagebox("","暂时没有空房间!
")
cb_1.enabled=false
else
sle_4.setfocus()
sle_13.text=string(datetime(today(),now()))
endif
当点击cb_2(代码为:
open(w_kf_dengji_ruzhudan))时显示的是客房入住单的界面,如图3-2。
图3-2客房入住单界面
此窗口中实现数据窗口取数据代码为:
dw_1.settransobject(sqlca)
dw_1.retrieve(rzxx_kfno1,'否')
完成的功能为打印发票单据。
3.2就餐登记模块
客人在就餐前,一定要定下菜,主食和酒水等,即就餐登记,所以该系统包含了就餐登记,也就是开单的功能。
该功能所涉及的数据库表为:
菜单信息表(candan1)、菜统计表(cai_tongji)。
实现该功能的第一个界面如图3-3。
图3-3第一个界面
该界面主要分两个区域,左边是桌号图标显示区,右边是桌号图标调整区。
具体操作过程为:
选中一个桌号后,点击确定按钮即可显示该餐桌的详细信息,是否可用。
确定的代码如下:
stringzhuohao,zhuozt
currentbnum=integer(left(currentitem.label,3))
zhuohao=string(currentbnum)
SELECTcanzhuoinfo.zhuangtai
INTO:
zhuozt
FROMcanzhuoinfo
WHEREcanzhuoinfo.zhuohao=:
zhuohao;
ifzhuozt="结帐"then
UPDATEcanzhuoinfo
SETzhuangtai='开单'
WHEREcanzhuoinfo.zhuohao=:
zhuohao;
open(w_cy_kaidan)
close(parent)
else
messagebox("抱歉","对不起,此桌已被占用!
")
endif
实现该功能的第二个界面如图3-4。
图3-4第二个界面
该界面主要分两个区域,左边(数据窗口dw_1)显示所有菜的名称、价格、折扣。
右边(数据窗口dw_2)显示桌的详细信息,其中包括该桌所点的所有菜的名称、数量、金额以及合计多少钱等。
要添加菜,只需双击左下方的数据窗口中相应的菜即可,或选中该菜,单击添加按钮即可添加。
要删除菜,只需在右侧窗口中选中要删除的菜,单击删除按钮即可。
该功能实现的具体思路是:
在窗口打开代码中检索出数据窗口dw_1、dw_2的数据,在窗口打开后就将菜谱信息显示出来。
添加菜时,首先检索表cai_tongji中是否有要添加的菜的信息,如果有,用update语句将该菜的份数加一,金额增加相应的数目,如果没有则在cai_tongji表中用insert语句插入该菜的信息,包括菜的名称、数量、金额、所属桌号等。
然后数据窗口dw_2重新检索数据,即所添加的菜显示在数据窗口dw_2中。
在下拉列表框中使用了游标技术,代码如下:
stringch
int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 酒店 管理 系统 设计 毕业设计