最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

毕业设计--餐饮管理系统

来源:动视网 责编:小OO 时间:2025-09-23 06:46:12
文档

毕业设计--餐饮管理系统

餐饮管理系统摘要中国经济的高速增长使得餐饮市场成为消费需求升温最为可观的市场,这直接推动了中国餐饮业规模的不断扩大,同时也导致了餐饮业竞争的日益激烈,使得传统的手工管理无法避免的管理弊端越显尖锐。这就迫切需要标准的、高效率的管理方式引导其发展,通过计算机管理企业的日常运作,给管理者以决策参考的模型,来不断完善管理水平,提高工作效率。餐饮企业管理要求信息化的需求已成为趋势。本系统以中小型餐饮企业为研究对象,深入分析其需求特点,采用Access为后台数据库,以C++为前端开发工具,实现了前台服务、
推荐度:
导读餐饮管理系统摘要中国经济的高速增长使得餐饮市场成为消费需求升温最为可观的市场,这直接推动了中国餐饮业规模的不断扩大,同时也导致了餐饮业竞争的日益激烈,使得传统的手工管理无法避免的管理弊端越显尖锐。这就迫切需要标准的、高效率的管理方式引导其发展,通过计算机管理企业的日常运作,给管理者以决策参考的模型,来不断完善管理水平,提高工作效率。餐饮企业管理要求信息化的需求已成为趋势。本系统以中小型餐饮企业为研究对象,深入分析其需求特点,采用Access为后台数据库,以C++为前端开发工具,实现了前台服务、
餐饮管理系统

摘要

中国经济的高速增长使得餐饮市场成为消费需求升温最为可观的市场,这直接推动了中国餐饮业规模的不断扩大,同时也导致了餐饮业竞争的日益激烈,使得传统的手工管理无法避免的管理弊端越显尖锐。这就迫切需要标准的、高效率的管理方式引导其发展,通过计算机管理企业的日常运作,给管理者以决策参考的模型,来不断完善管理水平,提高工作效率。餐饮企业管理要求信息化的需求已成为趋势。    

本系统以中小型餐饮企业为研究对象,深入分析其需求特点,采用 Access为后台数据库,以C++为前端开发工具,实现了前台服务、后台服务、财政服务、系统服务等功能,力求实现中小型餐饮企业高效、安全、全面的信息化管理。

经过分析本文论述了餐饮管理信息系统开发的全过程。餐饮管理信息系统,从分析酒店的基本情况入手,进行系统的可行性分析,在此基础上,进行详细的系统分析,得出系统功能结构图,再通过系统设计,系统实施等环节,最终开发出能够满足酒店业务需要的餐饮管理信息系统。

 关键词:餐饮、信息化管理、C++、Access数据库

  

Abstract

    China's rapid economic growth in consumer demand makes food and beverage market has become the most significant warming of the market, which directly contributed to the scale of China's restaurant industry continues to expand, but also led to the catering industry, increasing competition, the traditional manual management of the management of defects can not be avoided more significant acute. There is an urgent need for standard, high-efficient management approach to guide its development, through the daily operation of the enterprise computer management, making reference to the managers to model, to constantly improve the management level, improve work efficiency. Catering business management requires information needs has become a trend.

    The system is to small and medium food enterprises for the study, in-depth analysis of their demand characteristics, using Access as the backend database to C + + front-end development tools to achieve the front desk, back-office services, financial services, system services and other functions, and strive to achieve small catering enterprises efficient, safe, comprehensive information management.

This article discusses the restaurant through analysis of management information system as a whole. Restaurant management information system, the basic situation from the start of the hotel, the feasibility of systematic analysis on this basis, a detailed system analysis, the system structure diagram, and then through the system design, system implementation and other aspects of the final development that can meet the business needs of the hotel food and beverage management information system.

Keywords: Hotel 、Information Management、C++、Access Database

  

      

1.前言

1.1 社会背景

 近年来,随着人民的生活水平的不断提高,餐饮业的消费持续增长,竞争愈来愈激烈。然而,传统餐饮企业的日常运作还是靠人工管理,这样做不仅耗费人力资源而且容易导致记录丢失或重复等错误,造成管理水平低下。这就迫切需要标准的、高效率的计算机管理方式引导其发展,通过计算机管理企业的日常运作,给管理者以决策参考的模型,来不断完善管理水平,提高工作效率。

作为计算机应用的一部分,使用计算机对餐饮企业信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高信息管理的效率,也是企业的科学化、正规化管理与世界接轨的重要条件。

1.2 餐饮行业背景

中国是举世闻名的美食大国,拥有五千年的美食文化和巨大的餐饮市场,满足人民的温饱问题已不是当今的热点,人们的生活方式在逐渐转变,饮食已经成为了一种时尚、一种享受。民以食为天,随着人们生活水平和生活方式的转变,人们渐渐的发现餐饮业具有巨大的投资市场。

随着餐饮业投资者的不断涌入,餐饮业不仅面临前所未有的机遇,也面临着前所未有的考验和挑战,所暴露的问题也是不容忽视的,如:应变能力差,缺乏先进的信息工具;缺乏科学和标准的管理体系等。

