论文—酒店自助点餐系统_第1页
论文—酒店自助点餐系统_第2页
论文—酒店自助点餐系统_第3页
论文—酒店自助点餐系统_第4页
论文—酒店自助点餐系统_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、酒店自助点餐系统的设计与实现酒店自助点餐系统的设计与实现HOTEL BUFFETMEAL MANAGEMENT SYSTEM DESIGN AND IMPLEMENTATION专专 业:国际学院业:国际学院姓姓 名:李思博名:李思博指指 导导 教教 师:师:申请学位级别:学士申请学位级别:学士论文提交日期:论文提交日期:2012 年年 6 月月 6 日日学位授予单位:天津科技大学学位授予单位:天津科技大学摘摘 要要随着中国市场经济的飞速发展和人民生活水平的不断提高,人们对餐饮业的要求也随着提高,餐饮业的竞争越来越激烈,传统的人工点餐方式效率低,容易出错,已不能满足目前客人的需要。各个餐饮酒店想

2、在竞争中取得优势,就必须在经营管理、产品服务等方面提高质量,因此餐饮管理显得尤为重要。面对庞大的信息量,就需要一个自助点餐管理系统来提高餐饮管理效率。本文论述的是一个自助点餐管理系统,该系统选择目前应用最广泛的Windows 操作系统作为开发、测试和运行的平台,用 Visual Basic 6.0 作为软件开发工具,VB 为编程语言,ACCESS 数据库支持,容易上手且功能齐全,主要功能包括登记、自助点餐、加餐、结算、查看销售额等。本系统为餐饮管理者提供了简单高效的管理方式,满足了大部分餐饮企业的点餐功能需求,为餐饮管理节省了大量时间以及人力资源。关键词关键词:餐饮自助点餐管理系统;VB;AC

3、CESS 数据库设计;程序设计。ABSTRACTWith the rapid development of Chinas market economy and the continuous improvement of peoples living standards, the requirements on the restaurant industry also rise, food and beverage industry competition increasingly fierce, the low efficiency of traditional manual ordering

4、 methods, error-prone, has notmeet the current needs of the guests. Each hotel restaurant would like to gain advantage in the competition, we must improve the quality of the food and beverage management is particularly important in the management, products and services. Faced with an enormous amount

5、 of information, you need a self-service ordering management system to improve the efficiency of food and beverage management.Of this paper is a self-service ordering management system, the system selects the most widely used Windows operating system as a platform for development, testing and runnin

6、g with Visual Basic 6.0 as a software development tool, VB programming language, the ACCESS database support, easy get started and fully functional, the main features include registration, buffet meal, snacks, settlement, view sales. For catering managers, the system provides a simple and efficient

7、management to meet the functional requirements of most of the food and beverage ordering and save a lot of time and human resources for food and beverage management.Keywords: Catering buffet meal ordering management system; VB; ACCESS database design; program design目 录第一章 绪论.1第一节 课题背景 .1第二节 课题研究的目的和

8、意义 .1第三节 课题的主要内容 .1第二章 开发工具和开发环境.3第一节 VB 简介.3第二节 ACCESS 简介.4第三节 ADO 数据访问介绍.5第三章 系统需求分析及数据库设计.10第一节 系统功能分析 .10第二节 数据库设计 .11第四章 系统详细设计与实现.18第一节 登录界面 .18第二节 主界面 .19第三节 客户换桌管理界面 .20第四节 点餐界面 .22第五节 菜谱管理界面 .32第六节 用户信息管理界面 .38第七节 更改密码界面 .43第五章 系统测试.44第一节 系统测试的目的 .44第二节 系统测试的方法 .44结论.50参考文献.51致谢.52第一章 绪论 第一

9、节 课题背景随着经济的迅速发展和人们生活水平的不断提高,餐饮业的竞争越来越激烈。要想在竞争中取得优势,就必须在经营管理、产品服务等方面提高服务管理意识。面对餐饮的经营起决定作用的是餐饮的管理。如何利用先进的管理手段来提高餐饮的管理水平,是每一个餐饮管理者所面临的重要课题。简单的服务标准已经不是制胜的法宝,只有管理做到最细微之处,才能让顾客体会到餐饮服务的高标准、高质量,而准确、快捷、周全往往就是最基本的成功要素。面对信息时代的挑战,利用科技手段提高企业管理无疑是一条行之有效的途径。因此采用电脑管理业务、财务等诸多环节已成为宾馆餐饮业快速发展的先决条件。第二节 课题研究的目的和意义国内餐饮业的应

