酒店餐饮管理系统

时间:2021-10-13 15:18:08  来源:网友投稿

  软件工程实践项目 学 学

  生:

 学 学

 号:

  专 专

  业:

  软件工程

  班 班

  级:

 指导教师:

 二〇XX 年 年 X 月 月

 目

 录

 1 绪论误错ﻩ 错误! 未定义书签。

 1、1 课题背景误错ﻩ 错误! 未定义书签。

 1、2 目得及意义误错ﻩ 错误! 未定义书签。

 2 可行性分析 ........................................................................................ 错误! 未定义书签。

 2、1 技术上得可行性 .................................................................. 错误! 未定义书签。

 2、2 经济上得可行性误错ﻩ 错误! 未定义书签。

 3 需求分析 .......................................................................................... 错误! 未定义书签。

 3、1 软件功能模块设计 ................................................................... 错误! 未定义书签。

 3、2 数据库设计 .............................................................................. 错误! 未定义书签。

 3、2、1 数据库分析误错ﻩ 错误! 未定义书签。

 3、2、2 数据库概念设计 .......................................................... 错误! 未定义书签。

 3、2、3 数据库逻辑结构设计 .................................................... 错误! 未定义书签。

 4、详细设计与实现 .............................................................................. 错误! 未定义书签。

 4、1 公共类实现误错ﻩ 错误! 未定义书签。

 4、2 主窗体设计误错ﻩ 错误! 未定义书签。

 4、3注册模块设计误错ﻩ 错误! 未定义书签。

 4、3、1注册模块概述 .............................................................................................. 10 4、3、2 注册模块技术分析误错ﻩ 错误! 未定义书签。

 4、4 登陆模块设计误错ﻩ 错误! 未定义书签。

 4、4、1 登陆模块概述 .............................................................. 错误! 未定义书签。

 4、4、2 登陆模块技术分析 ......................................................... 错误! 未定义书签。

 4、5 开台模块设计误错ﻩ 错误! 未定义书签。

 4、5、1 开台模块概述 .............................................................. 错误! 未定义书签。

 4、5、2 开台模块技术分析 ...................................................... 错误! 未定义书签。

 4、6点菜模块设计误错ﻩ 错误! 未定义书签。

 4、6、1 点菜模块概述误错ﻩ 错误! 未定义书签。

 4、6、2 点菜模块技术分析 31ﻩ4、7 结帐模块设计误错ﻩ 错误! 未定义书签。

 4、7、1 结帐模块概述 .............................................................. 错误! 未定义书签。

 4、7、2 结帐模块技术分析 ........................................................ 错误! 未定义书签。

 4、8 数据库维护模块设计误错ﻩ 错误! 未定义书签。

 4、8、1 数据库维护模块概述 .................................................. 错误! 未定义书签。

 4、8、2 数据库维护模块技术分析 .......................................... 错误! 未定义书签。

 5 结论 .................................................................................................... 错误! 未定义书签。

 酒店餐饮管理系统

 摘 要:随着国家经济得不断蓬勃发展,国民生活水平得不断提高,国民消费水平得提高带动了酒店餐饮行业得发展;近几年,大、中、小城市中酒店餐饮行业得发展可谓蒸蒸日上,传统得手工作业方式已经不能满足餐饮经营得需求了。人工记账,核算、查询等工作既费时、费力,又容易出错。通过在计算机中运行餐饮管理系统,以上得问题迎刃而解。原来需要大量时间与人力得工作,现在只需要几人便可以轻松解决。既提高了工作效率,又节省了大量人力资源,为广大酒店餐饮行业得经营者带来了更多得利益,同时也方便了广大得消费者。

 关键字:软件;餐饮管理系统;ACCESS;VC++ 1 绪论

  1 1 、1 1

 课题背景

 俗话说:“民以食为天。”随着人民生活水平得提高,餐饮业在服务行业中得地位越来越重要,从激烈得竞争中脱颖而出,已成为每位餐饮业经营者所追求得目标。

 经过多年发展,餐饮管理已经逐渐由人工管理进入到重视规范、科学管理得阶段。众所周知,在科学管理得具体实现方法中,最有效得工具就就是应用应用管理软件来进行管理。在以往得人工操作中存在着许多问题,例如: 人工计算账单容易出现错误;收银工作中容易发生账单丢失;客人具体消费信息难以查询;无法对以往营业数据进行查询。

 1 1 、 2 目得及意义

 我国近年来经济不断发展,人们物质生活水平逐步提高,人们对生活质量得要求也越来越高,享受真正自动化、人性化得酒店服务成为了人们追求高质量生活得重要内容。餐饮业要想跟得上发展形势,酒店管理得信息化进程也要加快脚步。为了在总体上实现酒店管理得自动化、规范化与人性化,需要酒店管理由经验管理转为科学管理,这样才能跟上现代化得节奏。这套餐饮管理系统,就是针对酒店得具体业务而开发得,业务管理以酒店得餐饮管理为核心,为用户提供迅速、高效得服务,减免手工处理得繁琐与误差,及时、准确地反映酒店得工作情况、经营情况,从而提高酒店得服务质量,并配合现代化得酒店管理,获得更好得经济效益。

 2 2

 可行性分析

 2、 1 技术上得可行性

  本管理信息系统将采用技术成熟得VC++台开发工具。后台数据库采用 Access得灵活性,安全性,与易用性为数据库编程提供了良好得条件。因此,系统得软件开发平台已成熟可行。硬件方面,科技得飞速发展使硬件得更新速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统得需要。

 2、2 2 经济上得可行性

 本系统由作者自主开发,操作简单,操作人员只需简单培训即可上岗。管理与维护比较简单,除了必要得设备投资外,后期只需少量资金就可确保运转。因此对于中小型酒店在经济上完全可以接受。

 本系统得使用能大大提高员工工作效率,加速资金周转、降低各项成本及改善服务质量。能够取得良好得经济效益。

 综上所述,本系统在管理上,在技术上与经济上就是完全可行得,并且投入少,见效快。因此系统得开发完全可行得。

 3 3

 需求分析

 随着酒店餐饮行业得迅速发展,现有得人工管理模式已经不能完全胜任。广大酒店餐饮经营者已经意识到使用计算机信息技术得重要性,决定餐饮管理采用计算机管理系统。

 管台前出突,础基为务业饮餐以应统系该,况情际实得业企该与点特得业行饮餐店酒据根ﻩ理,从专业角度出发,提供科学有效得管理模式,点菜方面采取表单价数据得方式就是用户能直观地管理数据信息,并能有效地管理每个台号所点得酒菜。点菜收银管理可实现点菜、结帐、清台。点菜收银、营业分析得有机结合,可为酒店经营方向提供依据,为酒店餐馆得发展提供重要保证。

 3 3 、1 1 软件功能模块设计

 酒店餐饮系统包含前台管理、后台服务、财政服务与系统服务几个部分功能,其功能结构图如图1所示。

  图 1

 餐饮管理系统功能结构图 酒店餐饮系统得业务流程图如图 2 所示:

 图 2 餐饮管理系统业务流程图 3 3 、 2 数据库设计

 最中计设统系是就计设库据数,分部得少可不必统系得功成个一每是就库据数得好个一ﻩ关键得一步。所以要根据信息量设计一个合适得数据库。

 3、2、1 数据库分析

 因为酒店餐饮管理系统中需存储得数据信息量不大,对数据库得要求并不就是很高,所以本系统采用了 Microsoft Access 2003 数据库,数据库名称为canyin。在数据库中一共建立了5张表,用于存储不同得信息,如图3所示。

  图 3 数据库 canyin 中得表 3、2、2 数据库概念设计 (1)用户信息实体

 用户信息实体包括用户登录帐号、用户登录密码与用户权限。用户信息实体 E-R 图如图 4 所示。

 图 4 用户信息实体 E-R 图 (2)菜式信息实体

 菜式信息实体包括菜式名称与菜式价格。菜式信息实体 E-R 图如图5所示。

  图 5 菜式信息实体 E-R图 (3)账单信息实体

 账单信息实体包括菜式名称、菜式价格、菜式数量与结帐桌号。账单信息实体E-R图如图6所示。

 图 6 账单信息实体E-R图 (4)收入信息实体

 收入信息实体包括日收入金额与收入时间。收入信息实体 E-R 图如图 7 所示。

  图 7 收入信息实体 E-R 图 (5)餐桌使用情况实体

 餐桌使用情况实体包括餐桌桌号与餐桌状态。餐桌使用情况实体 E-R 图如图 8 所示。

 图 8 餐桌使用情况实体E-R 图 3、2、3 数据库逻辑结构设计 根据上述所描述得实体 E-R 图,下一步就该进行数据表得创建。

 (1)

 菜式信息表(caishiinfo)。菜式信息表只要用于记录菜式信息,包括菜式名称与菜式价格,如图 9 所示。

 图 9 菜式信息表 (2)

 用户信息表(Login)。用户信息表主要用于保存用户帐号、密码与权限等信息,如图 10 所示。

  图 10 用户信息表 (3)

 账单信息表(paybill)。账单信息表主要用于保存顾客得消费信息,如图 11 所示。

 图 11 账单信息表 (4)

 收入信息表(shouru)。收入信息表主要用于记录每天得总营业信息,以方便用户查询日收入总额及月收入总额情况,如图 12 所示。

 图 12 收入信息表 (5)

 餐桌使用情况表(TableUSE)。餐桌使用情况表主要记录每个餐桌得使用情况,如图 13 所示。

 图13 餐桌使用情况表 4 4 、详细设计与实现

 4 4 、1 1 公 共类实现

 系统在设计中,经常会重复使用同一种功能模块,为避免代码重复使用率过高,经常将重复使用频率高得代码写成公共类。

 数据库连接就是系统中必不可少得部分,在每个模块中都需要连接数据库进行数据操作。为此,我将数据库连接方法写在程序得App 类中。

 设计步骤如下。

 (1)

 在工作区窗口选择选项卡,在 Header Files 目录下找到头文件 StdAfx、h,向其添加如下代码,用于将 msado15、dll 动态链接库导入程序中,如图 14 所示。

 图 14 导入动态链接库 (2)接着在 App 类中得InitInstance()方法中添加代码,设置数据库链接, 因为App 类中有全局变量 theApp,所以在 App 类中连接数据库后可以方便得使用全局变量对其进行操作。代码如下:

 BOOL CMyApp::InitInstance()

 {

 ;)(reniatnoClortnoCelbanExfAﻩ ::CoInitialize(NULL);

 HRESULT

 hr;//ﻩ

 例实TLUSERH 个一义定ﻩﻩ try

 {ﻩ

 hr=m_pCon、CreateInstance("ADODB、Connection");// 接链建创ﻩﻩ

 if(SUCCEEDED(hr))//

 功成否是就接连建创断判ﻩﻩ

 { ﻩ/;3=tuoemiTnoitcennoC>-noCp_mﻩ/

 秒 3 为置设时延接链ﻩﻩ

 taD;0、4、BDELO、teJ、tfosorciM=redivorP"(nepO>-noCp_m=rhﻩa Source=canyin、mdb","","",adModeUnknown);

 // 库据数接链ﻩ;//ﻩeslaF=ofnI ytiruceS tsisrePﻩ

 }

 }ﻩ )e rorre__(hctacﻩ {ﻩ ﻩ CString temp; /;))(egasseMrorrE、e,"s%:息信误错库据数接连"(tamroF、pmetﻩﻩ/信误错得获ﻩ息

  ::MessageBox(NULL,temp,"提示信息",NULL);//

 息信误错出弹ﻩ

 return false;

 } // 略省码代下以ﻩ

  ……

  return FALSE; }

 4、2 2 主窗体设计

 程序主窗体作为第一个展示在用户面前得窗体,就是用户对程序得第一感觉,在程序中起着非常重要得作用。主窗体应该向用户展示程序常用得功能,使用户对程序有一个初步得认识。主窗体运行结果如图 15 所示。

  菜单栏(包括登录、前台服务、后台服务等一系列程序所拥有得功能)。

  工具栏(包括程序必较常用得几个功能,例如开台、结帐等)。

  状态栏(包括系统得名称、用户登录信息等)。

 图 15 程序主窗体运行结果 4 4 、3 3 注册模块设计

 4、3、1 注册模块概述 注册模块就是一个完善得管理系统中必不可少得部分,主要用于预防非法用户随意登录系统并对系统数据进行修改破坏,给经营者造成不可挽回得损失。只有系统管理员才能通过注册模块对指定得人员进行注册,使其可以对系统进行相应操作,大大提高该系统得安全性。注册模块如图 16 所示。

  图 16 注册模块效果图 4、3、2 注册模块技术分析 在此模块中只要就是SQL 语句得灵活应用,通过向数据表中直接添加数据即可实现用户注册得目得,添加数据可以用INSERT 语句来实现。在此也介绍了 SQL 语句得执行方法Execute,通过连接对象得Execute 方法可以很容易地执行 INSERT语句。

 Execute 方法得语句如下: Connection Execute(_bstr_t mandText,VARIANT * RecordsAffected,long Options) 参数说明如下。

  mandText:命令字符串,通常就是 SQL 命令。

  RecordsAffected:操作后所影响得行数。

  Options:mandText 中内容得类型,气质如表 1 所示。

 表1 Options 值表 值 描述 adCmdText 表明mandText得类型就是文本 adCmdTable 表明 mandText 得类型就是表名 adCmdStoredProc 表明 mandText 得类型就是存储过程 adCmdUnknown 表明 mandText得类型未知 INSERT语句得剧本语法如下: INSERT INTO [表名](需要插入得列名)

 values(要插入得数值) 4 4 、 4 登 陆 模块设计

 4、4、1 登陆模块概述 在本系统中,登陆模块得功能就是判断用户就是否就是合法用户及根据登陆用户得权限开放相应得模块,就是保障系统安全得第一道关卡。登陆模块运行结果如图17 所示。

 图17 登陆模块运行结果 4、4、2 登陆模块技术分析 在登陆模块中,为了避免个别人恶意猜测她人帐号密码,我在系统中添加了密码错误数量限制,如果密码输入错误此时超过 3 次,整个程序就会退出。为了实现这一功能,现在主对话框得“登陆”按钮代码中加入如下代码: if(Logindlg、i==3)

 CDialog::OnCancel();

 //陆登是就 gldnigolﻩ模块得一个实例

 判断登陆模块中得 i 值就是否为 3,如果就是则调用主窗体得退出事件;在调用前应该先关闭登陆模块对话框,所以在登陆模块对话框中得“确定”按钮中加入如下代码: if(i==3) OnCancel();

 //当 i==3 就是调用“退出”按钮 当 i=3 就是调用登陆模块对话框中得“退出”按钮事件,OnCancel 方法就是登陆对话框得“退出”按钮事件。

 4 、 5 开台模 块 设计

 4、5、1 开台模块概述 开台就是酒店餐饮系统中前台得第一个服务,顾客前来就餐第一步就就是开台,开台模式应该直观地为用户展示当前空桌得情况,提高用户工作效率。开台模块运行结果如图 18所示。

 图 18 开台模块运行结果 4、5、2 开台模块技术分析 在此模块中主要涉及对列表控件得使用及如何将数据表中得数据导入到列表控件中。在

 营业员为顾客进行选桌服务时,可以在桌台信息表中双击要开台得桌台,即可将此桌台得桌号信息添加到“选择桌号”文本框中,大大方便了使用者。实现此功能首先在消息 对话框左边得控件名称中找到列表控件,再在右边得时间中选择NM_DBLCLK事件,并为其添加相应得代码,在获取事件前系统要先获得用户双击选项得位置信息,通过GetSelectionMark 方法可以得到当前鼠标双击得位置信息,再通过GetItemText方法获得当前位置得文本。这两个方法得语法如下: int GetSelectionMark(); 返回得就是位置所在得行号,-1 表示没有位置; CString GetItemText(int nItem, int nSubItem); 参数说明如下:  nItem:表示位置所在行号。

  nSubItem:表示列号。

 4 4 、6 6 点菜模块设计

 4、6、1 点菜模块概述 点菜模块与开台模块密不可分,在为顾客开台后会自动弹出点菜窗口为顾客点菜。点菜模块运行结果如图 19 所示。

 图 19 点菜模块运行结果 4、6、2 点菜模块技术分析 在点菜模块中主要应用了两列表控件之间得数据传递技术,即将顾客所需要得菜式从菜

 单中选则并将其添加到顾客得账单列表中。在传递过程中,菜单列表就是不能被修改得,账单列表要在每加进去一样菜式就必须增加一行数据,而在逆向传递时账单列表得数据要相应减少但菜单列表中不变。菜单列表应该采取直接从数据库中读取得方式,以防遭人恶意修改,在单击“确定”按钮前所有得数据应该都只在列表控件中进行传递而不写入数据库,保证数据库得安全。在获得列表控件当前鼠标指针所在位置时可以用 4、5 提到得GetSelectionMark方法得到。项列表中插入数据可以使用 SetItemText方法,该方法用于设置视图项得文本。

 语法如下: BOOL SetItemText(int nItem,int nSubItem,LPTSTR lpszText); 参数说明如下。

  nItem:标识行索引。

  nSubItem:标识列索引。

  lpszText:标识设置得视图项文本。

 4 4 、 7 结帐 模块 设计

 4、7、1 结帐模块概述 结帐模块可对当前顾客消费进行结算,顾客结帐完成后系统自动将收入金额数据写入数据表中,从而能很好地反应营业情况。结帐模块运行结果如图 20 所示。

 图20 结帐模块运行结果 4、7、2 结帐模块技术分析 在结帐时如果顾客所在得餐台号比较靠后,在下拉控件中就必须按下拉按钮慢慢地往后寻找顾客得餐台号,在结帐顾客数量较多得情况下,这种方法显然严重影响了工作效率。为此我为下拉控件增加了手工输入得功能,使营业员结帐时既可以在下拉列表框中选

 择桌号,也可以手工输入桌号,极大地方便了使用者,提高了结帐速度与顾客得满意程度。

 要实现上述功能,就必须给列表控件添加一个ENITCHANGE事件,在事件中添加相应代码输入得信息进行判断。本系统中得餐台号都就是4位数,因此在事件中首先判断输入得就是否就是一个 4 位数,如果不就是则提示错误信息;如果就是则显示相信得消费信息。实现这一功能需要使用 CString 类提供得 GetLength 方法。

 语法如下: int GetLength() 返回值就是一个整型数,就就是字符串得长度。

 4 4 、 8 数 据库维护模块设计

 4、8、1 数据库维护模块概述 在系统得日常使用过程中,数据库损坏或数据库丢失得现象时有发生,为了避免该现象对用户造成得影响,本系统中加入了数据库维护模块,用户可以通过该模块对数据库进行备份、还原及初始化等操作,大大提高了数据得安全性。数据库维护模块运行结果如图 21与图22 所示。

 图 21 数据库备份运行结果

 图 22 数据库还原运行结果 4、8、2 数据库维护模块技术分析 由于本系统采用得就是 Access2003数据库,所以在数据库得操作方面与 SQL Server 数据库有一定得不同,以备份为例,在系统进行复制前首先要获得当前数据库所在得位置,这时可以用 GetCurrentDirectory 方法获取当前数据库所在得地址路径。实现代码如下: char buf[256];

 //首先创建一个字符数组存放路径 :: GetCurrentDirectory(256,buf);

  //获取数据库所在得文件夹 strcat(buf,”\\canyin、mdb”);//址地得库据数成组接链称名库据数与径路夹件文将ﻩ路径 5 5

 结论

 酒店餐饮服务管理系统得开发终于完成了。在本系统得设计与实现得过程中主要讲述了酒店餐饮管理系统得系统设计部分,包括功能模块设计、数据库结构设计等。系统设计为整个程序构建了骨架,各个功能模块实现各个细节部分。

 系统得详细设计根据系统分析阶段得结论将系统具体化,并完成了各个模块得添加、修改、删除与查询得功能,直到最后形成一个完整得可行性得管理系统。

 通过这次课程设计使我懂得了理论与实际相结合就是很重要得,只有理论知识就是远远不够得,只有把所学得理论知识与实践相结合起来,从实践中得出结论,才能真正为社会服务,从而提高自己得实际动手能力与独立思考得能力。同时,在老师与同学得身上我也学到很多实用得知识,在此我表示衷心得感谢!

 由于经验得不足以及时间关系,本系统还存在很多不足得地方,希望各位老师、同行提成宝贵得建议。

推荐访问:管理系统 餐饮 酒店