而信息系统的引进,将会缓解和解决以上的问题,首先:餐饮管理信息系统不是单纯的用于结账计算的工具,它有着科学的、标准的管理体系,它是通过对目前餐饮市场的具体情况调研分析后设计而成的。其次:餐饮管理信息系统能够给出具体的、相应的、符合企业自身要求的,较科学的标准化管理流程。最后:餐饮管理信息系统可以针对企业的经营现状而做出科学的分析,使得企业对市场的应变能力得到了提高,从而更好的完善企业的经营管理,提高企业自身的竞争实力。

 面对餐饮行业多元化的竞争现状,经营的特色、规模和出品这些因素的不同,带给餐饮企业的则是不同的标准、工作流程和方法,面对着这解决方法不一的情况,提高餐饮企业核心竞争力的管理信息工具越来越受到管理者的重视,目前市场上餐饮管理系统大致有:手工单据集中上传、PDA点菜、IC卡手持点菜三种,而现在较为稳定成熟的是IC卡手持点菜技术。

1.3管理信息系统概述

管理信息系统是一门新兴的,集管理科学、信息科学、系统科学及计算机科学为一体的综合性学科,研究的是企业中信息管理活动的全过程,以便有效的管理信息,提供各类管理决策信息,辅助企业进行现代化管理。

管理信息系统的分析与设计,必须和具体实际相结合,才能真正服务社会。

在系统开发时应遵循以下一些原则:

●稳定性原则

系统的开发必须具有加强的应变能力,在一定时间内有相对的稳定性

●实用性与先进性原则

目前,我国的管理信息系统开发中存在低水平的重复开发和片面追求高档次的硬件设备,以及系统开发成功率低,使用价值不高等问题。鉴于实际情况在系统开发中应遵循把实用性放在第一位,又要突出系统在技术上,管理上的先进性原则。

●面向用户原则

管理信息系统是为用户开发的,最终是交给用户使用的,只有用户通过运行才能对系统做出客观评价。因此必须从系统的总体方案规划设计到系统开发过程中的每一个环节,都必须坚持一切为了用户,一切服务于用户的观点,这是信息系统开发的首要前提。

1.4餐饮管理系统开发意义

在现实的社会中,对于小型餐饮公司或企业而言,餐饮管理信息系统不是单纯的用于结账计算的工具,它有着科学的、标准的管理体系,它是通过对目前餐饮市场的具体情况调研分析后设计而成的。其次:餐饮管理信息系统能够给出具体的、相应的、符合企业自身要求的,较科学的标准化管理流程。最后:餐饮管理信息系统可以针对企业的经营现状而做出科学的分析,使得企业对市场的应变能力得到了提高,从而更好的完善企业的经营管理,提高企业自身的竞争实力。

3可行性分析

餐饮管理系统的目标是实现中小型餐饮企业的信息化管理,最大限度的减少由于传统管理经营模式所造成的效率低下、信息共享差、 出错率高等弊端,以期达到重视规范、科学管理的的目标。

3.1技术上的可行性

是指当前的软硬件技术是否能满足系统提出的要求。

本系统采用VC编程语言环境,对系统的要求不高,一般的操作系统都能运行本系统;本系统针对的是中小型酒店餐饮管理系统,规模及程序都不大,目前的使用者仅限于单个业务员的操作,因此在实施过程中,需求及难度都不会太大。

随着软件开发工具的发展,软件开发者已经可以大大提高软件的开发质量和效率,缩短开发周期。在硬件方面,随着它的不断发展,给设计人员更大的灵活性,使研制周期变短,是复杂的设计得以轻而易举的实现。

所以本系统在技术上是可行的。

3.2经济上的可行性

经济上的可行性是指预估费用支出和对项目的经济效益进行评价。

在现在化管理中,经济效益的评价是决策的重要依据。本系统因学习所用而开发,运行起来也无太大特殊性要求,无需开发费用,即后续软件投资可免。

实施该系统能给企业带来长期效益,它可帮助管理者实现管理方法的科学化、现代化,极大的提高餐饮企业的工作质量和工作效率,减少管理支出的费用,从而保证企业管理的可持续的良好发展。

所以本系统在经济上是可行的。

3.3社会适应的可行性

我国的中小型餐饮企业,普遍存在电子化程度较低、管理传统、业务流繁琐复杂等缺点。不利于实现企业管理的现代化、规模化、合理化。因此充分建立完善一套适合自身发展的信息管理系统,是为其在竞争中生存发展,提高自身效率,扩展客户群,增加市场份额,在竞争中立于不败之地,打下坚实的基础,是非常有必要而且是必须的。

系统基于对餐饮业务数据各角度详尽地分析和处理,为企业的管理和决策提供多层次、多方位的数据依据,使管理和决策更合理、更有效、更具可操作性。

通过普及该系统,相信会在社会产生比较大的效应。因为利用管理信息系统来帮助我们把繁琐、复杂的工作简单化,一直是我们长久以来的奋斗目标。采用这套系统将大大节省人力物力和时间,而一个高效的企业无疑会受到更多的青睐。

3.4可行性分析结论

综合以上三个方面,经过细致地初步调查和严密地可行性分析,我们认为在现有条件下,为开发餐饮管理信息系统是完全可行的.

因此,该系统具有很高的开发可行性。

2.需求分析

需求分析是指软件分析人员通过研究用户在软件问题上的需求意愿,分析出软件系统的功能、性能、数据等诸多方面应该达到的目标,从而获得有关软件的需求规格定义的过程。

需求分析需要实现的是将用户对软件的一系列要求、想法转变为软件开发人员所需要的有关软件的技术规格说明,它涉及面向用户的用户需求和面向开发者得系统需求两个方面的工作内容