10、用系统都各不相同,对于一家餐饮,如果各部门使用的是不同的平台、不同的软件,员工操作时还需要重新学习各种软件,这样不但花费了大量时间,也同时影响餐饮的效率。这样就需要一个容易上手并且实用的一个管理软件,可以让员工能够在极短时间内掌握,减少成本,增加收益。针对餐饮的具体业务,主要是餐饮管理,为用户提供迅速高效的服务,减免手工处理烦琐以及误差,并及时准确的反映餐饮的工作状况,从而提高餐饮管理的服务质量,使餐饮获得更好的经济效益。第三节 课题的主要内容本点餐管理系统的开发设计包括数据库结构设计及程序设计。该系统不仅具有自助点餐、加餐,结算等基本功能,还可以随时查看的销售额。为广大消费得和销售商提供了极

11、大的方便。适用于一般的中小型餐饮销售企业的管理。这就要求开发者具备对某一领域熟悉的情况下寻找相关资料并通过自学逐步掌握该门知识的能力。在开发过程中遵循以下原则:2(1)实用性:系统以酒店自助点餐需求为目标,以方便酒店业务操作为原则,根据实际的需求情况,为酒店设计了一套基本的点餐业务管理模式,尽可能地简化点餐的操作过程。(2)先进性:本系统将充分应用现有成熟的计算机技术、软件开发技术。使用Visual Basic 6.0 作为主要开发环境,其优秀的编码体制和简易实用性是此系统的强力支柱。(3)高可靠性:系统的可靠性对系统使用来说具有极其重要的意义,本设计通过优化的软件架构和稳定的 Windows

12、 运行平台,可保证系统应用时的高稳定性和高可靠性。(4)清晰性:系统在设计时,层次及整体结构清晰明了,能够保证管理员使用系统时,操作方便,所需信息获取便利。第 2 章 开发工具和开发环境本自助点餐管理系统数据库选择的是 ACCESS,开发环境是 Microsoft 的Visual Basic 6.0,前后台连接采用的是 ADO 方式。第一节 VB 简介Visual Basic 6.0,是微软公司推出的可视化编程工具 MSDN 之一, 是目前世界上使用最广泛的程序开发工具。它的快捷的开发速度, 简单易学的语法, 体贴便利的开发环境,不愧为一款优秀的编程工具, 是初学者的首选。另外VB 提供的是可

13、视化的开发环境,我们可以象搭积木一样构建出程序的界面,而且 VB 提供了丰富的控件组,省去了我们自己写代码实现这些效果的麻烦,这样我们就能把更多的精力放在程序功能的实现上,所以用起来方便。在 VB 中,应用面向对象的程序设计方法(OOP) ,把程序和数据封装起来视为一个对象,每个对象都是可视的。12VB 功能特点如下:(1)具有面向对象的可视化设计工具。在 VB 中,应用面向对象的程序设计方法(OOP) ,把程序和数据封装起来视为一个对象,每个对象都是可视的。程序员在设计时只需用现有工具根据界面设计要求,直接在屏幕上“画”出窗口、菜单、按钮、滚动条等不同类型的对象,并为每个对象设置属性。程序员

14、的编程工作仅限于编写相关对象要完成的功能程序,因而程序设计的效率可大大提高。 (2)事件驱动的编程机制。事件驱动是非常适合图形用户界面的编程方式。在图形用户界面的应用程序中,是由用户的动作即事件掌握着程序运行的流向,每个事件都能驱动一段程序的运行。程序员只要编写响应用户动作的代码,而各个动作之间不一定有联系。 (3)提供了易学易用的应用程序集成开发环境。在 VB 集成开发环境中,用户可设计界面、编写代码、调试程序,直至把应用程序编译成可执行文件在 Windows 中运行,使用户在友好的开发环境中工作。 (4)结构化的程序设计语言。VB 具有丰富的数据类型和结构化程序结构,作为一种程序设计语言,

15、它还有如下一些特点: 强大的数值和字符串处理功能 丰富的图形指令,可方便地绘制各种图形 提供静态和动态数组,有利于简化内存的管理 过程可递归调用,使程序更为简练 支持随机文件和顺序文件的访问 提供了一个可供应用程序调用的包含多种类型的图标库 具有完善的运行出错处理 (5)支持多种数据库系统的访问 利用数据控件可访问的数据库系统有:Microsoft Access、Btrieve、DBASE、Microsfot FoxPro 和 Paradox 等,也可以访问Microsoft Excel、Lotus1-2-3 等多种电子表格。 (6)支持动态数据交换(DDE) 、动态链接库(DLL)和对象的链

16、接与嵌入(OLE)技术 。(7)完备的 HELP 联机帮助功能。VB 程序设计的概念就是面向对象的概念,对象就是数据(DATA)和代码(CODE)互相结合的综合体。Windows 上面的每一个图标,包括窗口本身都是对象,如果没有任何事情发生,对象处于停顿状态。当存在外来事件时,程序段执行,它的执行是由外来事件决定的。因此是“事件”驱动的。与 Windows 环境下的软件一样,在 VB 中,利用帮助菜单和 F1 功能键,用户可以随时方便地得到所需要的帮助信息。VB 帮助窗口中显示了有关的示例代码,通过复制、粘贴操作可获取大量的示例代码,为用户的学习和使用提供了极大的方便。 第二节 ACCESS

