客房管理系统毕业设计范例.docx
《客房管理系统毕业设计范例.docx》由会员分享,可在线阅读,更多相关《客房管理系统毕业设计范例.docx(51页珍藏版)》请在冰豆网上搜索。
客房管理系统毕业设计范例
客房管理系统
学院
专业
班级
学号
姓名
指导教师
教师职称
年
月
日
摘要
【摘要】
随着改革开放步伐的加快,我国服务业取得了巨大的发展。
而宾馆是我国的改革开放过程中起步最早的、开拓发展最快、收效最为明显、市场化程度高的服务行业之一。
而随着信息科技的发展,传统的管理模式逐渐被信息化及数字化的管理模式所取代,如何得用先进的管理手段,提高宾馆的管理水平,已成为宾馆行业的当务之急。
面对信息时代的机遇和挑战,得用科技手段提高企业管理无疑是一条行之有效的途径。
客房管理系统的开发充分利用了信息技术提高了宾馆客房的管理水平、服务水平。
系统实现了客房预定、住宿登记、宿费提醒、追加押金、调房登记、退房结帐、挂帐、查询统计等功能。
其中宿费提醒可以在住宿费超过押金时预警,提示前台要客人补交押金,该功能可明显提高对住宿人员住宿的有效管理。
将动态实时的住宿登记、客房调整、销售报表、追加押金等有机地联系在一起,对宾馆客房进行全方位的管理。
【关键词】客房管理系统
0引言
随着我国经济的迅速发展,人们的生活水平有了明显的提高,假日经济和旅游经济已经成为人们的消费热点。
各地也把旅游也当作本地经济发展的重要支柱之一,从而促进了宾馆酒店业的发展。
同时,随着宾馆酒店越来越多,人们的要求越来越高,宾馆酒店的竞争也越来越激烈。
如何在激烈的竞争中生存发展,是每个宾馆酒店必须面临的问题。
对宾馆经营状况起决定作用的是宾馆的服务管理水平。
如何利用先进的管理手段,提高宾馆的管理水平,已成为宾馆酒店也发展的当务之急。
客房管理系统的开发可以帮助系统管理员完成日常的客人入住及客人的退房信息的管理及查询等工作,大大提高了的工作效率。
虽然计算机管理并不是宾馆管理走向成功的关键元素,但它可以最大限度地发挥准确、快捷、高效等作用,对宾馆的服务管理提供有力的支持。
1需求分析
根据该宾馆的具体情况,系统主要的功能包括:
前台管理:
“客房预定”、“住宿登记”、“调房登记”、“追加押金”、“退房结帐”。
客房管理:
“客房查询”、“房态查看”。
查询统计:
“预定房查询”、“住宿查询”、“退宿查询”、“宿费提醒”。
挂帐管理:
“挂帐管理”、“客人结帐”。
基础信息设置:
“客房信息”、“客房类型信息”、“员工信息”、“挂帐单位信息”。
系统初始化:
“本单位定义”、“业务部门定义”、“操作员管理”、“权限设置”。
系统维护:
“系统初始化”、“数据备份”、“数据恢复”。
2总体设计
2.1项目规划
客房管理系统主要是针对中小型的宾馆、酒店开发的客房管理系统,系统由前台管理、客房管理、查询统计、挂帐管理、基础信息设置、系统初始化、系统维护和帮助等几个功能模块组成,规划系统功能模块如下:
❑前台管理
前台管理:
客房预定、住宿登记、调房登记、追加押金、退宿结帐和退出。
❑客房管理
客房管理:
客房查询和房态查看。
❑查询统计
查询统计:
预定房查询、住宿查询、退宿查询、宿费提醒。
❑挂帐管理
挂帐管理:
挂帐查询和客人结帐。
❑基础信息设置
基础信息设置:
客房信息、客房类型信息、员工信息和帐挂单位信息。
❑系统初始化
系统初始化:
本单位定义、业务部分定义、操作员管理和权限设置。
❑系统维护
系统维护:
系统初始化、数据备份和数据恢复。
❑帮助
帮助:
帮助和关于本软件2部分。
2.2系统功能结构
本系统共分7大部分、24个完整的功能模块。
系统结构图如图1所示。
图1客房管理系统结构图
2.3设计目标
本系统主要是针对中小型的宾馆、酒店开发的的客房管理系统,主要实现可以下目标:
❑界面设计美观友好。
❑操作员可以随时修改自己的口令,并且不同的操作员设置不同的操作权限,以增强系统的安全性。
❑数据保密性强,为每个用户设置相应的权限级别。
❑信息查询灵活、方便、快捷,数据存储安全可靠。
❑能够实现数据备份和数据恢复,保证数据安全。
❑系统运行稳定,安全可靠。
3系统设计
3.1开发及运行环境
系统开发平台:
MicrosoftVisualFoxPro6.0。
运行平台:
WindowsXP/Windows2000/Windows2003。
分辨率:
最佳效果1024×768像素2数据库设计。
1.数据库概要说明
数据库在一个管理系统中占居非常重要的地位,数据库结构设计的好坏将直接影响系统的效率和实现的效果。
本系统采用的是VisualFoxPro自带的数据库,数据库文件名为Roommanage。
2.主要数据表的结构
数据库中的数据表请参见附录B。
4主要功能模块设计
4.1程序主界面的设计
程序启动后,在系统登录界面验证操作员密码后,将进入主程序界面。
通过主程序界面可以执行相应权限的操作,并且通过选择主界面的菜单,来调用相应程序并进行相应操作。
主程序界面如图2所示。
图2程序主界面
1.表单设计
(1)创建一个标准项目,名称为客房管理系统,在该项目中添加一个新表单,名称为Fdesktop。
(2)在表单中插入名称为Vcxmain的ToolBar类,在类中添加Command控件、Image控件。
2.代码设计
在“客房预定”按钮的Click事件中添加以下代码:
doformkfgl\form\kfyd
在“住宿登记”按钮的Click事件中添加以下代码:
doformkfgl\form\zsdj
在“退宿结帐”按钮的Click事件中添加以下代码:
doformkfgl\form\tsjz
在“住宿查询”按钮的Click事件中添加以下代码:
doformkfgl\form\zsquery
在“客房查询”按钮的Click事件中添加以下代码:
doformkfgl\form\kfquery
在“房态查看”按钮的Click事件中添加以下代码:
doformkfgl\form\fangtaiquery
在“宿费提醒”按钮的Click事件中添加以下代码:
doformkfgl\form\sftx
在“客房信息”按钮的Click事件中添加以下代码:
doformkfgl\form\kfmanage
根据用户的使用权限,设置按钮是否有效。
在vcxmain1类的Init事件中添加以下代码:
ifpurview>4orpqtgl=.f.
this.parent.vcxmain1.kfyd.enabled=.f.
this.parent.vcxmain1.zsdj.enabled=.f.
this.parent.vcxmain1.tsjz.enabled=.f.
else
this.parent.vcxmain1.kfyd.enabled=.t.
this.parent.vcxmain1.zsdj.enabled=.t.
this.parent.vcxmain1.tsjz.enabled=.t.
endif
ifpurview>4ORpcxtj=.f.
this.parent.vcxmain1.zscx.enabled=.f.
this.parent.vcxmain1.sftx.enabled=.f.
else
this.parent.vcxmain1.zscx.enabled=.t.
this.parent.vcxmain1.sftx.enabled=.t.
endif
ifpurview>4ORpkfgl=.f.
this.parent.vcxmain1.kfcx.enabled=.f.
this.parent.vcxmain1.ftck.enabled=.f.
else
this.parent.vcxmain1.kfcx.enabled=.t.
this.parent.vcxmain1.ftck.enabled=.t.
endif
ifpurview>4ORpjcinfo=.f.
this.parent.vcxmain1.kfinfo.enabled=.f.
else
this.parent.vcxmain1.kfinfo.enabled=.t.
endif
在vcxmain1类的“退出”按钮的Click事件中添加以下代码:
quit
4.2系统登录界面设计
用户进入系统前,必须通过系统登录进入主程序界面,系统登录界面主要用于确认用户的身份及使用权限,并且可对系统信息起到保密作用。
系统登录界面如图3所示。
图3系统登录界面运行结果
1.表单设计
(1)在客房管理系统项目中,添加一个新表单,名称为Admin。
(2)在表单中添加Combo控件、Text控件、Label控件、Command控件、Image控件。
(3)重要控件属性如表1所示。
表1重要控件的重要属性及值
控件名
属性
值
Combo1
RowSource
RowSourceType
tabpurview.操作员姓名
6-字段
Text1
PasswordChar
*
2.代码设计
定义全局变量cn,manager,cn存放输入操作员或密码的次数,当cn大于3时,将自动退出系统。
manager存放操作员姓名,在系统中应用到操作员姓名时,系统自动添加。
在表单的Init事件中添加以下代码:
publiccn,manager&&定义全局变量
cn=0&&给全局变量赋初值
在表单的Resize事件中添加根据用户选择操作员所拥有的权限级别为全局变量赋值的代码。
purview=val(alltrim(tabpurview.权限级别))
pqtgl=tabpurview.前台管理
pkfgl=tabpurview.客房管理
pcxtj=tabpurview.查询统计
pgzgl=tabpurview.挂帐管理
pjcinfo=tabpurview.基础信息设置
psyscsh=tabpurview.系统初始化
psyswh=tabpurview.系统维护
在“确定”按钮的Click事件中添加以下代码实现判断操作员和密码是否正确的功能。
如果操作员或密码不正确,将提示重新输入,三次后仍不正确,系统将自动退出。
publicmanager&&定义全局变量
manager=alltrim(bo1.value)
usekfgl\database\tabpurview&&打开数据表
cname=alltrim(thisform.Combo1.value)
ppassword=alltrim(thisform.text1.value)
setorderto操作员姓名&&指定操作员姓名为控制索引
ifempty(操作员姓名)
thisform.resize&&执行表单的Resize事件
manager=alltrim(bo1.displayvalue)
store.t.topqtgl,pkfgl,pcxtj,pgzgl,pjcinfo,psyscsh,psyswh
doformform\fdesktop&&调入表单
thisform.release
else
seekcname&&快速查询
setexacton&&设置字符精确比较
ifalltrim(tabpurview.操作员姓名)!
=cname
cn=cn+1
cMessagetitle='系统登录'
cMessagetext='操作员错误,请重新输入!
'
nDialogtype=4+32
nanswer=messagebox(cmessagetext,ndialogtype,cmessagetitle)
docase
casenanswer=6&&选择“是”时的操作
bo1.value=''
bo1.setfocus
casenanswer=7&&选择“否”时的操作
messagebox('不要乱来!
',48,'系统登录')
thisform.release&&释放表单
endcase
ifcn=3
thisform.release
endif
else
ifalltrim(tabpurview.密码)!
=ppassword
cn=cn+1
cmessagetitle='系统登录'
cmessagetext='密码错误,请重新输入!
'
ndialogtype=4+32
nanswer=messagebox(cmessagetext,ndialogtype,cmessagetitle)
docase
casenanswer=6&&当用户单击“是”按钮
thisform.text1.value=''
thisform.text1.setfocus
casenanswer=7
messagebox('不要乱来!
',48,'系统登录')
thisform.release
endcase
ifcn=3
thisform.release
endif
else
thisform.resize&&执行表单的Resize事件
manager=alltrim(bo1.displayvalue)
doformform\fdesktop
thisform.release
endif
endif
endif
setexactoff&&设置字符非精确比较
在“取消”按钮的Click事件中添加以下代码:
cmessagetitle='系统登录'
cmessagetext='真的想要退出吗?
'
nDialogtype=4+32
nanswer=messagebox(cMessagetext,nDialogtype,cMessagetitle)
ifnanswer=6
thisform.release&&释放表单
endif
4.3客房信息设计
用户进入系统后,单击主菜单基础信息设置下的客房信息子菜单选项,进入客房信息界面时可以通过查询条件查询客房基本信息,并以文本框和列表两种方式显示客房信息。
客房信息表单运行结果如图4所示。
图4客房管理表单运行结果
1.表单设计
(1)在客房管理系统项目中,添加一个新表单,名称为Kfmanage。
(2)在表单中添加Label控件、Combo控件、Text控件、Edit控件、Command控件、Commandgroup控件、PageFrame控件和Grid控件。
(3)重要控件属性如表2所示。
表2重要控件的重要属性及值
控件名
属性
值
Combo1
DisplayValue
RowSource
RowSourceType
房间号
房间号,房间类型,房态
1-值
Combo2
RowSource
RowSourceType
Style
All,like,=,>,<
1-值
2-下拉列表框
2.代码设计
在表单的Load事件中添加以下代码:
publiccx,l&&定义全局变量
cx=0
l=.f.
在表单的Resize事件中添加以下代码:
thisform.pageframe1.page1.text1.value=tabkfinfo.房间号&&赋值给Text1等
bo1.value=tabkfinfo.房间类型
thisform.pageframe1.page1.text3.value=tabkfinfo.价格
bo2.value=tabkfinfo.房态
thisform.pageframe1.page1.text5.value=tabkfinfo.营业时间
thisform.pageframe1.page1.text6.value=tabkfinfo.备注
thisform.pageframe1.page1.text7.value=tabkfinfo.使用设置
thisform.pageframe1.page1.edit1.value=tabkfinfo.配置
L是全局变量,当L为.T.或.F.时,这个值会集体赋给相关控件的Enabled属性。
这种写法其实将Init事件当成一个设相关控件是否有效的函数。
在表单的Init事件中添加以下代码:
storeltobo1.enabled=l
bo2.enabled=l
thisform.pageframe1.page1.text5.enabled=l
thisform.pageframe1.page1.text6.enabled=l
thisform.pageframe1.page1.text7.enabled=l
thisform.pageframe1.page1.edit1.enabled=l
在combo2控件的InteractiveChange事件中添加以下代码:
ifalltrim(bo2.value)="All"
thisform.text1.value=''
thisform.text1.enabled=.f.
else
thisform.text1.enabled=.t.
endif
在“查询”按钮的Click事件中添加可以根据用户选择的条件查找记录的代码。
cx=0
cif=alltrim(bo1.displayvalue)
ccif=alltrim(bo2.displayvalue)
ctext=alltrim(thisform.text1.value)
ifempty(ccif)
messagebox('请输入查询条件!
',48,'操作失败!
')
bo2.setfocus&&Combo2获得焦点
else
ifempty(ctext)
ifccif!
="All"
messagebox('请输入查询条件!
',48,'操作失败!
')
thisform.text1.setfocus
else
select*;&&选择所有字段
fromroommanage!
tabkfinfo;&&指定查询的数据库文件
orderbytabkfinfo.房间号;&&查询结果升序排序
intocursorlindeping
thisform.pageframe1.page2.grid1.recordsource='lindeping'&&赋数据源
lkfnumber=lindeping.房间号
selecttabkfinfo
setorderto房间号&&指定控制索引文件
seeklkfnumber&&快速查询
thisform.resize&&执行表单的Resize事件
thisform.pageframe1.page1.text1.enabled=.f.
thisform.pageframe1.page1.text3.enabled=.f.
l=.f.
thisform.init&&执行表单的Init事件
mandgroup2.enabled=.t.
endif
else
ifbo2.displayvalue='like'
MySQL=cif+""+ccif+"'"+"%"+ctext+"%'"
else
MySQL=cif+""+ccif+"'"+alltrim(thisform.text1.value)+"'"
endif
select*fromroommanage!
tabkfinfowhere&MySQL.intocursorlindeping
gotop
ifeof()
gobottom
messagebox('客房不存在',48,'信息窗口')
mandgroup2.enabled=.f.
mandgroup1.cmodify.enabled=.f.
mandgroup1.cdel.enabled=.f.
cx=1
else
lkfnumber=lindeping.房间号
selecttabkfinfo
setorderto房间号
seeklkfnumber
thisform.resize&&执行表单的Resize事件
thisform.pageframe1.page1.text1.enabled=.f.
thisform.pageframe1.page1.text3.enabled=.f.
l=.f.
thisform.init&&执行表单的Init事件
mandgroup2.enabled=.t.
endif
thisform.pageframe1.page2.grid1.recordsource='lindeping'
endif
endif
mand1.setfocus
thisform.refresh
在页框控件的Init事件中添加以下代码:
thisform.pageframe1.page1.text1.enabled=.f.
thisform.pageframe1.page1.text3.enabled=.f.
l=.f.
thisform.init&&执行表单的Init事件
thisform.resize&&执行表单的Resize事件
在“客房基本信息”选项卡的Activate事件中添加以下代码:
mandgroup1.csave.enabled=.f.
mandgroup1.ccancel.enabled=.f.
mandgroup1.cadd.enabled=.t.
mandgroup1.cexit.enabled=.t.
mandgroup1.cmodify.enabled=.t.
mandgroup1.cdel.enabled=.t.
mandgroup2.enabled=.t.
在“客房基本信息列表”选项卡的Activate事件中添加以下代码:
mandgroup1.csave.enabled=.f.
mandgroup1.ccancel.enabled=.f.
mandgroup1.cadd.enabled=.f.
man