酒店管理系统的设计与实现Word格式.docx
《酒店管理系统的设计与实现Word格式.docx》由会员分享,可在线阅读,更多相关《酒店管理系统的设计与实现Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
和安全性两方面进行相应的完善。
2系统主要模块
(1)登录管理模块;
(2)菜谱管理模块;
(3)点菜订菜模块;
(4)结算
模块;
(5)帮助模块;
(6)数据库设计;
(7)系统界面设计。
软件系统由各个具体的功能模块组成,若值班员未登录或登
录失败,则只能使用登录,帮助,关于,退出这四个功能模块。
登录
成功后才可以使用全部的功能模块。
各个功能模块都是分别进行
开发的,这样就便于日后拓展功能,也易于检查和修改错误。
软件
的系统结构如图1所示。
3系统设计方案
根据系统功能的要求,考虑到VisualC++的编程特点,将酒店
管理系统分解成前台和后台两部分,并将系统分解为几个比较小
的功能模块分别进行开发。
使得开发过程更具条理性,并且方便
对模块功能进行修改或添加新的功能模块,从而使整个系统能够
随着酒店业务的扩展进行功能的升级。
为了增强系统的安全性,
需要设计登录模块,登录成功后才可以使用全部功能.整个酒店管
理系统的设计方案如图2所示。
图1软件系统结构
图2系统设计方案
摘要:
本文主要介绍了利用VisualC++开发的酒店管理系统。
随着软件开发技术和数据库技术的完善与发展,国内外的企业已经开
始充分利用各种各样的系统管理软件来管理诸如销售信息、产品信息、员工信息等大量日趋繁杂的资料,计算机辅助管理的高效性和高
安全性等优点使得传统的管理方式黯然失色,也为系统管理软件的发展提供了更广阔的前景和发展空间。
本系统设计的主要目标是设计
一个面向中小型酒店的简单易用的酒店管理系统。
前台以VisualC++为开发工具,设计软件的界面和各个功能模块;
后台使用SQL
Server2000进行系统数据库的连接和管理。
本系统已基本实现了中小型酒店常用的点菜、订菜、结算等功能,帮助酒店建立了菜谱数据库
和销售存根数据库,可以方便地进行查询,并在系统的易用性和安全性两方面进行了相应的完善。
关键词:
VisualC++;
安全性;
数据库
中图分类号:
TP315文献标识码:
A文章编号:
1009-3044(2007)19-40023-03
TheDesignmentandImplementationofRestaurantManagementSystem
GANChao-Song1,XIARong2
(1.SchoolofComputing,JiangxiCityVocationalInstitute,Nanchang330004,China;
2.ScienceandTechnologyCollegeofNCHU,Nanchang
330034,China)
Abstract:
ThispapermainlyintroducesthemanagementsystemofrestaurantdevelopedwithMicrosoftVisualC++.Withthedevelopment
ofsoftwareanddatabasetechnology,thedomesticcorporationsandtheoverseacorporationsalreadybegintomakefulluseofallkindsofsystem
managementsoftwaretomanagelotsofinteriorthings,suchasvenditioninformation、productioninformation、employeeinformationandsoon.
Computer-aidedmanagementhaslotsofmeritscomparedwithtraditionalmanagementmode,suchashighefficiencyandhighsecurity.Italso
suppliesmorewideforegroundanddevelopingspaceforthedevelopmentofsystemmanagementsoftware.Themainaimofthissystemistodesign
aeasily-usingmanagementsystemofrestaurantforpettyrestaurant.FrontendusesVisualC++asdevelopingtool,designsmaininterface
andfunctionmodules;
backgrounduseSQLServer2000forconnectingandmanagingsystemdatabase.Thissystembasiclyactualizedfunctions
incommonuseoforderdishes、prearrangement、settleaccountsforpettyrestaurant,andhelprestauranttosetupdatabaseofbillsoffareandvendition
information.Theycanexpedientlybequeryedandstrengthentheeasily-usingandsecurityofsystem.
Keywords:
VisualC++;
security;
database
23
4设计要点与注意事项
4.1设计要点
图形化界面尽量做到美观简洁;
充分考虑到系统的安全性;
通过使用map类快速保存和检索数据集结果;
通过使用数据绑定技术优化代码。
4.2注意事项
系统运行前数据库要进行正确配置;
算法应简单明了,有较高的时空效率;
注意学习使用数据绑定等新技术;
设计登录模块时注意增强安全性。
5关键技术
5.1数据库的连接
将SQLServer默认的数据库设置为酒店管理系统所在的
RMS后,就可以在程序中使用DSN来访问SQLServer数据库了。
CRMSDlg:
:
OnInitDialog()中连接数据库部分的代码如下:
try{m_DBCnt.CreateInstance(_uuidof(Connection));
m_DBCnt->
ConnectionString="
DSN=RMS;
UID=fdd;
PWD=
121"
;
m_DBCnt->
Open("
"
"
-1);
}catch(_com_error&
e)
{AfxMessageBox(e.ErrorMessage());
this->
EndDialog(0);
}
returnTRUE;
其中DSN=后面即为酒店管理系统所用的数据库的名称,可
根据实际情况进行更改。
5.2菜谱管理模块
菜谱对话框的设计采用一个列表框控件显示读取的数据记
录,并在CDlgViewCP:
OnInitDialog()中对这个控件(m_list)进行初
始化(分割列,设置列宽,设置风格等),其中m_list.SetExtendedStyle
(LVS_EX_FULLROWSELECT);
这一行代码使单击列表框时选中其
中的一整行,而不是其中的某一格。
在单击并选中某一行的时候,
程序处理这个单击事件,并将这一行的数据在下面的列表框中显
示出来,利用函数CDlgViewCP:
OnClickListCp来实现这一点:
inti=m_list.GetSelectionMark();
m_no=m_list.GetItemText(i,0);
m_name=m_list.GetItemText(i,1);
m_kind=m_list.GetItemText(i,2);
m_price=(float)atof(m_list.GetItemText(i,3));
m_detail=m_list.GetItemText(i,4);
UpdateData(FALSE);
*pResult=0;
另外在菜谱管理模块中还要同时实现菜谱查询功能,即由用
户选择查询目标(编号,菜名,种类),再填入所要查询的内容就可在
菜谱中查询到符合条件的菜。
如果没有输入任何查询条件,那么
就列出菜谱中所有的菜。
voidCDlgViewCP:
RefreshData(LPCTSTRqry)
{m_list.DeleteAllItems();
m_list.SetRedraw(FALSE);
_RecordsetPtrpRst=NULL;
IADORecordBinding*picRs=NULL;
//InterfacePointerdeclared.(
VC++Extensions)
CCPRsrs;
try{_bstr_tstrSQL=qry;
TESTHR(pRst.CreateInstance(_uuidof(Recordset)));
pRst=m_DBCnt->
Execute(strSQL,NULL,adCmdText);
//数据绑定(DataBinding)
TESTHR(pRst->
QueryInterface(_uuidof(IADORecordBinding),
(LPVOID*)&
picRs));
TESTHR(picRs->
BindToRecordset(&
rs));
inti=0;
charbuf[128];
while(!
pRst->
adoEOF)
{m_list.InsertItem(0,rs.m_sz_no);
m_list.SetItemText(i,1,rs.m_sz_name);
m_list.SetItemText(i,2,rs.m_sz_kind);
sprintf(buf,"
%f"
rs.m_f_price);
m_list.SetItemText(i,3,buf);
m_list.SetItemText(i,4,rs.m_sz_detail);
//移到下一条记录
pRst->
MoveNext();
picRs->
Release();
Cl