2.1 用户工作流程

 根据餐饮行业的特点和该企业的实际情况,该系统应以餐饮业务为基础,突出前台管理,从专业的角度出发,提供科学有效地管理模式。点菜方面采取表单加数据的方式使用户能直观地管理数据信息,并能有效地管理每个台号所点的酒菜。点菜收银管理可实现点菜、结账、清台、进货管理可记录商品入库情况。点菜收银、营业分析、库房管理的有机结合,可以为酒店经营方面提供依据,为酒店餐馆的发展提供重要保证。

2.2用户需求

用户需求是关于软件的一系列想法的集中体现,涉及软件的功能、操作方式、界面风格、报表格式、用户机构的业务范围、工作流程和用户对软件应用的展望等。用户需求也就是关于软件的外界特征的规格表述。

2.3 系统需求

系统需求是比用户需求更具有技术特性的需求陈述。它是提供给开发者或用户方技术人员阅读的,并将作为软件开发设计系统的起点与基本依据。系统需求需要对系统的功能、性能、数据等方面进行规格定义。

2.3.1功能需求

 功能需求是软件系统的最基本得需求表达,包括对系统应该提供的服务,如何对输入作出反应,以及系统在特定条件下的行为描述。

●系统应能给不用类型的用户授权,使得不同权限的用户可以对数据库进行的不同程度操作,如营业员、领班、经理。

●系统应能提供较完善的前台服务,使得拥有相应权限的用户可以为消费者提供开台点菜、加减菜、顾客结账、日收入查询的服务。

●系统应能提供较完善的后台服务,使得拥有相应权限的用户可以进行进货信息、员工信息、商品信息、菜式信息的管理。

●系统应能提供较完善的财政服务,使得拥有相应权限的用户可以进行日收入和月收入的查询。

●系统应能提供较完善的系统服务,使得拥有相应权限的用户可以进行数据库备份、数据库还原、数据库初始化、账号权限的管理。

●系统应能具有良好的开放性和可移植性,使得其在Windows XP、Windows 7等主流操作系统均能运行。

●系统应具有美观大方、布局合理、简洁的操作界面,以满足不同层次使用者的需求。

●系统应具有一定程度的安全性,以防止恶意用户对系统数据库进行篡改。

●数据计算自动完成,尽量减少人工干预。

●数据库易维护。

●规范、完善的基础信息设置。

2.3.2 非功能性需求

●系统的汇总分析必须在一分钟之内生成。

●系统应支持7*24小时提供服务的业务需要。

●在一年内,该系统的不可用时间不能超过总时间的1%。

●服务器的处理部件(CPU)建议使用PIII 1G(以上)处理器芯片、内存不小于512M、硬盘不小于30G

●操作系统:Microsoft Windows XP

●数据库:Microsoft Office Access

24.系统概要设计

4.1设计思想

(1) 系统分成几个相对的模块,但这些模块都进行集中式管理。

(2) 分层的模块化程序设计思想,整个系统采用模块化机构设计。作为应用程序有较强的可操作性和扩展性。

(3) 合理的数据流设计,在应用系统设计中,相对的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。

4.2 设计原则

为了使本系统功能齐全完备,操作简便,最大限度的提高软件的质量,从而满足用户的实际需要,在设计开发过程中遵循了,如下原则:

(1)合法性原则:依据产品核算系统的工作规定以及要求,参照核算实际的工作情况,进行诸如产品经货、销售等工作。

(2)实用性原则:适合产品信息管理工作的实际需求,并能够处理一些特殊情况的要求,此外,尽可能预留空间,以便扩充功能。

(3)准确性原则:对输入的相关资料建立检错机制,及时报错,使用户能够及时准确的输入合法资料(如类型匹配,长度不超限等)。

(4)易操作原则:要求设计的系统功能齐全,接口友好,操作方便,必要的地方进行提示。

(5)源程序可读性原则:为了便于其它设计,维护人员读懂代码或以后的代码修改,软件升级维护,既可能做好代码注释工作。

(6)优化原则:为了达到优化的目的,合理的运用窗口,菜单,对象等的继承,自定义用户对象,事件,函数,减少不必要的重复性代码,使程序简洁明了,也方便了将来的维护。

(7)安全性原则:该系统的管理员具有可设置登陆密码,修改密码的权限。

4.3项目规划

餐饮管理系统的功能模块如下:

1)前台服务

前台服务包括:开台点菜服务、加菜减菜服务、顾客结账服务、日收入查询服务。

2)后台服务

后台服务包括:进货信息管理、员工信息管理、商品信息管理、菜式信息管理。

3)财政服务

财政服务包括:日收入查询、月收入查询。

4)系统服务

系统服务包括:数据库备份、数据库还原、数据库初始化、账号权限管理。

4.4功能结构分析

4.4.1系统结构图

 本系统包括前台服务、后台服务、财政服务、系统服务共计四大部分。系统结构图如下所示:

图4.1 系统功能图

4.4.1 角色功能分析

本系统将不同层次的用户进行区分、抽象,总共分为三个角色,分别为营业员、领班和经理。他们各自具有不用的权限及功能。

1.营业员

营业员为所有角色中权限最小的一个,它针对的是餐饮企业中一般的服务人员,如点菜人员。它所具有的功能如下:

●为顾客开台点菜

●为顾客增减菜品

●顾客买单

●日收入查询

2.领班

领班的权限比营业员具有更高的权限,它针对的是餐饮企业中管理服务人员的中层管理人员。除了营业员已经具有的功能,它具有如下添加的功能:

●原料进货

●注册员工(权限默认为值班员)

●日收入财务查询

●月收入财务查询

●进货记录查询

3.经理

