客房管理系统毕业设计范例.docx
《客房管理系统毕业设计范例.docx》由会员分享,可在线阅读,更多相关《客房管理系统毕业设计范例.docx(42页珍藏版)》请在冰点文库上搜索。
客房管理系统毕业设计范例
客房管理系统
学院
专业
班级
学号
姓名
指导教师
教师职称
年
月
日
摘要
【摘要】
随着我国经济的迅速发展和假日经济的出现,宾馆酒店业的竞争愈来愈激烈。
要想在竞争中取得优势,必须在经营管理、产品服务等方面提高服务管理意识。
而对酒店的经营状况起决定作用的是酒店的管理。
如何利用先进的管理手段,提高酒店的管理水平,是每一家酒店的管理者所面临的重要课题。
简单的服务标准已经不是制胜的锦囊,只有做到最细微之处才有机会让顾客体会到酒店服务的优点,而准确、快捷、周全往往就是最基本的成功要素。
虽然计算机管理并不是酒店走向成功的关键元素,但它可以最大限度的为准确、快捷、周全等要素发挥效用提供有力的支持。
因此,采用全新的计算机网络和管理系统,将成为提高酒店的管理效率,改善服务水准的重要手段之一。
面对信息时代的机遇和挑战,利用科技手段提高企业管理无疑是一条行之有效的途径。
信息与科技在酒店管理与现代化建设中显现出越来越重要的地位。
在某种意义上,酒店客房状态管理方面的信息化与科学化,已成为现代化酒店的重要标志。
【关键词】客房管理系统
0引言
通过计算机对物流企业运作的全过程进行全面、效的管理,解决了经营过程中,客户需求和企业资源不能有效协调与统一按排的问题,减少了管理者的工作量,大大提高了企业的工作效率和经济效益,满足了信息时代物流企业管理、发展的需求,成为物流企业适应时代发展中企业管理者必不可少的管理工具。
1需求分析
1.1系统需求分析
根据宾馆的具体情况,系统主要功能包括:
住宿管理。
客房管理。
挂账管理。
查询统计。
日结。
系统设置。
1.2可行性分析
随着信息技术的发展和人们对宾馆酒店的要求越来越高,许多宾馆已明显觉得手工管理已不能适应当前宾馆高速发展的需要,宾馆已意识到使用计算机网络和计算机管理的重要性,决定首先在客房部采用宾馆客房管理系统。
该系统应充分利用信息技术提高宾馆客房的管理水平、服务水平。
宾馆客房管理系统要实现客房预定、住宿登记、追加押金、调房登记、退房结帐、挂账、查询统计、预收销售报表等功能。
其中动态实时的住宿登记、客房调整、销售报表、追加押金等有机的联系在一起,对宾馆客房进行全方位的管理。
2总体设计
1项目规划
面对服务行业的高速发展和宾馆企业信息化发展的过程中出现的各种情况,本系统主要实现如下功能:
❑住宿管理模块
住宿管理模块包括客房预定、入住登记、客人续住、调房登记、退房结帐5部分。
❑客房管理模块
客房管理模块包括客房设置、客房查询、宿费提醒3部分。
❑查询统计模块
查询统计模块包括预定房查询、住宿查询、退宿查询、客房宿费统计4部分。
❑报表管理模块
报表管理模块包括预售报表、客房销售报表2部分。
❑挂帐管理模块
挂帐管理模块包括客户管理、挂账查询、客户结帐3部分。
❑系统设置模块
系统设置模块包括系统初使化、权限管理、密码设置3部分。
2系统功能结构
图1客房管理系统功能结构图
3设计目标
本软件系统使根据实际需求而开发的,完全能够实现宾馆客房信息的管理,运用本系统可以实现以下目标:
❑界面友好,界面设计美观。
❑轻松实现客房信息管理的可视,高效,快捷和方便的管理。
❑数据存储安全可靠。
❑同Windows操作系统的无缝结合,使用户无需为软件的移植性烦恼。
❑根据巧妙的权限设置使保证信息安全保密。
3系统设计
1开发及运行环境
系统开发平台:
VisualC++6.0
数据库管理系统软件:
SQLServer2000
运行平台:
Windowsxp/Windows2000
显示像素:
最低800*600,最佳效果1024*768。
2数据库设计
1.数据库概要说明
在SQLServer2000数据库中建立名为myhotel的数据库,设计如下数据表:
checkinregtable,checkoutregtable,guazhanginfo,kfyd,regmoneytable,roomsetting,setability,usertalbe。
图2所示的即为本系统中数据库中的数据表结构图,该数据表结构图包含系统所有数据表。
可以清晰地反应数据库信息。
图2数据库概要说明
2.主要数据表结构
数据库中的数据表请参见附录B。
4功能模块设计
4.1创建工程框架
(1)利用Vc++建立一个基于对话框的应用程序,如图3所示,在对话框中输入工程名字和保存目录,点击“确定”按钮。
图3“新建”窗口
(2)在弹出的步骤1对话框中选择基于对话框选项,如图4所示,点击“下一步”按钮。
图4“步骤1”窗口
(3)以下步骤保持默认选择,直到完成。
4.2主窗口设计
主程序界面是应用程序提供给用户访问其他功能模块的平台,根据实际需要,物流综合管理系统的主界面采用了传统的“菜单/工具栏/状态栏”风格。
物流综合管理系统主程序界面如图5所示。
图5主程序运行界面
1.客户区设计
在生成的对话框内添加图片、静态文本、标签、编辑框、按钮等资源。
设置主要资源属性如下表所示:
控件的属性和ID见如表1所示。
表1控件的属性和ID
控件ID
标题
ID_BTN_borrowroom
开房
ID_BTN_returnroom
结帐
ID_BTN_mainfind
查询
ID_BTN_daysummery
日结
ID_BTN_alert
提醒
ID_CLOSE
退出
2.菜单设计
(1)点击insert->Resourse打开添加资源界面如下图6所示。
图6“InsertResourse”窗口
(2)选择Menu,点击New,插入空白菜单,设置ID属性为IDR_mainMENU然后按照图7编辑菜单项
图7菜单资源
主菜单的各个子菜单的ID和标题属性如表2所示。
表2各个子菜单的ID和标题属性
控件ID
标题
ID_MENU_checkinreg
住宿登记
ID_MENU_roomsetting
客房设置
ID_MENU_checkout
退宿结帐
ID_MENU_addmoney
追加押金
ID_MENU_changeroomreg
调房登记
ID_MENU_findroom
客房查询
ID_MENU_findguazhang
挂帐查询
ID_MENU_guazhangmoney
客户结款
ID_MENU_findcheckinreg
住宿查询
ID_MENU_findcheckoutreg
退宿查询
ID_MENU_findroomfee
宿费提醒
ID_MENU_regmoneytable
登记预收报表
ID_MENU_saleroomtable
客房销售报表
ID_MENU_saleroomsummary
客房销售统计
ID_MENU_adm_setting
操作员设置
ID_MENU_pwd_setting
密码设置
ID_MENU_setting_begin
初始化
ID_MENU_setting_ability
权限设置
ID_MENU_findroomstate
房态查看
ID_MENU_roomprebook
客房预定
ID_MENU_findprebookroom
预定房查询
3.代码分析
(1)系统主界面操作可以根据用户的权限设定,所以要加入连接数据库功能,故在stdafx.h文件中加入以下代码,提供加入ADO的支持
//addthesupportofADO
#import"c:
\programfiles\commonfiles\system\ado\msado15.dll"\
no_namespace\
rename("EOF","adoEOF")
并在Myhotel.h中加入:
CDatabasem_DB;
_ConnectionPtrm_pConnection;
此外在myhotel.cpp的初始化函数中加入连接数据库的代码:
ry//连接数据库
{
CStringstrConnect;
strConnect.Format("DSN=myhotel;");
if(!
m_DB.OpenEx(strConnect,CDatabase:
:
useCursorLib))
{
AfxMessageBox("UnabletoConnecttotheSpecifiedDataSource");
returnFALSE;
}
}
catch(CDBException*pE)//抛出异常
{
pE->ReportError();
pE->Delete();
returnFALSE;
}
……………………………………
……………………………………
//初始化COM,创建ADO连接等操作
AfxOleInit();
m_pConnection.CreateInstance(__uuidof(Connection));
//在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
//
try
{
//打开本地数据库
m_pConnection->Open("Provider=MSDASQL.1;PersistSecurityInfo=False;DataSource=myhotel","","",adModeUnknown);
}
catch(_com_errore)//抛出可能发生的异常
{
AfxMessageBox("数据库连接失败,确认数据库配置正确!
");
returnFALSE;
}
(2)此主窗口初始化时候要根据登录的操作员的权限来设置登录操作员所有权进行的操作,此功能由函数setuserability来完成,代码为:
voidCMyhotelDlg:
:
setuserability()
{
m_pRecordset.CreateInstance(__uuidof(Recordset));
_variant_tvar,varIndex;
//loguserid="操作员01";
CStringstrsqlshow;
strsqlshow.Format("SELECT*FROMsetabilitywhere操作员='%s'",loguserid);
try//打开数据库连接
{
m_pRecordset->Open((_variant_t)(strsqlshow),//查询表中所有字段
theApp.m_pConnection.GetInterfacePtr(),//获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error*e)//捕获异常的发生
{
AfxMessageBox(e->ErrorMessage());
}
///////////////////////////////////////////////
mynenu=AfxGetMainWnd()->GetMenu();//获得主菜单指针
//////////////////////////////////////////////
CStringling="0";
try
{
if(!
m_pRecordset->BOF)//判断指针是否在数据集最后
m_pRecordset->MoveFirst();
else
{
AfxMessageBox("表内数据为空");
return;
}
//MessageBox("eeeeeeeeee");
//读取数据表内客房预定字段内容
var=m_pRecordset->GetCollect("客房预定");
if(var.vt!
=VT_NULL)
{
if((LPCSTR)_bstr_t(var)==ling)//判断是否有权限操作客房预定模块
{//如果没有权利就使该菜单灰显
EnableMenuItem(mynenu->m_hMenu,ID_MENU_roomprebook,MF_DISABLED|MF_GRAYED);
}
}
//读取数据表内住宿登记字段内容
var=m_pRecordset->GetCollect("住宿登记");
if(var.vt!
=VT_NULL)
{
if((LPCSTR)_bstr_t(var)==ling)//判断是否有权限操作住宿登记模块
{//如果没有权利就使该菜单灰显
EnableMenuItem(mynenu->m_hMenu,ID_MENU_checkinreg,MF_DISABLED|MF_GRAYED);
}
}
//读取数据表内追加押金字段内容
var=m_pRecordset->GetCollect("追加押金");
if(var.vt!
=VT_NULL)
{
if((LPCSTR)_bstr_t(var)==ling)//判断是否有权限操作追加押金模块
{//如果没有权利就使该菜单灰显
EnableMenuItem(mynenu->m_hMenu,ID_MENU_addmoney,MF_DISABLED|MF_GRAYED);
}
}
//读取数据表内调房登记字段内容
var=m_pRecordset->GetCollect("调房登记");
if(var.vt!
=VT_NULL)
{
if((LPCSTR)_bstr_t(var)==ling)//判断是否有权限操作调房登记模块
{//如果没有权利就使该菜单灰显
EnableMenuItem(mynenu->m_hMenu,ID_MENU_changeroomreg,MF_DISABLED|MF_GRAYED);
}
}
//读取数据表内退宿登记字段内容
var=m_pRecordset->GetCollect("退宿登记");
if(var.vt!
=VT_NULL)
{
if((LPCSTR)_bstr_t(var)==ling)//判断是否有权限操作退宿登记模块
{//如果没有权利就使该菜单灰显
EnableMenuItem(mynenu->m_hMenu,ID_MENU_checkout,MF_DISABLED|MF_GRAYED);
}
}
//读取数据表内客房管理字段内容
var=m_pRecordset->GetCollect("客房管理");
if(var.vt!
=VT_NULL)
{
if((LPCSTR)_bstr_t(var)==ling)//判断是否有权限操作客房管理模块
{//如果没有权利就使该菜单灰显
EnableMenuItem(mynenu->m_hMenu,ID_MENU_roomsetting,MF_DISABLED|MF_GRAYED);
}
}
//读取数据表内客房查询字段内容
var=m_pRecordset->GetCollect("客房查询");
if(var.vt!
=VT_NULL)
{
if((LPCSTR)_bstr_t(var)==ling)//判断是否有权限操作客房查询模块
{//如果没有权利就使该菜单灰显
EnableMenuItem(mynenu->m_hMenu,ID_MENU_findroom,MF_DISABLED|MF_GRAYED);
}
}
//读取数据表内房态查看字段内容
var=m_pRecordset->GetCollect("房态查看");
if(var.vt!
=VT_NULL)
{
if((LPCSTR)_bstr_t(var)==ling)//判断是否有权限操作房态查看模块
{//如果没有权利就使该菜单灰显
EnableMenuItem(mynenu->m_hMenu,ID_MENU_findroomstate,MF_DISABLED|MF_GRAYED);
}
}
//读取数据表内挂帐查询字段内容
var=m_pRecordset->GetCollect("挂帐查询");
if(var.vt!
=VT_NULL)
{
if((LPCSTR)_bstr_t(var)==ling)//判断是否有权限操作挂帐查询模块
{//如果没有权利就使该菜单灰显
EnableMenuItem(mynenu->m_hMenu,ID_MENU_findguazhang,MF_DISABLED|MF_GRAYED);
}
}
//读取数据表内客户结款字段内容
var=m_pRecordset->GetCollect("客户结款");
if(var.vt!
=VT_NULL)
{
if((LPCSTR)_bstr_t(var)==ling)//判断是否有权限操作客户结款模块
{//如果没有权利就使该菜单灰显
EnableMenuItem(mynenu->m_hMenu,ID_MENU_guazhangmoney,MF_DISABLED|MF_GRAYED);
}
}
//读取数据表内预定房查询字段内容
var=m_pRecordset->GetCollect("预定房查询");
if(var.vt!
=VT_NULL)
{
if((LPCSTR)_bstr_t(var)==ling)//判断是否有权限操作预定房查询模块
{//如果没有权利就使该菜单灰显
EnableMenuItem(mynenu->m_hMenu,ID_MENU_findprebookroom,MF_DISABLED|MF_GRAYED);
}
}
//读取数据表内住宿查询字段内容
var=m_pRecordset->GetCollect("住宿查询");
if(var.vt!
=VT_NULL)
{
if((LPCSTR)_bstr_t(var)==ling)//判断是否有权限操作住宿查询模块
{//如果没有权利就使该菜单灰显
EnableMenuItem(mynenu->m_hMenu,ID_MENU_findcheckinreg,MF_DISABLED|MF_GRAYED);
}
}
//读取数据表内退宿查询字段内容
var=m_pRecordset->GetCollect("退宿查询");
if(var.vt!
=VT_NULL)
{
if((LPCSTR)_bstr_t(var)==ling)//判断是否有权限操作退宿查询模块
{//如果没有权利就使该菜单灰显
EnableMenuItem(mynenu->m_hMenu,ID_MENU_findcheckoutreg,MF_DISABLED|MF_GRAYED);
}
}
//读取数据表内宿费提醒字段内容
var=m_pRecordset->GetCollect("宿费提醒");
if(var.vt!
=VT_NULL)
{
if((LPCSTR)_bstr_t(var)==ling)//判断是否有权限操作宿费提醒模块
{//如果没有权利就使该菜单灰显
EnableMenuItem(mynenu->m_hMenu,ID_MENU_findroomfee,MF_DISABLED|MF_GRAYED);
}
}
//读取数据表内登记预收报表字段内容
var=m_pRecordset->GetCollect("登记预收报表");
if(var.vt!
=VT_NULL)
{
if((LPCSTR)_bstr_t(var)==ling)//判断是否有权限操作登记预收报表模块
{//如果没有权利就使该菜单灰显
EnableMenuItem(mynenu->m_hMenu,ID_MENU_regmoneytable,MF_DISABLED|MF_GRAYED);
}
}
//读取数据表内客房销售报表字段内容
var=m_pRecordset->GetCollect("客房销售报表");
if(var.vt!
=VT_NULL)
{
if((LPCSTR)_bstr_t(var)==ling)//判断是否有权限操作客房销售报表模块
{//如果没有权利就使该菜单灰显
EnableMenuItem(mynenu->m_hMenu,ID_MENU_saleroomtable,MF_DISABLED|MF_GRAYED);
}
}
//读取数据表内客房销售统计报表字段内容
var=m_pRecordset->GetCollect("客房销售统计报表");
if(var.vt!
=VT_NULL)
{
if((LPCSTR)_bstr_t(var)==ling)//判断是否有权限操作客房销售统计模块
{//如果没有权利就使该菜单灰显
EnableMenuItem(mynenu->m_hMenu,ID_MENU_saleroomsummary,MF_DISABLED|MF_GRAYED);
}
}
//读取数据表内操作员设置字段内容
var=m_pRecordset->GetCollect("操作员设置");
if(var.vt!
=VT_NULL)
{
if((LPCSTR)_bstr_t(var)==ling)//判断是否有权限操作操作员设置模块
{//如果没有权利就使该菜单灰显
EnableMenuItem(mynenu->m_hMenu,ID_MENU_adm_setting,MF_DISABLED|MF_GRAYED);