1、查询统计:“预定房查询”、“住宿查询”、“退宿查询”、“宿费提醒”。挂帐管理:“挂帐管理”、“客人结帐”。基础信息设置:“客房信息”、“客房类型信息”、“员工信息”、“挂帐单位信息”。系统初始化:“本单位定义”、“业务部门定义”、“操作员管理”、“权限设置”。系统维护:“系统初始化”、“数据备份”、“数据恢复”。2 总体设计2.1 项目规划客房管理系统主要是针对中小型的宾馆、酒店开发的客房管理系统,系统由前台管理、客房管理、查询统计、挂帐管理、基础信息设置、系统初始化、系统维护和帮助等几个功能模块组成,规划系统功能模块如下:前台管理客房预定、住宿登记、调房登记、追加押金、退宿结帐和退出。客房管
2、理客房查询和房态查看。查询统计预定房查询、住宿查询、退宿查询、宿费提醒。挂帐管理挂帐查询和客人结帐。基础信息设置客房信息、客房类型信息、员工信息和帐挂单位信息。系统初始化本单位定义、业务部分定义、操作员管理和权限设置。系统维护系统初始化、数据备份和数据恢复。帮助帮助:帮助和关于本软件2部分。2.2 系统功能结构本系统共分7大部分、24个完整的功能模块。系统结构图如图1所示。图1 客房管理系统结构图2.3 设计目标本系统主要是针对中小型的宾馆、酒店开发的的客房管理系统,主要实现可以下目标:界面设计美观友好。操作员可以随时修改自己的口令,并且不同的操作员设置不同的操作权限,以增强系统的安全性。数据
3、保密性强,为每个用户设置相应的权限级别。信息查询灵活、方便、快捷,数据存储安全可靠。能够实现数据备份和数据恢复,保证数据安全。系统运行稳定,安全可靠。3 系统设计3.1 开发及运行环境系统开发平台:Microsoft Visual FoxPro 6.0。运行平台:Windows XP/ Windows 2000/ Windows 2003。分辨率:最佳效果1024768像素2 数据库设计。1数据库概要说明数据库在一个管理系统中占居非常重要的地位,数据库结构设计的好坏将直接影响系统的效率和实现的效果。本系统采用的是Visual FoxPro自带的数据库,数据库文件名为Roommanage。2主要
4、数据表的结构数据库中的数据表请参见附录B。4 主要功能模块设计4.1 程序主界面的设计程序启动后,在系统登录界面验证操作员密码后,将进入主程序界面。通过主程序界面可以执行相应权限的操作,并且通过选择主界面的菜单,来调用相应程序并进行相应操作。主程序界面如图2所示。图2 程序主界面1表单设计(1)创建一个标准项目,名称为客房管理系统,在该项目中添加一个新表单,名称为Fdesktop。(2)在表单中插入名称为Vcxmain的ToolBar类,在类中添加Command控件、Image控件。2代码设计在“客房预定”按钮的Click事件中添加以下代码:do form kfglformkfyd在“住宿登记
5、”按钮的Click事件中添加以下代码:do form kfglformzsdj在“退宿结帐”按钮的Click事件中添加以下代码:do form kfglformtsjz在“住宿查询”按钮的Click事件中添加以下代码:do form kfglformzsquery在“客房查询”按钮的Click事件中添加以下代码:do form kfglformkfquery在“房态查看”按钮的Click事件中添加以下代码:do form kfglformfangtaiquery在“宿费提醒”按钮的Click事件中添加以下代码:do form kfglformsftx在“客房信息”按钮的Click事件中添加以下
6、代码:do form kfglformkfmanage根据用户的使用权限,设置按钮是否有效。在vcxmain1类的Init事件中添加以下代码:if purview4 or pqtgl=.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.paren
7、t.vcxmain1.tsjz.enabled=.t.endif4 OR pcxtj=.f. this.parent.vcxmain1.zscx.enabled=.f. this.parent.vcxmain1.sftx.enabled=.f. this.parent.vcxmain1.zscx.enabled=.t. this.parent.vcxmain1.sftx.enabled=.t.4 OR pkfgl=.f. this.parent.vcxmain1.kfcx.enabled=.f. this.parent.vcxmain1.ftck.enabled=.f. this.parent
8、.vcxmain1.kfcx.enabled=.t. this.parent.vcxmain1.ftck.enabled=.t.4 OR pjcinfo=.f. this.parent.vcxmain1.kfinfo.enabled=.f. this.parent.vcxmain1.kfinfo.enabled=.t.在 vcxmain1类的“退出”按钮的Click事件中添加以下代码:quit4.2 系统登录界面设计用户进入系统前,必须通过系统登录进入主程序界面,系统登录界面主要用于确认用户的身份及使用权限,并且可对系统信息起到保密作用。系统登录界面如图3所示。图3 系统登录界面运行结果(1)
9、在客房管理系统项目中,添加一个新表单,名称为Admin。(2)在表单中添加Combo控件、Text控件、Label控件、Command控件、Image控件。(3)重要控件属性如表1所示。表1 重要控件的重要属性及值控件名属性值Combo1RowSourceRowSourceTypetabpurview.操作员姓名6-字段Text1PasswordChar*定义全局变量cn,manager,cn存放输入操作员或密码的次数,当cn大于3时,将自动退出系统。manager存放操作员姓名,在系统中应用到操作员姓名时,系统自动添加。在表单的Init事件中添加以下代码:public cn ,manager
10、 &定义全局变量cn=0 &给全局变量赋初值在表单的Resize事件中添加根据用户选择操作员所拥有的权限级别为全局变量赋值的代码。purview=val(alltrim(tabpurview.权限级别)pqtgl=tabpurview.前台管理pkfgl=tabpurview.客房管理pcxtj=tabpurview.查询统计pgzgl=tabpurview.挂帐管理pjcinfo=tabpurview.基础信息设置psyscsh=tabpurview.系统初始化psyswh=tabpurview.系统维护在“确定”按钮的Click事件中添加以下代码实现判断操作员和密码是否正确的功能。如果操作
11、员或密码不正确,将提示重新输入,三次后仍不正确,系统将自动退出。public manager &manager=alltrim(bo1.value)use kfgldatabasetabpurview &打开数据表cname=alltrim(thisform.Combo1.value)ppassword=alltrim(thisform.text1.value)set order to 操作员姓名 &指定操作员姓名为控制索引if empty(操作员姓名) thisform.resize &执行表单的Resize事件 manager=alltrim(bo1.displayvalue) store
12、 .t.to pqtgl,pkfgl,pcxtj,pgzgl,pjcinfo,psyscsh,psyswh do form formfdesktop &调入表单 thisform.release seek cname &快速查询 set exact on &设置字符精确比较 if alltrim(tabpurview.操作员姓名)!=cname cn=cn+1 cMessagetitle=系统登录cMessagetext=操作员错误,请重新输入! nDialogtype=4+32nanswer=messagebox(cmessagetext,ndialogtype,cmessagetitle)
13、do case case nanswer=6 &选择“是”时的操作 bo1.value= bo1.setfocus case nanswer=7 &选择“否”时的操作messagebox(不要乱来!,48, )thisform.release &释放表单endcaseif cn=3thisform.releaseif alltrim(tabpurview.密码)!=ppasswordcn=cn+1cmessagetitle=cmessagetext=密码错误,请重新输入!ndialogtype=4+32 case nanswer=6 &当用户单击“是”按钮 thisform.text1.val
14、ue= thisform.text1.setfocus case nanswer=7 messagebox( thisform.release endcase if cn=3 endif else thisform.resize & do form formfdesktopset exact off &设置字符非精确比较在“取消”按钮的Click事件中添加以下代码:真的想要退出吗?nDialogtype=4+32nanswer=messagebox(cMessagetext,nDialogtype,cMessagetitle)if nanswer=6 thisform.release &4.3
15、 客房信息设计用户进入系统后,单击主菜单基础信息设置下的客房信息子菜单选项,进入客房信息界面时可以通过查询条件查询客房基本信息,并以文本框和列表两种方式显示客房信息。客房信息表单运行结果如图4所示。图4 客房管理表单运行结果(1)在客房管理系统项目中,添加一个新表单,名称为Kfmanage。(2)在表单中添加Label控件、Combo控件、Text控件、Edit控件、Command控件、Commandgroup控件、PageFrame控件和Grid控件。(3)重要控件属性如表2所示。表2 重要控件的重要属性及值DisplayValue房间号房间号,房间类型,房态1-值Combo2StyleAl
16、l,like,=,2-下拉列表框在表单的Load事件中添加以下代码:public cx,l &cx=0l=.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.pagef
17、rame1.page1.text6.value=tabkfinfo.备注thisform.pageframe1.page1.text7.value=tabkfinfo.使用设置thisform.pageframe1.page1.edit1.value=tabkfinfo.配置L是全局变量,当L为.T.或.F.时,这个值会集体赋给相关控件的Enabled属性。这种写法其实将Init事件当成一个设相关控件是否有效的函数。store l to bo1.enabled=l bo2.enabled=lthisform.pageframe1.page1.text5.enabled=lthisform.pa
18、geframe1.page1.text6.enabled=lthisform.pageframe1.page1.text7.enabled=lthisform.pageframe1.page1.edit1.enabled=l在combo2控件的InteractiveChange事件中添加以下代码:if alltrim(bo2.value)=All thisform.text1.enabled=.f. thisform.text1.enabled=.t.在“查询”按钮的Click事件中添加可以根据用户选择的条件查找记录的代码。cif=alltrim(bo1.displayvalue)ccif=a
19、lltrim(bo2.displayvalue)ctext=alltrim(thisform.text1.value)if empty(ccif)请输入查询条件!,48,操作失败! bo2.setfocus &Combo2获得焦点 if empty(ctext) if ccif!= select *; &选择所有字段 from roommanage!tabkfinfo; &指定查询的数据库文件 order by tabkfinfo.房间号;查询结果升序排序 into cursor lindeping thisform.pageframe1.page2.grid1.recordsource=li
20、ndeping &赋数据源 lkfnumber=lindeping.房间号 select tabkfinfo set order to 房间号 &指定控制索引文件 seek lkfnumber &执行表单的Resize事件 thisform.pageframe1.page1.text1.enabled=.f. thisform.pageframe1.page1.text3.enabled=.f. l=.f. thisform.init &执行表单的Init事件 mandgroup2.enabled=.t. if bo2.displayvalue=like MySQL=cif+ +ccif+ +
21、%+ctext+%+alltrim(thisform.text1.value)+ select * from roommanage!tabkfinfo where &MySQL.into cursor lindeping go top if eof() go bottom客房不存在信息窗口 mandgroup2.enabled=.f. mandgroup1.cmodify.enabled=.f. mandgroup1.cdel.enabled=.f. cx=1 set order to 房间号 seek lkfnumber endif mand1.setfocusthisform.refres
22、h在页框控件的Init事件中添加以下代码:thisform.pageframe1.page1.text1.enabled=.f.thisform.pageframe1.page1.text3.enabled=.f.thisform.init &thisform.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.cadd.enabled=.f.thi
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1