经理为所有角色中权限最大的一个,它针对的是餐饮企业中的高级管理层人员,需要对企业的日常运作进行管理。除了领班已经具有的功能,它具有如下添加的功能:

●进货原料信息设置(进货商品名称单价)

●菜品信息设置(菜品名称单价)

●数据库管理(初始化备份还原)

●设置注册人员权限

4.7系统主要业务分析

4.7.1点菜服务

点菜是客人购买酒店餐饮产品的初始阶段,它关系到整个服务过程的成败。如果点菜的服务不周到,客人很可能会拂袖而去,甚至可能对餐厅的整个服务不满。

点菜的基本程序从形式看比较简单,包括:递送茶水、手巾→等候点菜→递送菜单→点菜→记录菜名。然而,要将这些程序有机地结合起来,达到客人满意的效果,却不是一件简单的事情。客人对菜食的喜好程度不同,饮食习惯、方法不同,对餐厅供应产品的熟悉程度不同,对产品风味和产品价格的要求不同,这些都需要在点菜的过程中予以注意,并得到妥善解决。

4.7.2 顾客结账

 结帐在餐饮服务中属于收尾工作,意味着整个餐饮服务工作即将结束。千万不可小视结账这个小环节,即便菜肴很合口味,服务也不错,但是由于结账的速度慢或不准确也会导致顾客的流失。因此,服务人员在这个环节要提前做好准备,抓好“快”、“准”两个关键。

4.7.3 菜式信息录入

菜式信息录入是在整个餐饮管理系统正式启动前,非常基础也是十分重要的一个环节。菜式信息的丰富性、完整性、准确性都将直接影响整个系统的运行。也将间接地影响整个餐厅的运行状况和利润。因此在进行此项工作前,应做好相关充分的准备工作,并及时准确的将相关的菜式信息录入到后台数据库中。

4.7.4 系统维护

一个运行良好的系统,不仅需要完善的开发步骤,更需要投入使用后妥善的维护,以发挥和维持该系统最佳的性能。数据库的更新、系统的安全性、界面的更新等都是系统维护不可或缺的一部分。  

4.8业务流程图

   餐饮管理系统的业务流程图如图所示:

图4.2 系统业务流程图

5.系统详细设计与代码实现

5.1系统功能设计

系统功能设计是使整个系统能基本实现餐厅的点餐、结账、菜式录入等管理功能,让服务人员能更准确快捷的为顾客服务,也让餐厅管理者更直观地了解餐厅的经营状况,以做出相应的经营决策。管理信息系统就是要对这些资源建立正确的数据库,并进行信息的收集、传送、存储,编制成各种凭证、报表、台帐、图形等信息,同时对这些信息进行维护,通过实测餐厅的各种运行情况,并利用过去的历史数据预测未来的发展,从餐厅全局的角度出发进行决策,利用信息控制餐厅的行为,辅助餐厅完成其目标。

本系统共包括六大模块,分别是注册模块、登陆模块、开台模块、点菜模块、结账模块、数据库维护模块,每个模块的功能如下:

1)注册模块

●预防非法用户恶意登陆系统并对系统数据进行破坏

●只有系统管理者拥有最高权限,可以通过该模块对指定的人员进行注册

●大大提高了系统的安全性

2)登陆模块

●避免个别人恶意猜测他人账号密码

●密码输入错误次数超过3次,程序就会退出

3)开台模块

●直观地为用户展示当前空桌的情况

●提高用户的工作效率

4)点菜模块

●与开台模块密不可分

●开台后,自动弹出点菜窗口为顾客点菜

5)结账模块

●对当前顾客消费进行结算

●将收入金额数据写入数据表中

6)数据库维护模块

●对数据库备份

●对数据库还原

●对数据库初始化

●提高用户数据的安全性

5.2 数据库设计

数据库设计是在既定(本系统使用Access)的数据库管理系统基础之上建立数据库的过程。其过程是将现实存在的数据及其应用处理关系进行抽象,从而形成数据库结构。具体实现时,应首先明确用户对数据的需求,在此基础上,建立数据库的概念模型,概念模型主要是用来反映用户的现实环境和需求,于具体的数据库管理系统,建立概念模型的主要工具为实体关系(E-R)图;在建立数据库概念模型之后,要真正实现与数据库管理系统的结合,即能够由既定的数据库管理系统所支持,还必须进行逻辑结构的设计,在逻辑设计阶段,主要完成建立数据库的逻辑模型,并解决数据的完整性、一致性、安全性和有效性等问题;最后一个阶段是数据库的物理结构设计,其任务是为系统逻辑结构模型确定合理的存储结构、存取方法、以及数据表示和数据存储空间分配等内容,从而得到具体的数据库物理结构。

5.2.1 概念结构设计

是指在数据分析的基础上,自底向下地建立整个系统的数据库概念结构,即先从用户的角度进行设计,经过对公司各个业务流程的调查和分析,对于用户对数据的需求已经基本明确,在此基础上,使用实体关系(E-R)图进行系统数据库的概念结构设计,建立起系统数据库的概念模型。

1)菜式信息实体

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

  图5.1 菜式信息实体E-R图

2)进货信息实体

进货信息实体包括商品名称、商品价格、商品数量和进货时间。进货信息实体E-R图如下所示: 

                图5.2 进货信息实体E-R图

3)用户信息实体

  用户信息实体包括 用户登陆账号、用户登陆密码和用户权限。用户信息实体E-R图如下所示:

图5.3 用户信息E-R图

4)账单信息实体

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

   