17、简介Microsoft Access 软件与其他数据库应用程序(例如 FoxPro,Oracle 和dBase 等)一样,从本质上说,都是一种数据库管理系统(DBMS) ,更为具体点,它是一种关系数据库管理系统(RDBMS) , Access 主要用于中小型数据库应用系统。而 Oracle 和 Sybase 主要用于大型数据库应用系统。作为一个模拟系统,数据量并不大,所以就采用了小型数据库 Access。它适用于小型商务活动,用以存贮和管理商务活动所需要的数据。Access 具有一个数据库管理系统所应具备的功能,允许用户构造应用程序来归档和存储数据,并使数据能够很容易地采用多种方式进行筛选、分

18、类和查询数据。Access 本身是一个很好的应用程序开发环境,它有和 VB 类似的界面设计方法,一样易学易用。在面向数据库的应用程序开发方面比起 VB 的开发效率更高,功能更强。它提供了很多对象(表,窗体,查询,报表)的设计向导,使得有 VB 基础的非常容易使用。Access 拥有的子窗体、子报表控件,它在设计主细表结构的界面和报表方面给程序员带来巨大的方便。11Access 软件所能完成的功能基本上是一个数据库管理系统所就具有的功能:(1)可以根据需要定制 Access 数据库系统,对数据进行保存、查阅和计算。(2)利用表存储相应的数据信息,为每一种实际对象的信息创建一个表,在表中对不同数据

19、以不同的方式进行保存。(3)可以按照实际中对象之间的关系,定义各个表之间的关系,将各个表中相关的数据有机地联系在一起。(4)可以检索用户指定条件的数据,创建相应的查询来进行检索,也可以利用查询来更新或删除多条记录,并对表中的数据执行各种计算。(5)可以直接输入、查看或更改数据库中的数据,利用表格或创建一定的窗体来完成上述功能。(6)可以对数据库中的数据进行分析,或者通过特定的方式将数据打印出来,绘制一份相应要求的报表。9Access 特点:在 Access 中,数据库是由若干个数据表格组成的,在表格中具有主关键字和外部关键字定义,并且在数据库中提供了完全的引用完整性,从而避免了数据库中不合理的

20、数据更新和删除。同时,Access 的表格具有数据确认规则,以避免非精确数据在输入时被忽略,并且对于大多数软件的数据输入。表格的每一个字段都具有自己的格式和缺省的定义。Microsoft Access 支持文本、数字、货币、日期、备注、是/否以及 OLE 对象等字段类型。当进行特殊处理而缺少数值时,Access 还提供完全支持空值的特性。由上面列出的内容来看,Microsoft Access 能够完全满足对一个现代数据库就用的需要,不但可以对数据基本操作可以完成,同时还能够完成更高级的操作功能。第三节 ADO 数据访问简介使用 ADO 开发应用程序时,将有操作数据的各种要求。在某些情况下,可能

21、只是想在窗体上显示数据。在其他情况下,则可能需要设计一种方式来与另一个公司共享信息。无论对数据进行怎样的操作,了解 ADO 中的数据结构、主数据组件概念和组件组合方式是很有用的。在传统的客户端/服务器应用程序中,组件将建立与数据库的连接,并在应用程序运行过程中使连接保持打开状态。出于各种原因,该方法在许多应用程序中是不实用的: 打开的数据库连接占用宝贵的系统资源。在大多数情况下,数据库只可以维持少量的并发连接。维持这些连接的系统开销将降低应用程序的总体性能。 基于始终连接数据的模型可能使得使用连接结构在应用程序和组织边界之间交换数据变得困难且不实际。如果两个组件需要共享相同的数据,则二者均必须

22、连接,或者必须为这两个组件设计一种方式以相互传递数据。 出于这些原因,使用 ADO 进行数据访问是以有节制使用连接的结构为中心进行设计的。应用程序连接到数据库的时间仅足够获取或更新数据。因为数据库并未被大部分时间空闲的连接占用,所以它可以为更多用户提供服务。使用数据命令执行数据库交互若要在数据库中执行操作,应执行 ACCESS 语句或存储过程(它包括 ACCESS 语句) 。使用 ACCESS 语句或存储过程读写行并执行聚合函数,例如添加或求平均值。使用 ACCESS 语句或存储过程创建或修改表或列、执行事务等。在 ADO 中,使用数据命令打包 ACCESS 语句或存储过程。例如,想要从数据库

