1、基于VB的自助点餐管理系统摘 要:随着本国市场经济的迅速发展和人们生活水平的不断提高,宾馆餐饮业的竞争越来越激烈。要想在竞争中取得优势,就必须在经营管理,产品服务等方面提高服务管理意识。面对餐饮经营中起决定作用的餐饮管理,面对庞大的信息量,就需要一个餐饮订餐管理系统来提高餐饮管理效率。因此,选择目前应用最广的Windows操作系统作为开发、测试和运行的平台,用Visual Basic 6.0作为软件开发工具,VB作为编程语言,ACCESS Server 2000作为数据库支持,开发一个方便上手且功能强大的餐饮订餐管理系统软件,以提高餐饮的管理水平。主要功能包括登记、订餐、退餐、结算、查看客人信
2、息、未结帐提醒等。关键词:餐饮订餐管理系统,VB,数据库设计,程序设计The Design and Realization of the Hostel Management System Based on the VBAbstract:With the rapid development of the domestic economy and the improvement of peoples life standard, the competition between hotel industry is becoming keener and keener. It is necessary
3、 to improve since of service and management on management, product, etc in order to get the advantage in the competition. Facing the room administration which plats the decisive role on the room management as well as the large information, it needs a hotel management system to improve room managemen
4、t efficiency.Therefore, the best way to improve the level of management is to explore a convenient and powerful systematic software of hotel management. That is to choose the widely used Windows operation system as a platform of exploration, test and operation, the Visual Basic 6.0 as a tool of soft
5、ware development, VB as programmer-edited language, ACCESS Server 2000 as the supporter of database. Its main function includes: registration, room reservation , settlement of refunding, room situation check, tourists information check, etc .key words:Hostel Management System, VB, database design, p
6、rogrammer design目录前 言1第一章 绪 论21.1 课题背景21.2 课题研究的目的和意义21.3 课题的主要内容2第二章 开发工具和开发环境32.1 ACCESS 简介32.3 VB简介42.4 ADO 数据访问介绍52.4.1 ADO 不依赖于连续的活动连接62.4.2 ADO 的优点8第三章 系统需求分析及总体设计103.1 系统功能分析103.2 数据库结构设计113.2.1 系统数据流程图113.2.2 实体关系图123.2.3 数据库逻辑结构设计14第四章 系统详细设计与实现154.1 登陆界面154.2 主界面174.3 客户换桌管理界面184.4 订餐界面204
7、.5 菜谱管理界面254.6 用户信息管理界面264.7 更改密码界面27第五章 系统测试285.1 系统测试的目的285.2 系统测试方法28结 论29参考文献30致 谢31前 言互联网的不断发展是推动科技发展的最直接的动力之一,而在这种趋势之下,各种管理系统也必须得跟上时代的步伐,新的需求在不断的产生,管理系统也得跟着需求发展。对于餐饮管理来说,利用先进的管理手段,提高餐饮的管理水平,已是形势所趋。过去,Visual Basic 主要用于创建有着丰富用户界面(包括按钮、列表以及下拉列表框)的应用程序。Visual Basic 的编程人员在程序设计中首次实现完全面向对象的能力。由于VB面向对
8、象的卓越设计,使它成为广大编程人员的最理想的选择之一。餐饮订餐管理系统是基于VB编程语言在Microsoft的Visual Basic平台下开发的,运用了ACCESS Server 2000数据库。强大的数据库支持,能完成大量的数据处理,使得系统更加稳定安全。第一章 绪 论1.1 课题背景随着经济的迅速发展和人们生活水平的不断提高,宾馆餐饮业的竞争越来越激烈。要想在竞争中取得优势,就必须在经营管理,产品服务等方面提高服务管理意识。面对餐饮的经营起决定作用的是餐饮的管理。如何利用先进的管理手段,提高餐饮的管理水平,是每一个餐饮管理者所面临的重要课题。简单的服务标准已经不是制胜的法宝,只有管理做到
9、最细微之处,才能让顾客体会到餐饮服务的高标准,高质量,而准确,快捷,周全往往就是最基本的成功要素。面对信息时代的挑战,利用科技手段提高企业管理无疑是一条行之有效的途径。因此采用电脑管理业务,财务等诸多环节已成为宾馆餐饮业快速发展的先决条件。世界经济已从工业化社会进入信息化社会,西方发达国家已经进入相当发达的信息化阶段,而本国的信息产业目前尚处于起步阶段。信息高速公路和经济信息化,无疑将对人类社会的经济发展带来根本性的变化,对社会各行各业的生产、工作和管理方式带来深刻的变化, 对包括餐饮在内的许多机构无疑是一个严峻的挑战。1.2 课题研究的目的和意义国内餐饮业的应用系统不同,对于一家餐饮,如果各
10、部门使用的是不同的平台、不同的软件,员工操作时还需要重新学习各种软件,这样不但花费了大量时间,也同时影响餐饮的效率。这样就需要一个容易上手并且实用的一个管理软件,可以让员工能够在极短时间内掌握,减少成本,增加收益。因此,制作一个餐饮订餐管理系统来解决这些问题已是势在必行。针对餐饮的具体业务,主要是餐饮管理,为用户提供迅速高效的服务,减免手工处理烦琐以及误差,并及时准确的反映餐饮的工作状况,从而提高餐饮管理的服务质量,使餐饮获得更好的经济效益。1.3 课题的主要内容本餐饮订餐管理系统数据库选择的是ACCESS,开发环境是Microsoft的Visual Basic,编程语言VB。基本思想是把开发
11、过程分成:项目计划、需求分析、详细设计、代码实现、系统测试以及系统维护等进行完成。餐饮订餐管理系统的开发设计,包括数据库结构设计及程序设计。该系统具有登记、订餐、退餐、结算、查看客人信息等基本功能,能够用于一般的中小型餐饮餐饮管理。要求具备对某一领域熟悉的情况下去寻找相关资料并通过自学逐步掌握该门知识的能力。第二章 开发工具和开发环境2.1 ACCESS 简介Microsoft Access软件与其他数据库应用程序(例如FoxPro,Oracle和dBase等)一样,从本质上说,都是一种数据库管理系统(DBMS),更为具体点,它是一种关系数据库管理系统(RDBMS), Access主要用于中小
12、型数据库应用系统。而Oracle和Sybase主要用于大型数据库应用系统。作为一个模拟系统,数据量并不大,所以就采用了小型数据库Access。它适用于小型商务活动,用以存贮和管理商务活动所需要的数据。Access具有一个数据库管理系统所应具备的功能,允许用户构造应用程序来归档和存储数据,并使数据能够很容易地采用多种方式进行筛选、分类和查询数据。Access本身是一个很好的应用程序开发环境,它有和VB类似的界面设计方法,一样易学易用。在面向数据库的应用程序开发方面比起VB的开发效率更高,功能更强。它提供了很多对象(表,窗体,查询,报表)的设计向导,使得有VB基础的非常容易使用。Access拥有的
13、子窗体、子报表控件,它在设计主细表结构的界面和报表方面给程序员带来巨大的方便。Access软件所能完成的功能基本上是一个数据库管理系统所就具有的功能:1 可以根据需要定制Access数据库系统,对数据进行保存、查阅和计算。2 利用表存储相应的数据信息,为每一种实际对象的信息创建一个表,在表中对不同数据以不同的方式进行保存。3 可以按照实际中对象之间的关系,定义各个表之间的关系,将各个表中相关的数据有机地联系在一起。4 可以检索用户指定条件的数据,创建相应的查询来进行检索,也可以利用查询来更新或删除多条记录,并对表中的数据执行各种计算。5 可以直接输入、查看或更改数据库中的数据,利用表格或创建一
14、定的窗体来完成上述功能。6 可以对数据库中的数据进行分析,或者通过特定的方式将数据打印出来,绘制一份相应要求的报表。7 可以将数据库中的数据传输到其他数据库的服务器上,实现资源共享,通过Web页功能来制作数据访问页。Access特点:在Access中,数据库是由若干个数据表格组成的,在表格中具有主关键字和外部关键字定义,并且在数据库中提供了完全的引用完整性,从而避免了数据库中不合理的数据更新和删除。同时,Access的表格具有数据确认规则,以避免非精确数据在输入时被忽略,并且对于大多数软件的数据输入。表格的每一个字段都具有自己的格式和缺省的定义。Microsoft Access支持文本、数字、
15、货币、日期、备注、是/否以及OLE对象等字段类型。当进行特殊处理而缺少数值时,Access还提供完全支持空值的特性。由上面列出的内容来看,Microsoft Access能够完全满足对一个现代数据库就用的需要,不但可以对数据基本操作可以完成,同时还能够完成更高级的操作功能。IIS(Internet Information Sever):微软Internet 信息服务器是一种Web服务器,安装在NT服务器上,支持网页信息发布和ASP编写的多种商业应用程序。2.3 VB简介Visual Basic 6.0,是微软公司推出的可视化编程工具MSDN之一, 是目前世界上使用最广泛的程序开发工具。它的快捷
16、的开发速度, 简单易学的语法, 体贴便利的开发环境,不愧为一款优秀的编程工具, 是初学者的首选。另外VB提供的是可视化的开发环境,我们可以象搭积木一样构建出程序的界面,而且VB提供了丰富的控件组,省去了我们自己写代码实现这些效果的麻烦,这样我们就能把更多的精力放在程序功能的实现上,所以用起来方便。在VB中,应用面向对象的程序设计方法(OOP),把程序和数据封装起来视为一个对象,每个对象都是可视的。VB功能特点如下:1具有面向对象的可视化设计工具 在VB中,应用面向对象的程序设计方法(OOP),把程序和数据封装起来视为一个对象,每个对象都是可视的。程序员在设计时只需用现有工具根据界面设计要求,直
17、接在屏幕上“画”出窗口、菜单、按钮、滚动条等不同类型的对象,并为每个对象设置属性。程序员的编程工作仅限于编写相关对象要完成的功能程序,因而程序设计的效率可大大提高。 2事件驱动的编程机制 事件驱动是非常适合图形用户界面的编程方式。在图形用户界面的应用程序中,是由用户的动作即事件掌握着程序运行的流向,每个事件都能驱动一段程序的运行。程序员只要编写响应用户动作的代码,而各个动作之间不一定有联系。 3提供了易学易用的应用程序集成开发环境 在VB集成开发环境中,用户可设计界面、编写代码、调试程序,直至把应用程序编译成可执行文件在Windows中运行,使用户在友好的开发环境中工作。 4结构化的程序设计语
18、言 VB具有丰富的数据类型和结构化程序结构,作为一种程序设计语言,它还有如下一些特点: (1)强大的数值和字符串处理功能 (2)丰富的图形指令,可方便地绘制各种图形 (3)提供静态和动态数组,有利于简化内存的管理 (4)过程可递归调用,使程序更为简练 (5)支持随机文件和顺序文件的访问 (6)提供了一个可供应用程序调用的包含多种类型的图标库 (7)具有完善的运行出错处理 5支持多种数据库系统的访问 利用数据控件可访问的数据库系统有:Microsoft Access、Btrieve、DBASE、Microsfot FoxPro和Paradox等,也可以访问Microsoft Excel、Lotu
19、s1-2-3等多种电子表格。 6支持动态数据交换(DDE)、动态链接库(DLL)和对象的链接与嵌入(OLE)技术 7完备的HELP联机帮助功能 VB程序设计的概念就是面向对象的概念,对象就是数据(DATA)和代码(CODE)互相结合的综合体。Windows上面的每一个图标,包括窗口本身都是对象,如果没有任何事情发生,对象处于停顿状态。当存在外来事件时,程序段执行,它的执行是由外来事件决定的。因此是“事件”驱动的。与Windows环境下的软件一样,在VB中,利用帮助菜单和F1功能键,用户可以随时方便地得到所需要的帮助信息。VB帮助窗口中显示了有关的示例代码,通过复制、粘贴操作可获取大量的示例代码
20、,为用户的学习和使用提供了极大的方便。 2.4 ADO 数据访问介绍使用 ADO 开发应用程序时,将有操作数据的各种要求。在某些情况下,可能只是想在窗体上显示数据。在其他情况下,则可能需要设计一种方式来与另一个公司共享信息。无论对数据进行怎样的操作,了解 ADO 中的数据结构、主数据组件概念和组件组合方式是很有用的。2.4.1 ADO 不依赖于连续的活动连接在传统的客户端/服务器应用程序中,组件将建立与数据库的连接,并在应用程序运行过程中使连接保持打开状态。出于各种原因,该方法在许多应用程序中是不实用的: 打开的数据库连接占用宝贵的系统资源。在大多数情况下,数据库只可以维持少量的并发连接。维持
21、这些连接的系统开销将降低应用程序的总体性能。 类似地,需要打开的数据库连接的应用程序极难按比例扩展。对于没有很好地按比例扩展的应用程序而言,也许几个用户使用它时执行效果是可以接受的,但如果有数百个用户使用它时其效果也许就不能被接受了。ASP.NET Web 应用程序尤其需要能够很轻松地进行扩展,因为 Web 站点的通信量可能会在非常短的时间内突增几个数量级。 在 ASP.NET Web 应用程序中,组件彼此之间本来就是不连接的。浏览器从服务器请求一页;在服务器完成处理并发送该页后,服务器即不再与浏览器有任何连接,直到下一次请求为止。在这些情况下,维持打开的数据库连接是不可行的,因为没有办法知道
22、数据使用者(客户端)是否需要进一步的数据访问。 基于始终连接数据的模型可能使得使用连接结构在应用程序和组织边界之间交换数据变得困难且不实际。如果两个组件需要共享相同的数据,则二者均必须连接,或者必须为这两个组件设计一种方式以相互传递数据。 出于所有这些原因,使用 ADO 进行数据访问是以有节制使用连接的结构为中心进行设计的。应用程序连接到数据库的时间仅足够获取或更新数据。因为数据库并未被大部分时间空闲的连接占用,所以它可以为更多用户提供服务。使用数据命令执行数据库交互若要在数据库中执行操作,应执行 ACCESS 语句或存储过程(它包括 ACCESS 语句)。使用 ACCESS 语句或存储过程读
23、写行并执行聚合函数,例如添加或求平均值。使用 ACCESS 语句或存储过程创建或修改表或列、执行事务等。在 ADO 中,使用数据命令打包 ACCESS 语句或存储过程。例如,想要从数据库读取一组行,则创建一个数据命令并用 ACCESS Select 语句的文本或获取记录的存储过程的名称配置它。如果要获取这些行,则执行以下操作: 1.打开一个连接。 2.按以下顺序调用命令的执行方法: a.执行该命令引用的 ACCESS 语句或存储过程。 b.然后关闭连接。 连接保持打开的时间仅足够执行语句或存储过程。 在调用命令的执行方法后,它将返回一个值。更新数据库的命令返回所影响的行数;其他类型的命令返回一
24、个错误代码。如果该命令使用 SELECT 语句查询数据库,则它返回一组行。安全说明 当使用 CommandType 属性设置为 Text 的数据命令时,请对从客户端发送过来的信息进行仔细检查,然后再将它传递给数据库。恶意用户可能会试图发送(插入)修改过的或其他 ACCESS 语句,以获得未经授权的访问或破坏数据库。在将用户输入内容传输到数据库之前,应始终确认这些信息是有效的;如果可能的话,始终使用参数化查询或存储过程,这是最佳措施。如果要执行多个操作(例如,读取一些行,然后更新它们),则可以使用多个数据命令,每个操作一个命令。每一操作分别执行。例如,要读取多行,应打开连接,读取这些行,然后关闭
25、该连接。如果要更新数据,再次打开连接,执行更新,然后再次关闭该连接。数据命令可以包括多个参数(具体而言,参数对象的集合),使用这些参数创建类似以下形式的参数化查询:Select * From customers Where (customer_id = customerid)然后在运行时设置这些参数并执行命令以返回或更新所需数据。数据可被缓存到数据集中。最常见数据任务是从数据库检索数据并对数据进行某些操作:显示数据、处理数据或将数据发送给另一个组件。经常地,应用程序需要处理不止一条记录,而是一组记录:例如客户列表或今天的订单。通常应用程序所需的该组记录来自多个表:我的客户及其所有订单;所有名为
26、Smith的作者及他们写的书;以及其他类似的相关记录组。获取了这些记录后,应用程序通常将它们成组使用。例如,应用程序可以允许用户浏览名为Smith的所有作者,检查一个 Smith 的书,然后检查下一个 Smith 的书,等等。在许多情况下,每次应用程序需要处理下一条记录时都返回到数据库是不切实际的。(这样做可能会失去将打开连接的需求降至最低所带来的许多好处。)因此解决方案就是临时存储从数据库检索的记录,然后使用该临时集。这便是数据集的概念。数据集是从数据源检索的记录的缓存。它的工作方式如同虚拟的数据存储区:数据集包含一个或多个表(这些表基于实际数据库中的表),并且它可以包含有关这些表之间的关系
27、和对表可包含数据的约束的信息。数据集内的数据通常是数据库中内容的非常精简的版本。但是,可以用与操作实际数据十分类似的方式操作数据集。这样操作时,将保持与数据库的不连接状态,使数据库可以自由执行其他任务。如果经常需要更新数据库中的数据(尽管不会像从数据库检索数据那么频繁)。可以在数据集上执行更新操作,并且这些更新可以直接写到基础数据库。数据集是数据的被动容器这一点很重要。若要实际从数据库获取数据和(可选)将数据写回数据库,请使用数据适配器。数据适配器包含一个或多个数据命令,这些命令用于填充数据集中的单个表并更新数据库中的相应表。(数据适配器通常包含四条命令,分别用于选择、插入、更新和删除数据库中
28、的行。)因此,每当调用数据适配器的 Fill 方法时,它都可能执行 SELECT au_id, au_lname, au_fname FROM authors 之类的 ACCESS 语句。因为数据集实际上是数据库数据的私有副本,所以它不一定反映数据库的当前状态。如果想要查看其他用户进行的最新更改,可以通过调用适当的 Fill 方法刷新数据集。使用数据集的一个便利之处是组件可以根据需要交换数据集。例如,中层的某个业务对象可以创建和填充一个数据集,然后将它发送给应用程序中其他位置处的另一个组件以供处理。该功能意味着组件不必分别查询数据库。数据集独立于数据源尽管数据集是作为从数据库获取的数据的缓存,
29、但数据集与数据库之间没有任何实际关系。数据集是容器;它由从数据适配器执行的 ACCESS 命令或存储过程填充。由于数据集不直接绑定到数据源,所以它是来自多个源的数据的好的集成点。例如,数据集内的某些数据可能来自数据库,而它的其他部分可能来自另一个数据库或电子表格之类的非数据库源。数据集内的某些数据可能来自另一个组件所发送的流。一旦数据在数据集内,则不管它的原始源是什么,都可以使用一致的对象模型对它进行操作。数据保持为 XML数据需要从数据存储区移动到数据集以及从数据集移动到各种组件。在 ADO 中,传输数据的格式是 XML。类似地,如果需要保持数据(例如保持到文件中),则将其存储为 XML。如
30、果有 XML 文件,则可以像使用任何数据源一样使用它,并从它创建数据集。实际上,在 ADO 中,XML 是数据的基本格式。ADO 数据 API 自动用数据集内的信息创建 XML 文件或流,并将它们发送给另一个组件。第二个组件可以调用类似的 API 将 XML 读回数据集。2.4.2 ADO 的优点与 ADO 的早期版本和其他数据访问组件相比,ADO 提供了若干好处。这些好处分成以下几个类别:互操作性ADO 应用程序可以利用 XML 的灵活性和广泛接受性。由于 XML 是用于在网络中传输数据集的格式,因此可以读取 XML 格式的任何组件都可以处理数据。实际上,接收组件根本不必是 ADO 组件:传
31、输组件可以只是将数据集传输给其目标,而不考虑接收组件的实现方式。目标组件可以是 Visual Studio 应用程序或无论用什么工具实现的其他任何应用程序。唯一的要求是接收组件能够读取 XML。作为一项工业标准,XML 正是在谨记这种互操作性的情况下设计的。可维护性在已部署系统的生存期中,适度的更改是可能的,实质的结构更改十分困难。因为在事件的自然过程中,这种实质上的更改会变得很有必要。例如,当已部署的应用程序越来越受用户欢迎时,增加的性能负荷可能需要进行结构更改。随着已部署的应用程序服务器上的性能负荷的增长,系统资源会变得不足,并且响应时间或吞吐量会受到影响。面对该问题,软件设计者可以选择将
32、服务器的业务逻辑处理和用户界面处理划分到单独计算机上的单独层上。实际上,应用程序服务器层将替换为两层,缓解了系统资源缺乏。该问题并不是要设计三层应用程序。相反,它是要在应用程序部署以后增加层数。如果原始应用程序使用数据集以 ADO 实现,则该转换很容易进行。当用两层替换单个层时,将安排这两层交换信息。由于这些层可以通过 XML 格式的数据集传输数据,所以通信相对较容易。可编程性Visual Studio 中的 ADO 数据组件以不同方式封装数据访问功能,加快编程速度并减少犯错几率。例如,数据命令提取生成和执行 ACCESS 语句或存储过程的任务。同样,由这些工具生成的 ADO 数据类导致类型化
33、数据集。使可以通过已声明类型的编程访问数据。性能对于不连接的应用程序,ADO 数据库提供的性能优于 ADO 不连接的记录集。当使用 COM 封送在层间传输不连接的记录集时,会因将记录集内的值转换为 COM 可识别的数据类型而导致显著的处理开销。在 ADO 中,这种数据类型转换则没有必要。可伸缩性因为 Web 可以极大增加对数据的需求,所以可缩放性变得很关键。Internet 应用程序具有无限的潜在用户供应。尽管应用程序可以很好地为十几个用户服务,但它可能不能向成百上千个(或几百万个)用户提供同样好的服务。使用数据库锁和数据库连接之类资源的应用程序不能很好地为大量用户服务,因为用户对这些有限资源
34、的需求最终将超出其供应。ADO 通过鼓励程序员节省有限资源来实现可缩放性。由于所有 ADO 应用程序都使用对数据的不连接访问,因此它不会在较长持续时间内保留数据库锁或活动数据库连接。第三章 系统需求分析及总体设计3.1 系统功能分析系统开发的总体任务是实现餐饮餐饮各种信息的系统化、规范化和自动化。主要完成功能: 本餐饮订餐管理系统,有登记、订餐、退餐、查看菜谱信息、查看客人信息、管理员密码修改等主要功能。系统建立了三个数据表,第一个表记录管理员的用户名和密码信息;第二个表记录用餐信息;第三个表记录客人信息。用餐信息有三种状态,即“营业中”、“预定”、和“空闲”,客人信息也有三种状态,即“登记”
35、、“订餐”、“退餐”。这些状态可以对用餐的情况和客人的情况进行统计。 程序主要结构如图31所示:登录界面客户订餐用户管理菜谱管理餐桌管理修改密码系统帮助用户添加用户管理菜谱添加菜谱管理餐桌添加餐桌查询换桌管理点菜管理图31程序主要结构图各子界面设计: 用户管理界面:可以对用户进行管理和添加。 菜谱管理界面:可输入菜谱编号、类别、菜名、价格。 餐桌管理界面:餐桌添加和查询功能;其中可按编号和名称进行快速查询;添加餐桌时可输入编号、人数、状态。 订单记录信息界面:可查看用餐信息、菜单、价格以等,并且可以根据销售记录统计出总额。修改密码界面:用于修改管理员密码。3.2 数据库结构设计3.2.1 系统
36、数据流程图用餐登记基本信息输入订餐登记顾客信息返回用餐信息选定择结算信息餐饮信息返回基本信息输入分析调查有关餐饮管理信息需求的基础上得本系统所处理的数据流程:图32 餐饮订餐管理信息系统数据流程图3.2.2 实体关系图本系统设计规划出的实体有:管理员信息实体、订餐记录信息实体、菜谱信息实体、客户信息实体。各个实体具体的描述-图如下:管理员信息实体用户名密 码图33 管理员信息实体-图点餐信息实体菜名价格桌号菜谱图34 订餐记录信息实体-图菜谱信息实体菜谱编号菜名价格类别图35 菜谱信息实体-图桌号信息实体编号信息大小状态图36桌号信息实体-图登记信息管理登记订餐信息管理订 餐订餐信息管理结算菜
37、谱信息管理图37 实体之间关系-图3.2.3 数据库逻辑结构设计系统设计了三个数据表即“管理员” 、“用餐表” 、“顾客信息表” 。其各个表格的设计如下: 表31 管理员列名数据类型可否为空说明用户名VarcharNOT NULL主键密码VarcharNULL注册时间TimeNULL表32 订餐表列名数据类型可否为空说明客户编号VarcharNOT NULL主键客户姓名VarcharNULL菜名VarcharNULL订餐时间DatetimeNULL是否结账CharNULL价格FloatNULL表33 顾客信息表列名数据类型可否为空说明系统编号CharNOT NULL主键用户名VarcharNO
38、T NULL密码CharNULL真空姓名CharNULL性别CharNULL证件类型CharNULL证件号VarcharNULL电话FloatNULL地址FloatNULL第四章 系统详细设计与实现4.1 登陆界面图41通过工具箱的控件, 控件制作界面如图41所示。此程序段中,“IF”语句的作用是判断用户输入的用户名与密码和数据库的是否相同,如果用户名或密码输入错误,则提示相应错误信息。4.2 主界面图43主界面也是各个子界面的接口界面,通过主界面可以打开各个子界面。首先添加一个新的窗体,作为主界面。界面中用到“ImageList1”控件,设计成如图43所示。主界面设有各子界面的操作入口,包括
39、用户管理、菜谱信息管理、订餐信息管理、餐桌管理及订餐记录等。界面清爽大方,操作简约明了。4.3 客户换桌管理界面图44该模块主要是让客户可以更换自己喜欢的桌位,其界面非常简单,一是显示原桌号,二是选择新桌号,界面看似简单,实现起来比较麻烦,因为客户换桌后还要将其所点的菜谱信息全部更换到新桌里,这样才能保证不出错。实现本模块功能的主要代码如下:Private Sub Command3_Click()mycon.Open ACCESS = update canzhuo set zhuangtai=空闲 where bianhao= & nzh & mycon.Execute ACCESS ACCE
40、SS = update canzhuo set zhuangtai=已占 where bianhao= & Trim(zhuohao.Text) & mycon.Execute ACCESS ACCESS = update dcjl set khbh= & Trim(zhuohao.Text) & where isjz=未结 and khbh= & nzh & mycon.Execute ACCESS nzh = Trim(zhuohao.Text) MsgBox 换桌成功, , 系统提示 mycon.CloseEnd SubPrivate Sub Form_Load()Set rs = Ne
41、w ADODB.RecordsetLabel2.Caption = nzhACCESS = select bianhao from canzhuo where zhuangtai=空闲 order by id descmycon.Openrs.Open ACCESS, mycon, 1, 1If rs.EOF ThenElse Do While Not rs.EOF zhuohao.AddItem (rs(bianhao) rs.MoveNext LoopEnd Ifrs.Closemycon.CloseEnd Sub4.4 订餐界面图46此界面为客户选择菜谱的界面,界面很简洁。界面上方是用户
42、名的选择,下方分为两边,左侧显示所有菜谱,右侧显示已选菜单,中间用两个方向相反的箭头,表示选择或放弃菜谱,操作简单。实现本模块功能的主要代码如下: Private Sub Combo1_Click()mycon.Open ACCESS = select * from allkehu where username= & Trim(Combo1.Text) & Dim rs As New ADODB.Recordset rs.Open ACCESS, mycon, 1, 1 If rs.EOF Then Else Text1.Text = rs(realname) End If rs.Close
43、mycon.CloseEnd SubPrivate Sub Command1_Click()If List2.ListCount = 0 Then ssss = MsgBox(你还没有选择任何菜单!, vbInformation + vbOKOnly, 警告) Exit SubEnd IfACCESS = select * from dcjlDim rs As New ADODB.RecordsetDim rs2 As New ADODB.Recordsetmycon.Openrs.Open ACCESS, mycon, 3, 3For i = o To List2.ListCount - 1
44、 rs.AddNew rs(khbh) = Trim(Combo1.Text) rs(khxm) = Trim(Text1.Text) rs(cname) = Trim(List2.List(i) ACCESS2 = select price from allcai where cname= & Trim(List2.List(i) & rs2.Open ACCESS2, mycon, 1, 1 rs(price) = rs2(price) rs2.Close rs.UpdateNext issss = MsgBox(点菜成功!, vbInformation + vbOKOnly, 提示)my
45、con.CloseEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Command3_Click()Dim i As Integeri = 0Do While i List1.ListCount If List1.Selected(i) = True Then List2.AddItem List1.List(i) List1.RemoveItem i Else i = i + 1 End IfLoopIf List1.ListCount = 0 ThenCommand3.Enabled = FalseEnd IfIf List2.ListCount 0 ThenCommand4.Enabled = TrueEnd IfEnd SubPrivate Sub Command4_Click()Dim i As Integeri = 0