图5.4 账单信息实体E-R图

5)商品信息实体

商品信息实体包括商品名称和商品单价。商品信息实体的E-R图如下:

图5.5 商品信息实体的E-R图

6)收入信息实体

  收入信息实体包括收入金额和收入时间。收入信息实体E-R图如下所示:

     

图5.6 收入信息实体E-R图

7)餐桌使用情况实体

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

图5.7 餐桌使用情况实体E-R图

5.2.2.物理结构设计

物理结构设计的目的是根据具体DBMS的特征,确定数据库的物理结构(存储结构)。关系数据库的物理结构设计的任务包括:确定数据库文件的名称及其所含字段的名称,类型和宽度。确定各数据库文件需建立的索引,在什么字段上建立索引等

1)菜式信息表

   主要用于记录菜式信息,包括菜式名和菜式价格,如图所示:

图5.8 菜式信息表

2)进货信息表

 主要用于记录进货信息,方便使用者查询,结构如图所示:

图5.9进货信息表

3) 用户信息表

主要用于保存用户账号、密码和权限等信息,如下图所示:

图5.10 用户信息表

4)账单信息表

 账单信息表主要用于保存顾客的消费信息,如图所示:

图5.11 账单信息表

5)商品信息表

商品信息表主要用于登记需要进货的商品信息,包括商品名称及价格,如图所示:

图5.12 商品信息表

6)收入信息表

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

 图5.13 收入信息表

7)餐桌使用情况表

餐桌使用情况表主要用于记录每个餐桌的使用情况,如图所示:

图5.14 餐桌使用情况表

5.3 模块功能设计

5.3.1 注册模块设计与代码

注册模块是一个完善的系统必不可少的部分,主要用于预防非法用户恶意登陆系统并对系统数据进行修改破坏,给经营者造成不可挽回的损失。只有系统管理者才能通过注册模块对指定的人员进行注册,使其可以对系统进行相应的操作,大大提高了系统的安全性。注册模块的运行效果如图所示:

图5.15 注册模块图

1.注册模块技术分析:

 在此模块中主要是SQL语句的灵活运用,通过向数据表中直接添加数据即可达到实现用户注册的目的,添加数据可以用INSERT语句来实现

2. 注册模块实现过程:

1)首先在Resources选项卡中插入一个对话框资源,在对话框中添加3个静态控件、3个文本框控件和2个按钮控件。

2)给对话框新建一个类 CZhucedlg,在类中添加一个RecordsetPtr类型变量 m_pRs并导入全局变量TheApp.

3)当用户单击“提交”按钮时,系统应判断输入的用户名是否和数据表中的用户名重复,如果重复则弹出提示窗口;再次判断两次密码输入是否一致,如果不一致需要弹出窗口要求重新输入,成功后则往数据表中插入用户名、密码和权限信息。

  5.3.2 登录模块设计及代码

在本系统中,登录模块的功能是判断用户是否是合法用户以及根据登录用户的权限开放相应的模块,是保障系统安全的第一道关卡。

登录模块的运行结果如图:

图5.16 登录模块图

1.登录模块技术分析:

1)在登录模块中,为了避免别人恶意猜测他人账号密码,笔者在系统中添加了密码错误数量,如果密码输入错误超过3次,整个程序就会退出。

2)为了实现以上功能,需要在登录类中添加一个全局变量计算输入密码错误次数,因为本系统登录时调用的是模块对话框,所以在关闭时就必须先关闭当前的登陆框,再关闭程序主界面。

3)在登录类得OK按钮的代码中加入对次数的判断,如果次数等于3就调用本窗口的退出事件;再在主界面中的“ 登录”按钮代码中对错误次数进行判断,如果次数等于3就调用主窗口的退出事件。

4)要实现这一功能要先在朱对话框中的“登录”按钮代码中加入如下代码:

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

当i==3时,调用登录模块对话框中的“退出”按钮事件关闭对话框,OnCancel方法是登录对话框的“退出”按钮事件。

2.登录模块实现过程:

1)首先在Resources 选项卡中插入1个对话框资源,向对话框中添加2个静态控件、2个文本框控件、2个按钮控件和1个图片控件,打开图片控件的属性窗口给其关联一副图片。

2)接着为登录窗口新建1个类CLogindlg,在类中定义一个_RecordsetPtr类型变量 m_pRs, 在窗口类中添加代码导入全局变量TheApp.

3)然后为“登录”按钮的单击时间添加代码,在“登录”按钮的单击事件下,系统应该自动将用户输入的数据与数据表中的数据进行比较,如果都一致则提示成功登录;如果不一致则提示用户名密码错误。    

5.3.3 开台模块设计与代码

开台是餐饮系统中前台的第一个服务,顾客前来就餐的第一步就是开台,开台模块应该直观地为用户展示当前空桌的情况,提高用户工作效率。开台模块运行结果如图:

图5.17 开台模块图

1.开台模块技术分析:

1)在此模块中主要涉及到对列表控件的使用以及如何将数据表中的数据导入到列表控件中。

2)在营业员为顾客进行选桌服务时,可以在桌台信息表中双击要开台的桌台,即可将此桌台的桌面信息添加到“选择桌号”文本框中,大大方便了使用者。

3)实现此功能首先在消息对话框左边的控件名称中找到列表控件,再在右边的事件中选择NM_DBLCLK事件,并为其添加相应的代码,在获取数据前系统要先获取用户双击选项的位置信息,通过 GetSolectionMark 方法可以获得当前鼠标双击的位置信息,再通过GetItemText方法获取当前位置的文本。