23、读取一组行,则创建一个数据命令并用 ACCESS Select 语句的文本或获取记录的存储过程的名称配置它。如果要获取这些行,则执行以下操作: (1)打开一个连接。 (2)按以下顺序调用命令的执行方法: 执行该命令引用的 ACCESS 语句或存储过程,然后关闭连接。 连接保持打开的时间仅足够执行语句或存储过程。 在调用命令的执行方法后,它将返回一个值。更新数据库的命令返回所影响的行数;其他类型的命令返回一个错误代码。如果该命令使用 SELECT 语句查询数据库,则它返回一组行。安全说明:当使用 CommandType 属性设置为 Text 的数据命令时,请对从客户端发送过来的信息进行仔细检查,

24、然后再将它传递给数据库。恶意用户可能会试图发送(插入)修改过的或其他 ACCESS 语句,以获得未经授权的访问或破坏数据库。在将用户输入内容传输到数据库之前,应始终确认这些信息是有效的;如果可能的话,始终使用参数化查询或存储过程,这是最佳措施。如果要执行多个操作(例如,读取一些行,然后更新它们) ,则可以使用多个数据命令,每个操作一个命令。每一操作分别执行。例如,要读取多行,应打开连接,读取这些行,然后关闭该连接。如果要更新数据,再次打开连接,执行更新,然后再次关闭该连接。数据命令可以包括多个参数(具体而言,参数对象的集合) ,使用这些参数创建类似以下形式的参数化查询:Select * Fro

25、m customers Where (customer_id = customerid)。然后在运行时设置这些参数并执行命令以返回或更新所需数据。数据可被缓存到数据集中。最常见数据任务是从数据库检索数据并对数据进行某些操作:显示数据、处理数据或将数据发送给另一个组件。经常地,应用程序需要处理不止一条记录,而是一组记录:例如客户列表或今天的订单。通常应用程序所需的该组记录来自多个表:我的客户及其所有订单;所有名为Smith的作者及他们写的书;以及其他类似的相关记录组。获取了这些记录后,应用程序通常将它们成组使用。例如,应用程序可以允许用户浏览名为Smith的所有作者,检查一个 Smith 的书,

26、然后检查下一个 Smith 的书,等等。在许多情况下,每次应用程序需要处理下一条记录时都返回到数据库是不切实际的。 (这样做可能会失去将打开连接的需求降至最低所带来的许多好处。)因此解决方案就是临时存储从数据库检索的记录,然后使用该临时集,这便是数据集的概念。数据集是从数据源检索的记录的缓存。它的工作方式如同虚拟的数据存储区:数据集包含一个或多个表(这些表基于实际数据库中的表) ,并且它可以包含有关这些表之间的关系和对表可包含数据的约束的信息。数据集内的数据通常是数据库中内容的非常精简的版本。但是,可以用与操作实际数据十分类似的方式操作数据集。这样操作时,将保持与数据库的不连接状态,使数据库可

27、以自由执行其他任务。如果经常需要更新数据库中的数据(尽管不会像从数据库检索数据那么频繁) 。可以在数据集上执行更新操作,并且这些更新可以直接写到基础数据库。因为数据集实际上是数据库数据的私有副本,所以它不一定反映数据库的当前状态。使用数据集的一个便利之处是组件可以根据需要交换数据集。例如,中层的某个业务对象可以创建和填充一个数据集,然后将它发送给应用程序中其他位置处的另一个组件以供处理。该功能意味着组件不必分别查询数据库。数据集独立于数据源:尽管数据集是作为从数据库获取的数据的缓存,但数据集与数据库之间没有任何实际关系。数据集是容器;它由从数据适配器执行的 ACCESS 命令或存储过程填充。由

28、于数据集不直接绑定到数据源,所以它是来自多个源的数据的好的集成点。例如,数据集内的某些数据可能来自数据库,而它的其他部分可能来自另一个数据库或电子表格之类的非数据库源。数据集内的某些数据可能来自另一个组件所发送的流。一旦数据在数据集内,则不管它的原始源是什么,都可以使用一致的对象模型对它进行操作。数据保持为 XML。数据需要从数据存储区移动到数据集以及从数据集移动到各种组件。在 ADO 中,传输数据的格式是 XML。类似地,如果需要保持数据(例如保持到文件中) ,则将其存储为 XML。如果有 XML 文件,则可以像使用任何数据源一样使用它,并从它创建数据集。10与 ADO 的早期版本和其他数据

29、访问组件相比,ADO 提供了若干好处。这些好处分成以下几个类别:(1)互操作性ADO 应用程序可以利用 XML 的灵活性和广泛接受性。因此可以读取 XML 格式的任何组件都可以处理数据。实际上,接收组件根本不必是 ADO 组件:传输组件可以只是将数据集传输给其目标,而不考虑接收组件的实现方式。目标组件可以是 Visual Studio 应用程序或无论用什么工具实现的其他任何应用程序。唯一的要求是接收组件能够读取 XML。作为一项工业标准,XML 正是在谨记这种互操作性的情况下设计的。(2)可维护性在已部署系统的生存期中,适度的更改是可能的,实质的结构更改十分困难。因为在事件的自然过程中,这种实

