毕业设计(论文)-基于C++的餐饮管理系统的设计与实现.doc_第1页
毕业设计(论文)-基于C++的餐饮管理系统的设计与实现.doc_第2页
毕业设计(论文)-基于C++的餐饮管理系统的设计与实现.doc_第3页
毕业设计(论文)-基于C++的餐饮管理系统的设计与实现.doc_第4页
毕业设计(论文)-基于C++的餐饮管理系统的设计与实现.doc_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

徐州工程学院毕业设计(论文)图书分类号:密 级:摘要餐饮管理系统是为了适应当今餐饮企业的管理方法,能够更加全面、准确、有效地完成餐饮企业的各种管理工作而开发的一个软件。该系统将先进的电脑技术和现代餐饮管理服务完美有效地结合起来,实现了全新的餐饮概念、服务和管理方式。它不单单是用于结帐计算的工具,它还有着科学的、标准的管理体系。该系统能够给出具体的符合企业自身要求的比较科学的标准化管理流程,使用该系统能够大大提高餐厅工作人员的工作效率,并且能够提升餐厅的营业额。本系统主要是利用windows窗体作为界面,系统的前台开发采用的开发工具是Microsoft Visual Studio 2008 MFC,使用C+语言实现,后台采用的开发工具是 Microsoft Office Access 2003,在Microsoft Visual Studio 2008中通过SQL语言实现对数据库的操作。利用其可视化的开发环境、丰富的控件资源,快速开发出了餐饮管理系统应用程序。本餐饮管理系统包括餐厅工作人员的有效身份登录、开台点菜、加菜减菜、顾客结账,以及餐厅经理对餐厅工作人员的管理、对收入的查询、对数据库的管理、对餐厅菜式的管理等功能。关键词 C+;MFC;ACCESS;SQLAbstractRestaurant Management System is to meet the current hotel management methods, more comprehensive, accurate and efficient completion of the various food and beverage industry and the development of a management application software.The system of advanced computer technology and modern management of catering services perfect combination to achieve a new concept in food service and management.It is not simply a tool used for billing calculations, it has a scientific and standard management system.The system is able to give the corresponding meet the specific requirements of the more scientific their own standardized management processes, through the use of this system can greatly improve the efficiency of the restaurant staff, but can increase the turnover of the restaurant.The system is to use windows forms serve as an interface , click the version, the systems future development using the development tool is Microsoft Visual Studio 2008 MFC, use C + + language, the background is used in Microsoft Office Development Tools Access 2003, in Microsoft Visual Studio 2008 through SQL language for database operation.Use of its visual development environment, the rich control resources, rapid development of the food and beverage management system applications. The restaurant management system, including the restaurant staff, effectively logged Founding a la carte, food to eat less food, customer checkout, and the restaurant manager of the restaurant staff, management, income information, database management, restaurant dishes Management.Keywords C+ MFC ACCESS SQLI徐州工程学院毕业设计(论文)目 录1 绪论11.1 课题研究的背景11.2 课题研究的目的和意义11.3 开发环境介绍22 系统需求分析32.1 系统的开发目标32.2 系统的功能分析33 系统概要设计63.1 系统模块设计63.2 系统数据库设计83.3 连接数据库104 系统详细设计124.1 主界面设计124.2 登录界面设计144.3 前台界面设计154.3.1 开台154.3.2 点菜174.3.3 加菜减菜194.3.4 顾客结账194.4 后台界面设计214.4.1 管理用户214.4.2 管理收入234.4.3 管理数据库254.4.4 管理菜式265 系统测试295.1 编译运行295.2 功能测试30结论33致谢34参考文献35附录36附录1 系统使用说明36附录2 部分函数代码39631 绪论1.1 课题研究的背景社会在进步,各行各业也在不断发展,餐饮行业更加日趋发达,当今餐饮企业如何提高服务质量、管理能力也越来越重要。餐饮行业不仅需要完成前台的服务工作,也需要完成后台的管理工作。随着人民的生活水平不断提高,餐饮行业的消费持续增长,竞争越来越激烈,传统的餐饮企业的日常运作还是靠人工管理,不仅耗费人力资源,还容易导致记录丢失或重复等,从而造成管理水平低下,并且会很大程度地影响到餐饮企业的的服务质量及其形象。因此,引入全方位的电脑服务和电脑管理势在必行。在计算机技术发展日新月异的今天,数据库管理系统的发展也日趋完善。随着科学管理系统的建立以及计算机化的管理模式普及,尤其是计算机技术和现代化通信技术的迅速发展,企业现代化管理正在逐渐受到人们的重视。使用计算机辅助管理就应运而生,并迅速发展起来。一个成功的餐饮企业,其管理者需要提高服务水平和服务质量,借此来提高企业的市场占有率,还需要有好的工作效率来控制成本。而在信息技术相当发达的今天,餐饮企业更需要一个完善的餐饮管理系统,来全面提高企业的服务质量。餐饮管理系统不是单纯的用于结帐计算的工具,它有着科学的、标准的管理体系,是为了适应当今餐厅的管理方法,更加全面、准确、有效地完成餐饮业的各种管理工作而开发的一个应用软件。餐饮管理系统不仅实现了传统餐饮业的日常运作,而且无需大量人工来管理,从顾客开台点菜,到顾客结账都无需大量人工来记录,这样做不仅减少了人力资源,而且也避免了记录丢失或重复等错误,同时也增强了管理水平。所以本系统具有手工管理所无法比拟的优点。餐饮管理系统能够给出具体的相应的符合企业自身要求的较科学的标准化管理流程,通过使用该系统能够大大提高了餐厅工作人员的工作效率,同时能够提升餐厅的营业额。161.2 课题研究的目的和意义近年来,随着我国经济的不断发展,人民的物质生活水平也逐步提高,对生活质量的要求也越来越高,从而享受自动化、人性化的餐饮企业服务成为了大家追求高质量生活的重要内容。餐饮企业要想跟得上发展形势,企业管理的信息化进程也要加快脚步。这套餐饮管理系统,是针对餐饮企业的具体业务而开发的,将其由经验管理转为科学管理,在总体上实现企业管理的自动化、规范化和人性化,使其跟上现代化的节奏。业务管理以企业的餐饮管理为核心,为用户提供迅速、高效的服务,减免手工处理的繁琐与误差,及时、准确地反映企业的工作情况、经营情况,从而提高企业的服务质量,并配合现代化的餐饮企业管理,获得更好的经济效益。1.3 开发环境介绍Microsoft Visual Studio 2008是面向Windows Vista、Office 2007、Web 2.0的下一代开发工具,代号“Orcas”,是对Visual Studio 2005一次及时、全面的升级。VS2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。使用Visual Studio 2008可以高效开发Windows应用。Dialog(对话框)是人机交流的一种方式,用户对对话框进行设置,计算机就会执行相应的命令。对话框中有单选框、复选框等。对话框主要由以下两部分组成。对话框资源:可以使用对话框编辑器来配置对话框的界面,如对话框的大小、位置、样式,对话框中控件的类型和位置等。另外,我们还可以在程序的执行过程中动态创建对话框资源。 对话框类:在MFC程序中,可以使用向导帮助用户建立一个与对话框资源相关联的类,通常这个类由CDialog类派生。在VS中,所有的对话框函数都是使用C+代码实现的,它并没有采用特殊的资源或者“奇特”的宏,但却可以很好地实现用户与应用程序之间的交互工作,这里的关键就在于对话框应用程序中广泛采用的对话框数据交换和验证机制。对话框数据交换(DDX,Dialog Data Exchange)用于初始化对话框中的控件并获取用户的数据输入,而对话框数据验证(DDV,Dialog Data Validation)则用于验证对话框中数据输入的有效性。MFC在每个对话框类中提供了一个用于重载的虚函数DoDataExchange来实现对话框数据交换和验证工作。14Dialog数据交换如果使用DDX机制,则通常在OnInitDialog程序或对话框构造函数中设置对话框对象成员变量的初始值。在对话框即将显示前,应用程序框架的DDX机制将成员变量的值传递给对话框的控件,当对话框响应DoModal或Create而被显示时,对话框控件将“显示”这些值。Dialog数据验证除了调用DDX参数指定数据交换外,用户还可以使用DDV函数进行对话框数据验证。在调用控件的DDX函数后,必须立即调用该控件的DDV函数。 C+语言是一种优秀的面向对象程序设计语言,它在C语言的基础上发展而来,但它比C语言更容易为人们学习和掌握。C+以其独特的语言机制在计算机科学的各个领域中得到了广泛的应用。面向对象的设计思想是在原来结构化程序设计方法基础上的一个质的飞跃,C+完美地体现了面向对象的各种特性。42 系统需求分析2.1 系统的开发目标本系统开发的主要目标是实现酒店餐饮前台管理系统的系统化、规范化和自动化,帮助餐饮企业更加方便地管理日常营业,通过参考了其他的同类软件,并对当今餐饮企业的深入了解,充分考虑到各个因素而设计以达到如下目标: 本系统需要有简洁有好美观的界面,快捷简单的操作。充分考虑到企业中工作人员的文化水平,应在系统的各个方面使操作尽量变得简单,以向导式的图形化操作使得使用本软件变得更加方便,更加舒适;在每一个功能模块中增加提示,使得使用本软件不需要记住太多繁琐的操作,能够根据提示信息获取下一步操作信息等。本系统要求具有较快的响应速度。餐饮企业的工作人员为了给顾客提供最好的服务,通常希望能够尽快安排顾客就餐,系统的高速响应可以方便工作人员使用本系统,并且提高工作效率,间接地提高了餐厅的好评率和利润。本系统必须功能齐全。通过对餐饮企业日常营业的深入探究,充分考虑到各个可能的因素,使得功能更加健全和完善,使用本软件可以方便地实现对餐厅的日常管理。本系统必须具有安全性。对企业的工作人员的管理,采用权限制度,分为餐厅经理和普通用户,餐厅经理可以进行后台管理操作,而普通用户只能进行前台的操作。分工明细,制度严格,这样才能更好地保证数据的安全性。本系统数据库必须具有高效性。餐饮企业中的人员流动量比较大,各大菜式信息更新也非常快,就需要对数据库中的信息作出及时更新,从而需要对餐厅工作人员信息和菜式信息等进行一些操作。2.2 系统的功能分析用户登录用户通过选择用户名、输入密码进入餐饮管理系统,输入非法弹出错误提示。根据使用权限,用户分为两类:餐厅经理和普通用户。在用户登录时,通过验证该用户的权限,使其进入对应的界面。这两类用户的使用权限主要体现在餐厅经理进行后台管理操作,包括管理用户、管理收入、管理数据库和管理菜式,而普通用户只能进行前台操作,包括开台点菜、顾客结账等。前台管理所有用户都可以进行前台管理。主要包括以下功能:顾客开台有顾客需要服务时,首先要对餐厅中现有餐桌进行查询,在开台界面上显示所有餐桌的使用情况,正在使用的餐桌显示“有人”,未使用的餐桌显示“空闲”。操作人员选择“空闲”餐桌为顾客开台;若选择“有人”餐桌或者不选餐桌,则弹出操作错误提示信息。倘若未成功进入点菜界面,开台未成功,即餐桌使用状态不会改变;若成功进入点菜界面,虽开台成功,但餐桌此时并未使用,即餐桌使用状态也不会改变。顾客点菜开台成功后,进入点菜界面。点菜过程中,操作人员根据顾客需要,选择顾客想点的菜,同时可以删除顾客不想点的菜,在此过程中,系统上需要显示已点菜式。只有在点菜成功后,对应餐桌的使用状态才会改变。加菜减菜点菜成功后,若中途有顾客想对已点的菜进行操作,在此项中需要选择需要服务的餐桌桌号,然后再对已点菜式进行操作。顾客结账顾客结账时,进入结账界面,在该界面上操作人员选择需要服务的客人的桌号,在结账界面上会显示该桌的信息,包括应收金额以及顾客点菜的详细清单。操作人员输入顾客实际付款金额,同时会显示找零金额,方便结算。结账成功后,该餐桌的使用状态变为“空闲”。后台管理只有权限为餐厅经理级别的用户,可以进行后台管理。后台管理包括以下功能:管理用户a 注册新用户餐厅经理可以注册新用户,输入密码时需要确认输入密码。若信用户的用户名已存在,或者两次输入密码不符合,则会弹出相应提示。所有新用户的初始权限都默认为普通用户。b 修改用户权限餐厅经理可以修改用户的权限,但是特定用户的权限不可修改,本系统中特定用户为“SJZHOU”。c 删除用户餐厅经理可以删除用户,但是特定用户“SJZHOU”不可删除。管理收入包括查询今日收入和查询月收入。查询月收入界面中,选择年份和月份,查询月收入。管理数据库包括对数据库的备份和还原,做到即时备份数据库,以保证数据的安全性。管理菜式餐厅经理可以对餐厅的菜式进行一系列的操作,包括增加菜式、修改菜式信息和删除已有菜式等。退出系统退出系统需要有确认退出提示信息。根据对系统的功能分析,特设计出系统流程图,见图2-1。登录者输入登录信息NY判断权限POWER=0?开台点菜加减菜?加菜减菜结账YN开始结束管理用户管理收入管理数据库管理菜式图2-1 系统流程图3 系统概要设计3.1 系统模块设计利用层次图来表示系统中各模块之间的关系。层次方框图是用树形结构的一系列多层次的矩形框描绘数据的层次结构。树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的各层矩形框代表各个数据的子集,最底层的各个矩形框代表组成这个数据的实际数据元素(不能再分割的元素)。20随着结构的精细化,层次方框图对数据结构也描绘得越来越详细,这种模式非常适合于需求分析阶段的需要。从对顶层信息的分类开始,沿着图中每条路径反复细化,直到确定了数据结构的全部细节为止。根据现代餐饮企业的特征,结合系统开发的方便性,以及以后餐厅工作人员在使用本系统的时候,能够更加容易地管理其企业,设计了本系统的功能图,见图3-1。餐饮管理系统普通用户餐厅经理前台管理后台管理开台点菜加菜减菜顾客结账管理用户管理收入管理数据库管理菜式注册新用户修改用户权限删除用户查询今日收入查询月收入数据库备份数据库还原增加菜式修改菜式删除菜式图3-1 系统功能图本系统一共分两类用户,为七个模块,每个模块之间虽然在表面上是相互独立的,但是在对数据库的访问上是紧密相连的。各个模块访问的是同一个数据库,只是所访问的表不同而已。每个模块的功能都是按照在调研中搜集的资料进行编排制作的。依据上述模块的分析,系统中功能分别为:开台点菜、加菜减菜、顾客结账、管理用户、管理收入、管理数据库、管理菜式。各功能模块的具体功能如下:A.前台管理模块此模块用于管理为顾客服务的模块,具体如下:开台点菜模块开台模块用于管理餐厅所拥有餐桌的状态,同时顾客可以选择“空闲”的餐桌开台;开台后进入点菜模块,点菜模块用于管理顾客的点菜信息,可以对已点菜式进行增加和删除操作。加菜减菜模块此模块用于顾客点菜成功后,继续点菜,也管理顾客的点菜信息,选择需要服务的餐桌,可以对已点菜式进行增加和删除操作。顾客结账模块此模块管理顾客的结账信息,选择对应餐桌,可显示该餐桌点菜的详细清单。该模块还具有计算功能,能够快速计算出对应餐桌顾客实际消费金额,同时,当输入顾客实付现金,可以迅速计算出找零金额。B.后台管理模块此模块只有餐厅经理可以操作,包括以下模块:管理用户模块此模块管理餐厅工作人员,具体又包括以下三个小模块:注册新用户餐厅经理通过此模块可以注册新用户,新用户信息写入数据库,包括用户名和密码,其中新注册用户,必须是系统中没有的,注册时必须进行密码确认。同时,新注册用户的权限默认为普通用户。修改用户权限餐厅经理通过此模块可以对餐厅中工作人员的权限进行修改,修改后的数据写入数据库,对特定用户“SJZHOU”不可修改其权限。删除用户餐厅经理通过此模块可以删除餐厅中的工作人员,对应用户信息同时从数据库中删除。特定用户“SJZHOU”不可删除。管理收入模块此模块用于查询餐厅收入信息,可以即时有效地反映餐厅的收入状况,包括两个模块,分别为查询今日收入模块和查询月收入模块。管理数据库模块此模块用于对餐厅中数据库进行备份和还原,保障了餐厅信息的安全性。包括两个模块,分别为数据库备份模块和数据库还原模块。管理菜式模块此模块管理餐厅中的菜式信息,在此模块中,餐厅经理可以对餐厅的菜式进行一些列的操作,包括增加菜式、修改菜式、删除菜式等。在此模块中对修改餐厅的菜式信息,能够及时地反馈到前台的菜式信息上,使顾客可以享用到最新的菜式。各个模块分别管理不同的事务,如此才能有条不紊地管理整个餐厅,提高餐厅的工作效率等。 3.2 系统数据库设计每个企业都需要建立的数据库,本系统也需要建立自己的数据库。数据库是餐饮管理系统中极为重要的组成部分,也是前台应用程序工作的基础。数据库创建与开发的优劣直接影响到整个系统的质量和效率。数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术。具体的说,数据库设计是一个给定的应用环境,构造最优的用户的应用需求。数据库设计应该和应用系统设计相结合,也就是说,整个设计过程中要把结构数据设计和行为处理设计密切结合起来。17根据系统的需求分析,设计出本系统的数据库,将其命名为MYSYS,系统前台E-R图见图3-2,后台见图3-3。用户用户名密码权限开台点菜结账餐桌菜式账单桌号状态菜名菜价桌号菜名数量价格图3-2 系统前台E-R图用户用户名密码权限管理收入菜式用户日收入日期菜名菜价用户名密码权限图3-3 系统后台E-R图其中需要设计一系列的表。表设计见表3-1。表3-1 表设计表名功能说明CAISHI存放餐厅中所有的菜式的信息KAITAI存放餐厅中所有的餐桌的状态LOGIN存放餐厅中工作人员的信息SHOURU存放每天的收入信息ZHAGNDAN存放未结账的单笔账单信息登录模块中,用户登录时需要从数据库中读取信息,包括用户名和密码,以及判断用户权限。设计出表LOGIN,见表3-2。表3-2 LOGIN字段名称数据类型说明ID自动编号主键UANME文本登录者用户名UPASSWORD文本登陆者密码POWER数字登录者权限开台模块中,需要初始化餐桌状态,选择“空闲”餐桌给需要服务的顾客,设计表KAITAI,包括餐桌的桌号和状态,见表3-3。表3-3 KAITAI字段名称数据类型说明ID自动编号主键ZHUOHAO数字餐厅里餐桌的桌号IFUSED数字对应餐桌是否正在使用,用1和0分别表示使用“有人”和“空闲”点菜模块和加菜减菜模块中,需要向数据库中写入顾客点菜信息,其中包括顾客开台桌号,顾客所点的菜式的菜名、数量和价格,从而设计出表ZHANGDAN,见表3-4。表3-4 ZHANGDAN字段名称数据类型说明ID自动编号主键ZHUOHAO数字桌号CNAME文本该桌客人点菜的菜名SHULIANG数字点菜的数量JIAGE数字该道菜的消费结账时,通过在该表中对桌号查询,选择出需要结账的桌号,则在结账模块的对话框中的列表框中,会将该桌的点菜详细清单列出,同时计算出该桌客人的实际消费金额。餐厅的中的所有菜式信息都存放在表CAISHI中,见表3-5。该表中需要存放菜式的菜名以及菜价。表3-5 CAISHI字段名称数据类型说明ID自动编号主键CNAME文本系统中菜谱中菜式对应名称CPRICE数字对应菜式的价格结账成功后,会删除该桌的点菜信息,同时,将该笔收入加入到数据库中,因此需设计表SHOURU,保存日期及当日收入,见表3-6。每次有新收入时,若数据库中没有当天收入,则新建日期,保存收入;若数据库中已有当天收入,则在该记录中改变收入值。表3-6 SHOURU字段名称数据类型说明ID自动编号主键RSHOURU数字每日收入RIQI文本日期3.3 连接数据库本系统中使用的是Microsoft Office Assess数据库,从而在VS中连接数据库时,需要访问一个由Microsofts Jet数据库管理系统生成的数据库,也即Microsoft Access应用程序生成的数据库。其方法是,使用MFC的CdaoDatabase和CdaoRecordSet类打开数据库并访问其记录。这两个类的许多功能与MFC访问ODBC数据库的类是一样,但是他们有较高的性能和灵活性。19ADO是目前在Windows环境中比较流行的客户端数据库编程技术。ADO是建立在OLE DB底层技术之上的高级编程接口,因而它兼具有强大的数据处理功能(处理各种不同类型的数据源、分布式的数据处理等等)和极其简单、易用的编程接口,因而得到了广泛的应用。而且按微软公司的意图,OLE DB和ADO将逐步取代 ODBC和DAO。ADO实际上就是由一组Automation对象构成的组件,因此可以象使用其它任何Automation对象一样使用ADO。ADO中最重要的对象有三个:Connection、Command和Recordset,它们分别表示连接对象、命令对象和记录集对象。使用ADO编程时可以采用使用预处理指令#import,但要注意不能放在stdafx.h文件的开头,而应该放在所有include指令的后面。否则在编译时会出错。程序在编译过程中,VC+会读出msado15.dll中的类型库信息,自动产生两个该类型库的头文件和实现文件msado15.tlh和msado15.tli(在Debug或Release目录下)。在这两个文件里定义了ADO的所有对象和方法,以及一些枚举型的常量等。我们的程序只要直接调用这些方法就行了,与使用MFC中的COleDispatchDriver类调用Automation对象十分类似。实现步骤如下:保证以下语句包含文件在stdafx.h中。#import c:program filescommon filessystemadomsado15.dll no_namespace rename(EOF,adoEOF)在My_system.cpp文件中通过以下语句连接数据库。hr=m_pCon-Open(Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MYSYS.mdb,adModeUnknown);然后就可以在VS中通过SQL语句来对数据库进行操作。4 系统详细设计4.1 主界面设计Header File: My_systemDlg.hImplementation File: My_systemDlg.cppDialog: IDD_MY_SYSTEM_DIALOG本系统的主界面结构为上下结构,见图4-1。图4-1 主界面(未登录)上面部分显示了该系统的前台模块及其功能,此功能的实现代码在函数BOOL CMysystemDlg:OnInitDialog()中。5 为了界面美观,使用带图案的按钮,通过代码在其中加入6个button,其实现步骤如下:加载6幅32*32的图标在图标下面设置显示信息通过以下三句,实现未登录情况下,只有“用户登录” 、“关于系统” 和“退出系统”三个模块可用,其他模块不可用。 m_Toolbar.GetToolBarCtrl().EnableButton(IDB_KAITAI, false); m_Toolbar.GetToolBarCtrl().EnableButton(IDB_JIAJIAN, false); m_Toolbar.GetToolBarCtrl().EnableButton(IDB_JIEZHANG, false);下面部分在未登录情况下显示背景图片,在该对话框中放置一个Picture Control,首先设置该控件的Type属性为Bitmap,然后设置其Image属性为Bitmap中的IDB_BITMAP_BACKGROUND。用户登录后,根据用户权限显示不同界面,此功能在函数void CMysystemDlg:OnBUTTONlogin()中实现。1对数据库中的LOGIN表查询,判断登录权限,相关语句如下18:CString Sql = select * from LOGIN where UNAME=+theA+;m_pRs = theApp.m_pCon-Execute(_bstr_t)Sql, NULL, adCmdText);CString Str = (_bstr_t)m_pRs-GetCollect(POWER);int radio = atoi(Str);当用户权限为普通用户时,依然显示该背景图片,但不可用的几个功能模块变成可用,而“用户登录”模块变为不可用,见图4-2。图4-2 主界面(普通用户登录)当用户权限为餐厅经理时,上面部分的功能模块与普通用户登录一样有变化,同时下面部分加载Tab Control,见图4-3。其中加载了4个对话框,分别为管理用户、管理收入、管理数据库和管理菜式,其实现代码如下:m_sheet.AddPage(&m_pageyonghu);m_sheet.AddPage(&m_pageshouru);m_sheet.AddPage(&m_pageshujuku);m_sheet.AddPage(&m_pagecaishi);图4-3 主界面(餐厅经理登录)4.2 登录界面设计Header File: MyLoginDlg.hImplementation File: MyLoginDlg.cppDialog: IDD_LOGIN通过对数据库的查询,读取数据库中的所有用户名,使其列在Combo Box中,用户登录时可以选择自己的用户名;设计一个Edit Control作为密码输入框,将其Password属性设为True。15其界面见图4-4,表4-1列出了该登录界面中的主要控件和他们的主要属性及其说明,实现代码在函数BOOL CMyLoginDlg:OnInitDialog()中。图4-4 登录界面表4-1 登录界面控件信息控件名(Name)ID说明Picture ControlIDC_STATIC图片控件,首先设置其Type属性为Bitmap,然后在其Image属性中选择位图IDB_LOGIN,最后调整位置。Combo-box ControlIDC_LOGIN列表框控件,用于登录用户选择用户名。查询表LOGIN,使其中的所有用户的用户名加载到该控件中。Edit ControlIDC_LOGIN_PWD编辑控件,用于输入密码,为了信息的安全,将其Password属性设置为True。Button ControlID_LOGIN_DENGLU登录按钮,系统运行时选择它,当用户信息输入正确则登录成功。ID_LOGIN_QUXIAO取消登录。输入密码后,按“登录”按钮,内部进行登录验证,并且对输入非法以及输入错误进行错误提示,在void CMyLoginDlg:OnBnClickedLoginDenglu()函数中实现。24.3 前台界面设计4.3.1 开台Header File: MyKaitaiDlg.hImplementation File: MyKaitaiDlg.cppDialog: IDD_KAITAI在开台模块中,加载开台界面时,数据库中的餐桌状态需要更新,显示出即时的餐桌使用状态,其界面见图4-5,其实现函数为BOOL CMyKaitaiDlg:OnInitDialog()。该界面中的主要控件及其信息见表4-2。图4-5 开台界面表4-2 开台界面控件信息控件名(Name)ID说明ActiveX ControlIDC_IMAGE1这是个ActiveX控件,Microsoft Forms 2.0 Image。属性Picture可以选择图片,再将其BorderStyle设置为None,去除黑边。List ControlIDC_KAITAI为该控件添加2个元素,“桌号”和“状态”,查询表Kaitai,在控件中列出所有的餐桌,同时根据IFUSED的值在状态栏中显示餐桌的使用状态。Edit ControlIDC_XUZEZHUOHAO编辑控件,对上面的List Control设置事件NM_CLICK,即函数OnNMClickKaitai,当单击List Control中的选项时,该Edit Control显示对应的餐桌号。Button ControlID_KAITAI_QUEDING登录按钮,添加事件BN_CLICKED,即函数OnBnClickedKaitaiQueding,在其中判断选择的桌号是否正确。ID_KAITAI_TUICHU退出开台。界面中的List Control需要一个单击处理事件,使得单击其中的桌号时,在界面上的Edit Control中能显示对应的餐桌号12,实现代码如下:void CMyKaitaiDlg:OnNMClickKaitai(NMHDR *pNMHDR, LRESULT *pResult)CString str;str = m_KtList.GetItemText(m_KtList.GetSelectionMark(), 0);m_Zhuohao = str;UpdateData(false);*pResult = 0;确定后,会进行桌号选择判断,不能为空,不能“有人”,不能输入非法,否则弹出提示错误信息,其实现代码在void CMyKaitaiDlg:OnBnClickedKaitaiQueding()函数中。34.3.2 点菜Header File: MyDiancaiDlg.hImplementation File: MyDiancaiDlg.cppDialog: IDD_DIANCAI开台成功后,自动进入点菜界面,见图4-6。加载该对话框时,需要在界面中显示服务桌号,同时需要在左边的列表框中加载数据库中的菜式信息,具体实现在函数BOOL CMyDiancaiDlg:OnInitDialog()中。5表4-3列出了该界面中的主要控件信息即详细说明。图4-6 点菜界面表4-3 点菜界面控件信息控件名(Name)ID说明Edit ControlIDC_DIANCAIZHUOHAO设置其Static Edge为False,即该控件中的内容不可手动修改,只能随系统中的数据变化而自动改变。在OnInitDialog中将其内容设置为开台时所选的桌号。List ControlIDC_DIANCAIL左列表框,用来显示餐厅中所有的菜式信息,在第一行显示“菜名” 、“菜价/元”。IDC_DIANCAIR右列表框,用来显示已经选择的菜式,在第一行显示“菜名” 、“菜价/元”。Button ControlIDC_JIACAI加菜按钮,选择它将坐列表框中选择的菜式添加到右列表框中。IDC_JIANCAI减菜按钮,选择它将右列表框中选择的菜式从列表框中删除。ID_DIANCAI_QUEDINGOnBnClickedDiancaiQueding()函数实现确定点菜功能,主要是修改数据库中数据。ID_DIANCAI_TUICHU退出点菜界面。当选中某道菜时,选择加菜按钮,会弹出点菜数量对话框,需要输入点菜数量,见图4-7。Header File: MyShuliangDlg.hImplementation File: MyShuliangDlg.cppDialog: IDD_SHULIANG图4-7 点菜数量界面点菜数量需要保证大于零,如果输入非法,弹出提示信息if (m_Shuliang.IsEmpty() | m_Shuliang = 0)AfxMessageBox(_T(点菜数量不可为零!);return;确定点菜数量后,返回点菜界面可继续点菜,同时刚点的菜会显示在右边的列表框中。确定点菜,按下确定按钮,通过右边列表框中的信息对数据库进行处理,需要将对应桌号以及点菜信息写入到ZHANGDAN表中,其具体实现代码在函数void CMyDiancaiDlg:OnBnClickedDiancaiQueding()中。6主要数据库操作语言如下:Sql1 = select * from CAISHI where CNAME=+Str+;Sql1 = insert into ZHANGDAN(ZHUOHAO,CNAME,SHULIANG,JIAGE) values(+m_Zhuohao+,+Str+,+Str1+,+TotleValue +);如果没有点菜,弹出未点菜提示信息;点菜成功,也弹出提示成功信息。点菜成功后,才会修改KAITAI表中的记录,改变餐桌的状态。4.3.3 加菜减菜Header File: MyJiajianDlg.hImplementation File: MyJiajianDlg.cppDialog: IDD_JIAJIAN点菜过后,如果顾客需要再点菜,需要进入加菜减菜模块,其对话框见图4-8。图4-8 加菜减菜界面该界面中的控件信息类似于表4-3,主要是将原来的Edit Control换成Combo-box Control。界面加载时,在左边的列表框中需要列出系统中的所有菜式信息,实现此功能的代码在OnInitDialog()函数中。类似于点菜模块中的OnInitDialog()。其中,首先要选择需要服务的桌号,选择的桌号必须是正在使用的餐桌的桌号,从ZHANGDAN表中查询出桌号,列在Combo-box中,一旦桌号选择成功,同时在界面上的右边的列表框中列出该桌顾客的点菜清单,见void CMyJiajianDlg:OnCbnSelchangeXuanzezhuohao()。7界面上的加菜减菜按钮等的实现类似于点菜模块中对应操作。4.3.4 顾客结账Header File: MyJiezhangDlg.hImplementation File: MyJiezhangDlg.cppDialog: IDD_JIEZHANG该对话框中,需要选择服务桌号,选择桌号成功后,需要在界面上显示出顾客实际消费金额以及消费清单,见图4-9,在void CMyJiezhangDlg:OnCbnEditchangeComboZhuohao()函数中实现,表4-4中列出了该界面中的控件。图4-9 结账界面表4-4 结账界面控件信息控件名(Name)ID说明Combo-box ControlIDC_COMBO_ZHUOHAO选择桌号,为其设置CBN_EDITCHANGE和CBN_SELCHANGE 这2个事件。用来改变界面中其他控件的显示情况。Edit ControlIDC_EDIT_YINGSHOU应收金额,系统自动显示。IDC_EDIT_SHISHOU实收现金,用户手动输入。设置事件EN_CHANGE,即函数OnJiSuan()。IDC_EDIT_ZHAOLING找零现金,输入实收现金后,自动显示。List ControlIDC_LIST_QINGDAN选择桌号时,查询表ZHANGDAN,使列表框中显示该餐桌客人所点的菜及消费情况。Button ControlID_JIEZHANG_JIEZHANG事件BN_CLICKED。ID_JIEZHANG_TUICHU退出结账界面。当改变服务桌号时,对应的应收金额以及详细清单也需要做出相应改变,实现代码见函数OnCbnSelchangeComboZhuohao(),实现过程类似于OnCbnEditchangeComboZhuohao(),只是要先删除列表框中信息,再重新加载信息。当用户输入顾客付款金额时,需要系统自动计算找零金额,在界面上显示出找零金额,实现代码见函数OnJiSuan(),如下所示:结账成功后,弹出提示成功信息,同时,清空界面上的结账信息,并且删除数据库中已结账的记录,该过程在函数void CMyJiezhangDlg:OnBnClickedJiezhangJiezhang()中实现。结账后,若还有需要结账的顾客,可以继续选择餐桌号结账,否则单击“退出”按钮退出结账界面。84.4 后台界面设计权限为餐厅经理的工作人员可以进行后台管理。4.4.1 管理用户Header File: MyGLyonghuDlg.hImplementation File: MyGLyonghuDlg.cppDialog: IDD_GLYONGHU管理用户模块分为3个小模块,分别为“注册新用户” 、“修改用户权限”和“删除用户” ,见图4-10。图4-10 管理用户界面在该对话框中针对3个模块放置了3个Button Control,分别设置BN_CLICKED事件,使得当单击它们时分别进入对应的界面。注册新用户,见图4-11。Header File: MyZhuceDlg.hImplementation File: MyZhuceDlg.cppDialog: IDD_ZHUCE图4-11 注册新用户界面在该对话框中设置3个Edit Control,见表4-5。输入的新用户名不能是数据库中已存在的,如果已存在,提交时会弹出提示信息;输入密码,和确认密码,将其Password属性设置为True,当2次输入密码相同时,才会注册成功,否则提交时弹出提示信息,实现代码在函数void CMyZhuceDlg:OnBnClickedZhuceTijiao()中。9表4-5 注册界面控件信息控件名(Name)ID说明Edit ControlIDC_USERNAME新用户用户名。IDC_PASSWORD新用户密码,设置其Password属性为True。IDC_RPASSW

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论