2.开台模块实现过程:

1)首先在Resources选项卡中插入1个对话框资源,为对话框新建1个类CKaitaidlg,向对话框中添加1个静态控件、1个列表框控件、1个文本框控件,在类中定义1个_RecordsetPtr 类型变量 m_pRs并导入全局变量 TheApp。

1)为类添加 WM_INITDIALOG事件并添加代码,进行对话框初始化设置并对列表控件的样式及内容进行设置。 

2)用户在单击“确定”按钮时,系统应该先判断编辑框中输入的数据是否合法,如果不合法,则弹出“输入错误”的提示;如果合法,则弹出成功的提示并进入点菜对话框。“确定”按钮的单击事件代码如下: 

5.3.4 点菜模块设计与代码

点菜模块和开台模块密不可分,在为顾客开台后会自动弹出点菜窗口为顾客点菜,点菜模块运行效果如下图所示:

 

图5.18 点菜模块图

1.点菜模块技术分析:

1)在点菜模块中主要应用了两列表控件之间的数据传递技术,即将顾客所需要的菜式从菜单中选择并将其添加到顾客的账单列表中。

2)在传递的过程中,菜单列表是不能被修改的,账单列表要在每加进去一样菜式就必须增加一行数据。而在逆向传递时,账单列表的数据要相应减少但菜单列表中不变。

3)菜单列表应该采取直接从数据库中读取的方式,以防人为的恶意修改,在单击“确定”按钮前,所有的数据应该都只在列表控件中进行传递而不写入数据库,以保证数据库的安全性。

2.本模块使用的数据表:TableUse,caishiinfo,paybill

3.顾客点菜:

1)在Resources 选项卡中插入一个对话框资源,为对话框新建一个类CDiancaidlg,在类中定义一个_RecordsetPtr 类型变量 m_pRs 并导入全局变量 TheApp。在对话框中添加2个列表控件、1个静态控件、1个文本框控件和4个按钮控件。

2)为CDiancaidlg类添加一个WM_INITDIALOG消息,用于设置列表控件的样式及内容。代码如下:

3)添加1个用于输入点菜数量的对话框,新建1个CSLdlg类,在对话框中添加1个静态控件、1个文本框控件和2个按钮控件。如图所示:

         

                    

                               图5.19 加菜模块图

4)为对话框的编辑框控件添加一个CString型变量m_ShuLiang.

5)为“点菜数量”对话框的“确定”按钮添加代码,当用户单击“确定”按钮时,系统将判断用户是否输入数据,数量至少要为1 。代码如下:

6)为“点菜数量”对话框中的“返回”按钮添加代码,当用户单击“返回”按钮时,系统将进入点菜窗体。

7)“点菜”对话框中的“》”按钮用于将菜单中的菜式名称添加进顾客的点菜列表中。

8)“点菜”对话框中的“《”按钮用于取消顾客已点的菜式。

9)用户单击“确定”按钮时,系统将自动生成的账单添加进数据表中。

代码如下:

2.加菜减菜

顾客在用餐时经常会发生要求餐厅加菜或减菜服务,本系统针对此类问题设置了加菜减菜模块,方便餐饮管理者更好地满足顾客的需求。

“加减菜”对话框如图所示:

1)先在Resources选项卡中插入1个对话框资源,新建1个CJiacaidlg类,在类中定义1个_RecordsetPtr类型变量m_pRs 中导入全局变量TheApp。对其添加1个静态控件、1个下拉列表框控件、2个列表控件和4个按钮控件。

2)对对话框的初始化进行设计,对列表控件的样式和内容进行初始化设置。对类添加消息函数。 

3)当下拉控件的选项变化时,所选餐台号的菜单信息也应该相应改变。

4)单击“》”按钮将菜单中的菜式名称添加进用户当前账单中。

5)单击“《”按钮将从账单中取消用户刚刚所点的菜式名称。

6)单击“确定”按钮系统将把已经变动的账单信息重新添加进数据表中并将原始的账单信息删除。

7)单击“取消”按钮关闭当前对话框。

5.3.5 结账模块设计及代码

结账模块可对当前顾客消费进行结算,顾客结账完成后系统自动将收入金额数据写入数据表中,从而很好的反应营业情况。结账模块运行结果如图所示:

图5.19 结账模块图

1.结账模块技术分析:

1)在结账时,如果顾客所在的餐台号比较靠后,在下拉控件中就必须按下拉按钮慢慢地往后寻找顾客的餐台号,在结账顾客数量较多的情况下,这种方法显然严重影响了工作效率。

2)为此笔者为下拉控件增加饿了手工输入的功能,使营业员结账时既可以在下拉列表框中选择桌号,也可以手工输入桌号,极大地方便了使用者使用,提高了结账速度和顾客的满意程度。

3)要实现上述功能,应给列表控件加一个EDITCHANG事件,在事件中添加相应代码对输入的信息进行判断。本系统中的餐台号为4位数,因此在事件中首先判断是否是一个4位数,如果不是则提示错误信息;如果是则显示相应的消费信息。

4)实现这一功能要使用CString类提供的GetLength方法。

2.结账模块实现过程:

1)在Resources选项卡中插入1个对话框资源,为其新建1个Cjiezhangdlg类,在类中定义1个_RecordsetPtr 类型变量m_pRs 并导入全局变量TheApp中,在对话框中添加5个静态控件、3个文本框控件、1个下拉列表控件、1个列表控件和2个按钮控件。