30、质上的更改会变得很有必要。例如,当已部署的应用程序越来越受用户欢迎时,增加的性能负荷可能需要进行结构更改。随着已部署的应用程序服务器上的性能负荷的增长,系统资源会变得不足,并且响应时间或吞吐量会受到影响。面对该问题,软件设计者可以选择将服务器的业务逻辑处理和用户界面处理划分到单独计算机上的单独层上。实际上,应用程序服务器层将替换为两层,缓解了系统资源缺乏。该问题并不是要设计三层应用程序。相反,它是要在应用程序部署以后增加层数。如果原始应用程序使用数据集以 ADO 实现,则该转换很容易进行。当用两层替换单个层时,将安排这两层交换信息。由于这些层可以通过 XML 格式的数据集传输数据,所以通信相对

31、较容易。(3)可编程性Visual Studio 中的 ADO 数据组件以不同方式封装数据访问功能,加快编程速度并减少犯错几率。例如,数据命令提取生成和执行 ACCESS 语句或存储过程的任务。同样,由这些工具生成的 ADO 数据类导致类型化数据集。使可以通过已声明类型的编程访问数据。对于不连接的应用程序,ADO 数据库提供的性能优于 ADO 不连接的记录集。当使用 COM 封送在层间传输不连接的记录集时,会因将记录集内的值转换为 COM 可识别的数据类型而导致显著的处理开销。在 ADO 中,这种数据类型转换则没有必要。ADO 通过鼓励程序员节省有限资源来实现可缩放性。由于所有 ADO 应用程

32、序都使用对数据的不连接访问,因此它不会在较长持续时间内保留数据库锁或活动数据库连接。第 3 章 系统需求分析及总体设计第一节 系统功能分析本系统开发的主要任务是实现各种餐饮信息的系统化、规范化和自动化。利用层次图来表示系统中各模块之间的关系。层次图是运用树形结构的一系列多层次的矩形框描绘数据的层次结构。树形结构的顶层是一个单独的矩形框,它代表完整的主体数据结构,下面各层矩形框代表各个数据的子集,底层的各个矩形框代表组成这个数据的实际数据元素。随着数据结构的精细化,层次方框图对数据结构的描绘也越来越详细,这种层次模式非常适合于需求分析阶段的需要。从对顶层信息的分类开始,沿着图中每条路径逐步细化,

33、直到确定了数据结构的所有细节为止。本点餐管理系统,有登记、点餐、退餐、查看菜谱信息、查看客人信息、管理员密码修改等主要功能。系统建立了四个数据表,第一个表记录管理员的用户名和密码信息;第二个表记录用餐信息;第三个表记录餐桌信息,第四个表记录菜品信息。用餐信息有两种状态,即“已占”和 “空闲” 。 系统主要功能为:客户点餐、用户管理、菜谱管理、餐桌管理、修改密码、系统帮助等几个模块。如图 31 所示登录界面客户订餐用户管理菜谱管理餐桌管理修改密码系统帮助用户添加用户管理菜谱添加菜谱管理餐桌添加餐桌查询换桌管理点菜管理图 31 系统功能模块图各子界面设计:(1)用户管理界面:管理员登录后可以对用户

34、进行管理和添加。(2)菜谱管理界面:管理员登录后可添加以及编辑菜谱编号、类别、菜名、价格。(3)餐桌管理界面:管理员登录后可进行餐桌添加和查询功能;其中可按编号和名称进行快速查询;添加餐桌时可输入编号、人数、状态。(4)订单记录信息界面:管理员可查看用餐信息、菜单、价格以等,并且可以根据销售记录统计出总额。(5)修改密码界面:用于修改当前登录的管理员密码。 (6) 客户点餐页面:客户可直接选择餐桌进入点餐页面进行按菜名点餐,以及换桌,结账等操作。第二节 数据库设计数据库系统设计,是根据系统要求,对系统的数据库信息进行规划,成功的数据库设计是系统实现要求及实现完整性的关键。 数据库设计是建立数据

35、库及应用系统的技术,是信息系统开发和建设中的核心技术,具体的说,数据库设计是一个给定的应用环境,构造最优的用户的应用需求。这个问题是我们在进行软件开发时期的主要研究方向。数据库设计应该和应用系统设计相结合,也就是说,整个设计过程中要把结构设计和行为设计密切结合起来。由于信息结构复杂,应用环境多样,在相当长的一段时间内数据库设计主要采用手工试凑法。使用这种方法与设计人员的经验和水平有直接的关系,数据库设计成为一种技艺而不是工程技术,缺乏科学理论和工程方法的支持,软件的质量难以保证,常常是数据库运行一段时间后又不同程度地发现了各种问题,增加了系统维护的代价。十余年来,人们努力探索提出了各种设计准则

