基于Visual C++开发的酒店餐饮管理系统
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
1 前言
1.1 课题的项目背景
随着酒店业竞争的加剧,酒店之间客源的争夺越来越激烈,酒店需要使用更有效的信息化手段,拓展经营空间,降低运营成本,提高管理和决策效率。传统的酒店计算机管理系统主要包括前台管理系统和后台管理系统两大部分,基本包含了酒店主要业务部门,初步实现了对顾客服务和进行财务核算所需要的各个功能。但传统的酒店管理系统是基于财务管理为主线的设计理念,无法满足酒店全面信息化管理的需要。
现代酒店业迅速发展,新的管理观念与模式层出不穷。酒店管理系统亦随着酒店管理理念的发展而发展。采用了先进的数据库理论、多媒体技术、软件工程理念等高新技术成果,结合自身软件开发经验,从基层、中层、高层三个管理者层次为切入点,以成本分析、预测、控制为主线,融合国际先进管理理念,形成一套上下贯通、功能强大、设计先进、操作便捷的酒店系统解决方案。科学地将酒店各种日常业务完美的结合在一起,为管理及决策提供了强有力的支持。
1.2 课题的实现意义
本系统适用于一般的小型酒店,其能实现客人个性化服务、全面彻底的信息化、使企业电算化管理水平升到一个新的更高的层次、软件各项功能亦相当完善。应用本系统后,电脑在酒店的使用已不单纯是减轻劳动强度、减少人员开支、提高核算精度以及减少财务错漏,更重要的是它能为整个企业的管理模式带入一种新的思维,一种新的理念,它能为高层管理人员提供大量丰富的基于企业管理经营过程中产生的实际的数据,供经营决策参考。具体的说它的实现有如下意义。 【买计算机毕业论文就到计算机毕业论文网】 内容来自think58 [资料来源:www.THINK58.com]
1、设计合理
融合了多年的行业实践经验,及自身开发经验,为客户提供强大的功能及丰富的管理模式,模块化开发、拆卸方便、高度集成。
2、使用方便
独特的基于列表框的浏览模式,层次分明,操作顺畅,丰富的视图显示,简单明了,所有数据输入均进行完整性、合法性校验,使操作错误减至最低,各种复杂强大的功能于指点间轻松掌握。
3、强化管理
使总台、餐饮前台、服务员、厨房、吧台、收银台、财务、管理部门、总经理决策机构之间通过网络互接到一起,各类销售数据、员工工作量、库房入库出库、菜品成本核算、菜品消费统计、挂帐、欠帐、结算、协议单位消费等等各类错综复杂的数据均会记录于数据库中,并提供精确查询、模糊查询、复合查询、多级查询等多种方式,可根据用户选择自动合成各类决策所需的图表,随时对管理各方面进行单项分析、阶段分析、复合分析、综合分析,为决策提供强力支持。
4、开源节流
各部门利用电脑协同工作,各类信息在网络上轻松传送、真正实现无纸化经营,完善的权限管理及保密机制,有效的维护商业秘密,彻底的电算化服务,极大的提高了工作效率,成熟的软件管理体制,杜绝日常运营中可能产生的人员、管理、经营、操作上的漏洞将各项失误减至最小。
5、提高服务
软件设计以人为本,其重点在于提高餐饮企业服务水平、档次及工作效率,进而实质性提高企业服务水准,酒店解决方案着眼于不同顾客的各种需要、从管理到服务各个方面方便满足顾客的合理需要,进而提高企业的核心竞争力。
6、安全稳定
通过选用优秀的开发工具、先进的开发模式、成熟的网络结构及安全稳定的数据库,使系统本身具有了极强的可靠性与容错性。通过软件权限管理、数据库权限管理、操作系统权限管理三方面,彻底保证了数据的安全性。
2 数据库系统开发相关知识介绍
2.1 MFC消息映射机制的具体实现过程
在Windows中,不仅用户程序可以调用系统的API函数,返回来系统也会调用用户程序,这个调用是通过消息来进行[1]。由此可知Windows程序设计是一种完全不同于传统的DOS方式的程序设计方法。它是一种事件驱动方式的程序设计模式,主要是基于消息的。所以在使用Visual C++这种工具开发项目之前,我们要对其MFC的消息映射机制有所了解,下面将对其进行简单的介绍。
MFC消息机制的具体实现方法是:在每个能接收和处理消息的类中,定义一个消息和消息函数静态对照表,即消息映射表。在消息映射表中,消息与对应的消息处理函数指针是成对出现的。某个类能处理的所有消息及其对应的消息处理函数的地址都列在这个类对应的静态表中。当有消息需要处理时,程序只要检索该消息静态表,查看表中是否含有该消息,就可以知道该类能否处理此消息。如果能处理该消息,则同样依照静态表能很容易找到并调用对应的消息处理函数。 内容来自think58 [版权所有:http://think58.com]
为了看清楚MFC消息映射机制的实际实现过程,先新建一个单文档类型的MFC AppWizard (exe)工程,取名为Draw。MFC在后台维护了一个窗口句柄与对应的C++对象指针的对照表。以CDrawView类为例,与CDrawViewd对象相关的有一个窗口,窗口当然有它的窗口句柄,该句柄与CDrawView对象的一个指针(即CDrawView*)存在着一一对应关系,在窗口与C++对象对照表中就维护了这种对应关系。当收到某一消息时,消息的第一个参数就指明该消息与哪个句柄相关,通过对照表,就可以找到与之相关的C++对象指针。然后把这个指针传递给应用程序框架窗口类的基类,后者会调用一个名为WindowProc的函数。该函数的定义位于WinCore.cpp文件。代码如下:
LRESULT CWind::WindowProc(UINT message,WPARAM wParam,LPARAM lParam)
{
//OnWndMsg does most of the work ,except for DefWindowProc call
LRESULT lResult=0;
if(!OnWndMsg(message,wParam,lParam,&lResult)lResult=DefWindowProc(message,wParam,lParam);
return lResult;
}
根据这个WindowProc函数的定义,我们发现它是一个虚函数。同时,也可以发现,CWind::WindowProc函数内部调用了一个OnWndMsg函数,真正的消息路由,也就是消息映射就是由此函数完成的。OnWndMsg函数的定义也位于WinCore.cpp文件中,部分代码如下:
[资料来源:http://THINK58.com]
BOOLCWnd::OnWndMsg(UINTmessage,WPARAMwParam,LPARAM lParam,LRESULT*pResult)
{
LRESULT lResult=0;
//special cade for commands
if(message==WM_COMMAND)
{
if(OnCommand(wParam,lParam))
{
lResult=1;
goto LReturnTrue;
}
return FALSE;
}
//special case for notifies
if(message==WM_NOTIFY)
{
NMHDR*pNMHDR=(NMHDR*)lParam;
If(pNMHDR->hwndFrom!=NULL&&OnNotify(wParam,lParam,&lResult))
Goto LReturnTrue;
Ruturn FALSE;
}
//special case for activation
if(message==WM_ACTIVATE)
_AfxHandleActivate(this,wParam,CWnd::FromHandle((HWND)lParam));
//special case for set cursor HTERROR
if(message==WM_SETCURSOR&&_AfxHandleSetCursor(this,(short)LOWORD(lParam),HIWORD(lParam)))
{ think58 [来源:http://www.think58.com]
lResult=1;
goto LReturnTrue;
}
… …
return TRUE;
}
OnWndMsg函数的处理过程是:
首先判断是否有消息响应函数。判断方法是在相应窗口类中查找所需的消息响应函数。因为传递给WindowProc函数的是窗口子类指针,所以,OnWndMsg函数会到相应的子类头文件中查找,看看DECLARE_MAP( )宏之上,两个AFX_MSG注释之间是否有相应的消息响应函数原型的声明;再到子类的源文件中,看看BEGIN_MESSAGE_MAP和END_MESSAGE_MAP( )这两个宏之间是否有相应的消息映射宏。
如果通过上述步骤,找到了消息响应函数,那么接着就会调用该响应函数,对消息进行处理。如果在子类中没有找到消息响应函数,那么就交由基类进行处理。通过以上步骤,MFC就实现了具体的消息映射,从而完成对消息的响应。
2.2 关系型数据库的基本概念
数据库这一概念提出后,先后出现了几种数据模型。其中基本的数据模型有三种:层次模型系统、网络模型系统、和关系模型系统。六十年代末期提出的关系模型具有数据结构简单灵活、易学易懂且具有雄厚的数学基础等特点,从七十年****始流行,发展到现在已成为数据库的标准。目前广泛使用的数据库软件都是基于关系模型的关系数据库管理系统。
本文来自think58
[来源:http://think58.com]
2.2.1 关系模型(RM即Relational Model)
关系模型把世界看作是由实体(Entity)和联系(Relationship)构成的[13]。
所谓实体就是指现实世界中具有区分与其它事物的特征或属性并与其它实体有联系的对象。在关系模型中实体通常是以表的形式来表现的。表的每一行描述实体的一个实例,表的每一列描述实体的一个特征或属性。
所谓联系就是指实体之间的关系,即实体之间的对应关系。联系可以分为三种:
A. 一对一的联系。如:一个人只有一种性别,一个人→性别为一对一的联系;
B. 一对多的联系。如:相同性别的人有许多个,性别→人为一对多的联系;
C. 多对一的联系。如:很多人有同一个性别,人→性别为多对一的联系。
通过联系就可以用一个实体的信息来查找另一个实体的信息。
关系模型把所有的数据都组织到表中。表是由行和列组成的,行表示数据的记录,列表示记录中的域。表反映了现实世界中的事实和值。
2.2.2 关系数据库(RDB即Relational Database)
所谓关系数据库就是基于关系模型的数据库,下面是与其有关的几个重要的概念:
A. 关系数据库管理系统(RDBMS)
B. 关系数据库管理系统就是管理关系数据库的计算机软件 think58 [资料来源:http://THINK58.com]
C. 关键字(Key)
关键字是关系模型中的一个重要概念,它是逻辑结构,不是数据库的物理部分。
a. 侯选关键字(Candidate Key)
如果一个属性集能惟一地标识表的一行而又不含多余的属性,那么这个属性集称为侯选关键字。
b. 主关键字(Primary Key)
主关键字是被挑选出来,作表的行的惟一标识的侯选关键字。一个表只有一个主关键字。主关键字又可以称为主键。
c. 公共关键字(Common Key)
在关系数据库中,关系之间的联系是通过相容或相同的属性或属性组来表示的。如果两个关系中具有相容或相同的属性或属性组,那么这个属性或属性组被称为这两个关系的公共关键字。
d. 外关键字(Foreign Key)
如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外关键字。由此可见,外关键字表示了两个关系之间的联系。以另一个关系的外关键字作主关键字的表被称为主表,具有此外关键字的表被称为主表的从表。外关键字又称作外键[12]。
下一篇:RSA文件加密软件的设计与实现