2)为对话框进行初始化设置,为类添加一个成员变量res,类型为Bool型,该变量主要控制下拉列表框控件接受数据的方式,False为下拉选择型,True则代表是手动输入型。

3)在消息对话框左边的控件窗口中选择下拉列表框控件,然后在右边消息窗口中选择SELCHANG事件。

4)在消息对话框左边的控件窗口选择下拉列表框控件,在右边消息窗口中选择EDITCHANGE事件并添加代码:

5)在顾客付款后,应在“实收”文本框中输入顾客的付款金额,此时“找零”文本框中应该实时计算出应找给顾客的金额。为达到上述目的,先在消息对话框中选中对应“实收”的文本框控件名,然后再右边选择它的EN_CHANGE 事件,在此事件中添加如下代码: 

6)在单击“结账”按钮时,系统自动将当前餐台号的使用状态变成空闲状态并将账单数据表清空,然后将这次结账的收入写进日收入数据表中,方便查询日收入,代码如下:

void CJiezhangdlg::OnButtonOk2() {

    UpdateData();

    CString str,str1,str2,str3;

    CString TheValue;

    CString ShiShou,YingShou;

    m_Combo.GetWindowText(str1);

if(str1.GetLength()<4||str1.GetLength()>4){

        AfxMessageBox("输入错误");

        return;

    }

    CString bjsql="select * from TableUSE where 桌号="+str1+"";

m_pRs=theApp.m_pCon->Execute((_bstr_t)bjsql,NULL,adCmdText);

if(m_pRs->adoEOF){

        AfxMessageBox("没有这张餐台");

        return; }

CString bjstr=(char*)(_bstr_t)m_pRs->GetCollect("TableUSEID");

    if(bjstr=="0"){

        AfxMessageBox("该桌不需要付款");

        return; }

m_ShiShou.GetWindowText(str3);

if(str3.IsEmpty()){

        AfxMessageBox("请输入顾客付款");

    return; }

if(res == TRUE)

 

5.3.6数据库维护模块及代码

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

图5.20 数据库维护模图

  

                     图  数据库还原运行结果

1.数据库维护模块技术分析

1)由于本系统采用的是Access 2000数据库,所以在数据库的操作方面与SQL Server数据库有一定的不同。例如,Access数据库中没有Backup语句供程序员使用。

2)在Access数据库中备份数据库就是将源数据库复制到相应文件夹的过程,而还原数据库则是备份操作的逆过程,即将以前备份好的数据库复制粘贴到现在数据库所在的文件夹中对现有数据库进行覆盖以达到还原的目的。

2.数据库维护模块实现过程

1)数据库备份

备份操作是将原有数据复制到指定文件夹。

2)数据库还原

还原操作是备份操作的一个逆过程,还原操作是指将指定文件夹中的数据库文件复制到当前数据库文件夹中并进行覆盖,从而实现数据库的还原。

3)数据库初始化

当数据库中存储的信息已经失效时,通过手工一个一个删除数据无疑增加了用户的工作量。为减轻用户的工作量,本系统添加了数据库初始化功能,执行该功能后将清空除用户信息表外其他所有数据表中的数据。

6 系统测试

系统测试是系统质量保证的主要活动之一,在系统开发的过程中,在各个阶段都有可能存在错误和缺陷。通过测试是可以发现系统设计中存在的种种问题,并可以及时改正,避免在系统投入使用时才出现不必要的错误,从而导致不必要的损失。测试是质量保证一个砝码,它提供对系统规格说明、设计和编码的最终评审,是发现系统缺陷和错误的有力手段。

6.1测试的目的及相关问题

软件测试分为几个部分:单元测试集中检查软件设计的最小单元——模块,包括程序测试,即发现程序中的代码错误,然后逐一解决;组装测试相当于联调,主要是考察模块间的接口和各模块之间的联系。这是一个持续的过程,可以在将组件加入某一项之前逐个的加以测试,也可以把项目连编成应用程序之后再进行测试。确认测试主要检查软件功能与用户的需求是否一致。在一般的情况下,这些步骤都被顺序地实现。 

在测试和调试应用程序时,应注意以下问题:

1)程序设计者不应测试自己设计的程序。

2)测试用例的设计不仅要有合理的输入数据,还要有不合理的输出数据。

3)除了检查程序是否做完了它应做的事之外,还要检查它是否做完了它不应做的事。

4)试和调试应用程序后,系统应达到以下要求。

5)能较好的完成系统应具备的基本功能。

6)运行不会导致崩溃或产生错误信息。

7)在一般情况下操作正常。

8)在一定范围内,操作合理,或能提供适当的错误信息。

程序调试和组件测试我们在设计和编码的过程中通过编译程序编译、软件错误信息的提供,我们可以逐步修正错误,程序能够得到一步步的完善。

6.2 测试原则

在完成餐饮系统开发的过程后,为了使系统能够稳定运行,对系统进行了有针对性的全面测试,采取的方式是:

功能测试:为了保证每一项菜单能够实现系统设计的功能,我输入了大量数据到系统中,并对每一个菜单反复进行了增加、删除、修改、查询等操作,从而保证了菜单功能的正确实现。

性能测试:完成功能测试后,我又对系统处理数据的速度和响应的时间进行了测试。不仅输入了大量的基本数据,还输入了大量非法数据来测试系统的异常处理功能。

综合测试:在以上测试的基础上对系统功能进行整体的测试,依次来检验系统功能是否符合系统设计的要求。

6.3测试过程

本系统可以顺利地运行,在登录界面注册后,输入用户名和密码,进入主程序界面,选择相应的菜单项可执行任务,主界面如图所示:

图6.1 主界面图

在测试过程中,出现以下问题:

1.在加菜减菜模块中

1)由于在加菜过程中会先调用当前餐台号所拥有的菜式账单,用户对其添加数据确认后会重复向数据表中写入原有的菜式信息,使顾客的账单出错。

2)为避免上述的发生,就必须在系统将新生成的菜式信息保存进数据表时将数据表中的原有菜式信息全部删除,将经过加菜减菜后的数据表作为当前餐台号的最新账单。

3)为实现这一目的,应在“确定”按钮的单机事件下添加如下代码:

2.在结账模块中

1)在结账对话框中,如果在下拉列表控件中没有任何数据输入或选择时,直接单击“ 确定”按钮或者误按了ENTER键,会出现如图6.2所示的错误信息。

2)导致这种错误的原因主要是没有对下拉列表控件的输入进行判断,如果下拉列表控件的属性是Drop List,则只需判断它当前项的值是否等于-1即可,-1表示没有选择。代码如下:

3)但在本系统中,由于列表控件既要接受下拉选择,又要接受文本输入,所以要将其属性设置为DropDown。在判断其是否有数值输入时需要判断输入的位数,因为只有当输入位数与餐台号位数相等时,系统才通过验证。代码如下:

4)完善后,结账模块界面如下:

3.在数据库维护模块中

1)在数据库还原过程中,有时会发生数据库不能正常还原到源数据库目录

2)主要原因是由于将GetCurrentDirectory语句放在了“ 还原”按钮中,GetCurrentDirectory语句是获取当前目录,如果在数据库还原操作前进行了数据库备份操作,那么再次执行还原操作的结果就是将文件直接复制到了刚刚备份操作所选择的目录中。

3)为解决这一问题,笔者在数据库还原类中定义了一个OnInitDialog消息,在打开还原窗口时系统将通过这个消息初始化对话框,从而找到正确的数据库目录。代码如下:

6.4 测试结果

总体看来,根据测试的结果,系统的稳定性和安全性都能够得到保障。在一般状况下操作正常,一定范围内操作合理,且能提供适当的错误信息,可以认为整个系统的设计和实现基本上达到了预期的目标。

参考文献 

[1] 党建武.管理信息系统.兰州大学出版社,2001

[2] 黄梯云.管理信息系统.高等教育出版社,2005

[3] 苏枫.酒店管理概论.重庆大学出版社,2003

[4] 吉多.成功的项目管理.机械工业出版社,2002

[5] 唐少清.项目评估与管理.清华大学出版社,2006

[6] 王强.IT软件项目管理.机械工业出版社,2005

[7] 朱少民.软件测试方法和技术.清华大学出版社,2005

[8] 冯博琴.面向对象分析与设计.机械工业出版社,2005 

[9] 朱少民.软件测试方法和技术.清华大学出版社,2005

[10] 韩万江.软件项目管理案例教程.机械工业出版社,2005

[11] 郭宁、周晓华.软件项目管理.清华大学出版社,2007

[12] Watts S.Humphrey.个体软件过程.人民邮电出版社,2003

[13] Jeff Prosise.MFC与WINDOWS编程.北京大学出版社,2005  

[14] 张巍、曹起武.数据库原理与应用:Access.清华大学出版社,2006  

[15] 李晓华.Visual C++数据库通用模块开发与系统移植.清华大学出版社,2007

致谢

时光如梭,转眼间四年的大学生活已经结束,回首这四年的点点滴滴,我最想说的是感谢大家对我的帮助和支持!

值此论文完成之际,首先,我要感谢沈军老师给予我的悉心指导和热情帮助。他严谨的治学态度、求实的工作作风、擅于探索的精神和培养人才的风范都让我终生难忘,诚挚谦虚的品格和宽厚善良的处事方式,永远值得我学习和效仿。在此谨向我的恩师表示由衷的感谢并致以崇高的敬意。

其次感谢各位老师对我在校期间给予的教育和培养,衷心感谢各领导对我的谆谆教诲。感谢在我写作过程中校领导以及各位老师给予的支持和帮助。

此外,还要感谢与我一同度过大学学习生活的各位同学,他们在学习和工作中给我提供了许多帮助和支持。四年来,我们一起学习,一起成长,与你们在一起我是如此快乐。当我遇到挫折和困难的时候。有许多可敬的师长、同学、朋友都给了我无言的帮助,在这里请接受我诚挚的谢意!

最后,还要感谢我的父母及家人。他们是我生命中拥有的依靠和支持。他们无微不至的关怀,是我前进的动力;他们的殷殷希望,激发我不断前行。没有他们就没有我。我的点滴成就都来自他们。

在此,谨向百忙中抽出宝贵时间评审本论文的各位专家、学者致敬。

文档

毕业设计--餐饮管理系统

餐饮管理系统摘要中国经济的高速增长使得餐饮市场成为消费需求升温最为可观的市场,这直接推动了中国餐饮业规模的不断扩大,同时也导致了餐饮业竞争的日益激烈,使得传统的手工管理无法避免的管理弊端越显尖锐。这就迫切需要标准的、高效率的管理方式引导其发展,通过计算机管理企业的日常运作,给管理者以决策参考的模型,来不断完善管理水平,提高工作效率。餐饮企业管理要求信息化的需求已成为趋势。本系统以中小型餐饮企业为研究对象,深入分析其需求特点,采用Access为后台数据库,以C++为前端开发工具,实现了前台服务、
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top