36、和规程,都属于规范设计法。数据分析过程同数据库的逻辑结构和物理结构密切相关,需要确定、编制、组织、筛选应用程序所使用的信息。它以一种能够分析和分类的方式来捕获用户的所有信息,这使得某一模型可以直接转化成数据库结构。我们使用一种信息建模技术,这种技术是通过实体、关系、属性三种基本对象来定义信息。实体是需要维护和使用的相关特性的集合体;属性是实体的特性或特征;关系是实体之间的联系,关系为实体记录(实例)之间的联系和交互作用方式建立了模型。要确定实体和关系的性质,用户就必须确定单个实体和他们相关的属性。为每个对象定义一个完整的与商业相关的描述以及他能够单独使用的要求,这也包括确定此实体是否使用应用程

37、序的永久需求,每种关系的基本定义使用了商业定义和与关系相连接的需求。在为实体确定相关的属性过程中,也需要此实体的主键和索引,并且要确定在每个实体中怎样组织这些属性,确定属性的数据类型和它是否为控制。在高层次的描述过程中,还可以确定所有扩展的属性信息,包括长度、格式、编辑风格、校验规则和初始值。单独实体的属性被组织起来,用户就能够开始以某一种组织方式来给实体分类。用户必须通过关系,来为实体分组的方式确定分类模式,这是抽象化的初始层,或者说是通过隐藏模糊地信息来提高对分析的理解,通过将数据分类成组,就产生了相关分组的不同类型,这样,更加易于观察和分析。 系统数据流程图:分析调查有关餐饮管理信息需求

38、的基础上得本系统所处理的数据流程,如图 3-2 所示:结算信息餐饮信息返回用餐信息选定是点餐登记是否正确基本信息输入否图 32 系统数据流程图实体图:本系统设计规划出的实体有:管理员信息实体、点餐记录信息实体、菜谱信息实体、客户信息实体。各个实体具体的描述图如下:(1) 管理员信息有用户名和密码。如图 3-3 所示:管理员用户名密码(2)点餐信息有桌号、菜名、价格和点餐时间等几个属性。如图 3-4 所示:菜名桌号点餐信息图 34 点餐记录信息实体图(2) 菜谱信息中有菜谱编号、菜名、类别、和价格 4 个属性。如图 3-5所示: 点餐时间价格登记信息管理登记订餐信息管理订餐订餐信息管理结算菜谱信

39、息管理菜名菜品编号菜品信息图 35 菜谱信息实体图(4)桌号信息有编号、大小、状态 3 个属性。如图 3-6 所示:图 36 桌号信息实体图各实体之间的关系如图 3-7 所示:桌号信息大小编号状态价格类别图 37 系统-图数据库逻辑结构设计系统设计了四个数据表即“管理员信息表” 、 “菜品表” 、 “餐桌列表”以及点餐记录表 。其各个表格的设计如下: (1)管理员表中有用户名、密码、注册时间以及系统自动编号 4 个属性,其中,用户名为主键。结构如表 3-1 所示:表 31 allusers(管理员信息表)字段名称数据类型长度可否为空是否主键字段说明id数字4否否自动编号username文本50

40、是是管理员名字pwd文本50是否密码addtime文本50是否添加时间(2)菜品表中有菜品编号、菜名、类别、价格等多个属性,其结构如表3-2 所示:表 32 allcai(菜品表)字段名称数据类型长度可否为空是否主键字段说明id数字4否否自动编号bh数字4是是菜品编号cname文本50是否菜名leibie文本50是否菜品类别price数字4是否价格(3)餐桌列表中,包含餐桌编号、餐桌大小、餐桌状态、点餐时间等基本属性,其结构如表 3-3 所示:表 33 canzhuo(餐桌列表)字段名称数据类型长度可否为空是否主键字段说明id数字4否否自动编号bianhao文本50是是餐桌编号daxiao文本

41、50是否餐桌大小zhuangtai文本50是否餐桌状态addtime文本50是否点餐时间(4)点餐记录表中,包含客户所在餐桌编号、菜名、价格、点餐时间以及是否结账等基本属性,其结构如表 3-4 所示:表 34 dcjl(点餐记录表)字段名称数据类型长度可否为空是否主键字段说明id数字4否否自动编号khbh文本50是是客户所在餐桌编号cname文本50是否菜名addtime文本50是否点餐时间isjz文本50是否是否结账price文本50是否价格第四章第四章 系统详细设计与实现系统详细设计与实现第一节 登录界面通过工具箱的控件,等控件制作界面如图 41 所示。此程序段中, “IF”语句的作用是判

42、断用户输入的用户名与密码和数据库的是否相同,如果用户名或密码输入错误,则提示相应错误信息。如图 4-1 所示:图 41 登录界面代码如下:Private Sub Command1_Click()If Trim(Text1.Text) And Trim(Text2.Text) Then /判断输入不为空mycon.Open /数据库连接Dim rs As New ADODB.Recordsetsql = select * from allusers where username= &Trim(Text1.Text) & and pwd= & Trim(Text2.Text

43、) & /查找数据库中是否有此记录rs.Opensql, mycon, 1, 1 Static nTryCount As IntegerIf rs.EOF Thenrs.CloseMsgBox对不起,无此用户或者密码不正确!请重新输入!, vbCritical, 错误Text1.SetFocus Text1.SelStart = 0 Text1.SelLength = Len(Text1)nTryCount = nTryCount + 1 /统计登录失败次数 If nTryCount= 3 Then /失败次数大于 3 次则提示错误并退出程序MsgBox对不起您无权操作本管理系统!请与

44、开发商联系和注册!, vbCritical, 授权错误Unload Me End If Elsenowuser = Trim(Text1.Text) Form1.Hide MDIForm1.Show End Ifmycon.CloseElseMsgBox请填写完整, , 系统提示End IfEnd Sub第二节 管理员主界面管理员主界面也是各个子界面的接口界面,通过主界面可以打开各个子界面。首先添加一个新的窗体,作为主界面。界面中用到“ImageList1”控件,设计成如图 42 所示。主界面设有各子界面的操作入口,包括用户管理、菜谱信息管理、点餐信息管理、餐桌管理及点餐记录等。界面简洁大方,

45、操作简约明了。如图 4-2 所示:图 42 管理员主界面第三节 客户换桌管理界面该模块是让客户可以更换自己喜欢的座位,其界面非常简单,一是显示原桌号,二是选择新桌号,界面看似简单,实现起来却较复杂,因为客户换桌后需要将其所点的菜谱信息全部更换到新桌里,这样才能保证客户信息的完整 。如图 4-3 所示:图 43 换桌管理界面主要代码如下:Private Sub 换桌_Click(Index As Integer) /显示客户换桌窗体huanzhuo.Show End SubPrivate Sub Command3_Click() /将当前桌状态置为空闲,目的桌置为已占,并将当前点菜mycon.O

46、pen 记录复制到目的餐桌上 sql = update canzhuo set zhuangtai=空闲 where bianhao= & nzh & mycon.Execute sql sql = update canzhuo set zhuangtai=已占 where bianhao= & Trim(zhuohao.Text) & mycon.Execute sql sql = update dcjl set khbh= & Trim(zhuohao.Text) & where isjz=未结 and khbh= & nzh &am

47、p; mycon.Execute sql nzh = Trim(zhuohao.Text) MsgBox 换桌成功, , 系统提示 mycon.CloseEnd Sub第四节 客户点餐界面此界面为客户选择菜谱的界面,界面很简洁。界面上方是用户名的选择,下方分为两边,左侧显示所有菜谱,右侧显示已选菜单,中间用两个方向相反的箭头,表示选择或放弃菜谱,操作简单。如图 4-4 所示:可以选择菜品的类别进行点餐:右边的一栏显示的是已选的菜:点击确定点菜按钮可以提交您所点菜的菜单:图 44 客户点菜界面主要代码如下:Private Sub Command1_Click() /命令按钮实现点菜菜单的提交If

48、 List2.ListCount = 0 Then /若已选菜单中无记录,则报错ssss = MsgBox(你还没有选择任何菜单!, vbInformation + vbOKOnly, 警告) Exit SubEnd Ifsql = select * from dcjl /查询点菜记录Dim rs As New ADODB.RecordsetDim rs2 As New ADODB.Recordsetmycon.Openrs.Opensql, mycon, 3, 3For i = o To List2.ListCount - 1rs.AddNewrs(khbh) = Trim(Label3.C

49、aption) /获取已选菜单中的信息并更新到点菜记录中去 rs(khxm) = Trim(Text1.Text)rs(cname) = Trim(List2.List(i) sql2 = select price from allcai where cname= &Trim(List2.List(i) & rs2.Open sql2, mycon, 1, 1rs(price) = rs2(price) rs2.Closers.UpdateNext issss = MsgBox(点菜成功!, vbInformation + vbOKOnly, 提示)mycon.CloseEnd

50、 SubPrivate Sub Command2_Click() /退出本窗口Unload MeEnd SubPrivate Sub Command3_Click() /将菜名列表中的菜添加到已选菜单中Dim iAs Integeri = 0Do While i List1.ListCount If List1.Selected(i) = True Then List2.AddItem List1.List(i) List1.RemoveItem i Elsei = i + 1 End IfLoopIf List1.ListCount = 0 ThenCommand3.Enabled = Fa

51、lseEnd IfIf List2.ListCount 0 ThenCommand4.Enabled = TrueEnd IfEnd SubPrivate Sub Command4_Click() /删除已选菜单中的菜名Dim iAs Integeri = 0Do While i List2.ListCount If List2.Selected(i) = True Then List1.AddItem List2.List(i) List2.RemoveItem i Elsei = i + 1 End IfLoopIf List1.ListCount 0 ThenCommand3.Enabl

52、ed = TrueEnd IfIf List2.ListCount = 0 ThenCommand4.Enabled = FalseEnd IfEnd SubPrivate Sub Form_Load() /显示菜品信息leibie.AddItem (所有)leibie.AddItem (蔬菜类)leibie.AddItem (海鲜类)leibie.AddItem (肉类)leibie.AddItem (汤类)leibie.AddItem (酒水类)leibie.AddItem (其他类)Label3.Caption = nzhmycon.OpenSet rs = New ADODB.Reco

53、rdsetsql = select * from allcai order by id desc /从数据库中提取所有菜品信息rs.Opensql, mycon, 1, 1If rs.EOF ThenElse Do While Not rs.EOF /若提取的信息不为空 List1.AddItem rs.Fields(cname) /将菜名,价格信息显示到列表框中 List3.AddItem rs.Fields(price)rs.MoveNext LoopEnd Ifrs.Closemycon.CloseEnd SubPrivate Sub leibie_Click() /每次选择新类别则清空

54、旧的列表框中录,List1.Clear 并显示新选择的类别下的菜品信息List3.Clearmycon.OpenSet rs = New ADODB.RecordsetIf Trim(leibie.Text) 所有 Then /判断类别不属于所有sql = select * from allcai where leibie= & Trim(leibie.Text) & order by id desc /按不同类别显示菜品信息Elsesql = select * from allcai order by id descEnd Ifrs.Opensql, mycon, 1, 1I

55、f rs.EOF ThenElse Do While Not rs.EOF List1.AddItem rs.Fields(cname) List3.AddItem rs.Fields(price)rs.MoveNext LoopEnd Ifrs.Closemycon.CloseEnd Sub图 4-5 是点餐记录界面,是对点餐的一个记录。可查询当前的点菜记录以及进行结账操作。如图 4-5 所示:点击下方的结账按钮可进行结账操作:图 45 订餐记录界面主要代码如下:Private Sub Command2_Click() /结账操作命令按钮If MsgBox(您确对要对以上表中的客户订餐记录进

56、行结帐操作吗?, vbYesNo, 管理系统) = vbYes Then If Len(nidstr) 0 Thennidstr = Left(nidstr, Len(nidstr) - 1)sql = update dcjl set isjz=已结 where id in ( &nidstr& ) /将点菜记录中的状态置为已结mycon.Openmycon.Execute (sql)mycon.Close End Ifmycon.Opensql = update canzhuo set zhuangtai=空闲 where bianhao= &nzh& myc

57、on.Executesql /将当前餐桌置为空闲状态mycon.CloseMsgBox 结帐成功,应付金额: &jine& 元,感谢您使用本点菜系统!, , 系统提示 Unload Me Unload Form1 Unload khdc Else End IfEnd SubPrivate Sub Command3_Click() /关闭本窗体Unload MeEnd SubPrivate Sub Form_Load() /选择出未结状态的订餐记录进行金额结算操作Call GetData(select * from dcjl where khbh= &nzh& a

58、nd isjz=未结 order by id desc)End SubFunction GetData(sql) /进行结账操作的函数过程MSFlexGrid1.Clearmycon.OpenDim rs As New ADODB.Recordsetrs.Opensql, mycon, 1, 1If rs.EOF ThenElse Dim iAs Integer With MSFlexGrid1i = 1jine = 0nidstr = .Rows = 1 Do While Not rs.EOFi = i + 1 If Trim(rs(isjz) = 未结 Thenjine = jine +

59、CLng(rs(price)nidstr = nidstr&rs(id) & , End If .Rows = i .TextMatrix(i - 1, 1) = rs(ID) .TextArray(0) = .TextMatrix(i - 1, 2) = rs(khbh) .TextMatrix(i - 1, 3) = rs(khxm) .TextMatrix(i - 1, 3) = rs(cname) .TextMatrix(i - 1, 4) = rs(price) .TextMatrix(i - 1, 5) = rs(addtime) .TextMatrix(i - 1

60、, 6) = rs(isjz) .TextArray(1) = 记录编号 .TextArray(2) = 客户桌号 .TextArray(3) = 客户姓名 .TextArray(3) = 菜名 .TextArray(4) = 价格 .TextArray(5) = 订菜时间 .TextArray(6) = 是否结帐 .ColWidth(0) = 300 .ColWidth(1) = 600 .ColWidth(2) = 1200 .ColWidth(3) = 1200 .ColWidth(3) = 1200 .ColWidth(4) = 1200 .ColWidth(5) = 1900 .ColWidth(6) = 1000rs.MoveNext Loop End Withrs.CloseEnd Ifmycon.CloseEnd Function第五节 菜品管理界面添加菜品界面。考虑到信息输入及管理的问题,将需要输入的信息设置得十分简单,仅需四个,其中“类别”一栏用下拉菜单选择菜品的种类。编

温馨提示

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

评论

0/150

提交评论