1、无线点餐系统正文结论参考文献1 绪 论1.1 研究的背景及意义民以食为天。餐饮业是一种个性化、多样化的服务产业,餐饮传统的点菜方式是纯人工操作,由服务员记录顾客点的菜,在具体工作中容易出现以下问题:手写单据字迹潦草从而导致上错菜、传菜分单出错现象严重、加菜和查账程序较繁琐。处理特殊口味有遗漏和偏差、客人催菜遗忘现象较频繁、计算账单易出错、不方便人员管理等等。电子商务则是最能凸显个性化、多样化服务的商务方式。随着网络技术的发展和普及,方便、快捷、个性化的网上订餐正在进入人们的生活。正因如此,无线点餐模式应运而生。它不仅可以有效地提高餐饮业的工作效率,更可以规范服务体系,提高整体服务质量和管理水平
2、,并为规模化经营提供了坚实的技术基础。服务员使用手持终端为顾客点餐,当消费者点完餐后,服务员将存储在手持终端内的点餐信息,点餐信息同时也能被前台看到,方便快捷。1.2 本文主要内容本文介绍了无线点餐系统的开发过程。论文详尽论述了从需求分析、系统分析、概要设计、详细设计以及测试与调试的整个开发过程。首先系统地研究了无线点餐系统的背景和意义,分析了当今点餐系统的特点和共性,从而得出设计本系统的思路和方法。接着介绍了实现系统开发的Android平台环境,数据库用MySQL实现。同时简要介绍了以上工具的功能和方法。概要设计分成后台数据库管理操作设计和客户端操作设计,同时介绍了数据库的建立和维护。详细设
3、计主要阐述了点菜管理、并台管理、查台管理,转台管理,注销等实现,并给出了系统的部分设计代码。2 相关技术和开发环境2.1 系统架构无线点餐系统主要用到采用模型-视图-控制器MVC架构的设计模式。MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。视图是用户看到并与之交互的界面。MVC一个大的好处是它能为你的应用程
4、序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。 模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用像EJBs和ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。 控制器接收用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器
5、本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。 总的来说MVC的处理过程,就是首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。2.2 关键技术2.2.1 JDBCJDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人
6、员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,同时,JDBC也是个商标名。 有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。 Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提
7、供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。2.2.2 JqueryJquery是继prototype之后又一个优秀的Javascrpt框架,由美国人John Resig创建。它是轻量级的js库(压缩后只有21k) ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+,Safari 2.0+,Opera 9.0+)。Jquery使用户
8、能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供Ajax交互。Jquery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。Jquery能够使用户的HTML页保持代码和HTML内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。2.2.3 Ajax Ajax指异步JavaScript及XML(Asynchronous JavaScript And XML),是一种用于创建更好更快以及交互性更强的Web应用程序的技术。Ajax的核心是JavaScript对象XmlHttp
9、Request。Ajax在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求)。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。通过Ajax,您的JavaScript可使用 JavaScript的XMLHttpRequest对象来直接与服务器进行通信。通过这个对象,您的 JavaScript可在不重载页面的情况与Web服务器交换数据,这样就可使网页从服务器请求少量的信息。 Web应用程序较桌面应用程序有诸多优势;它们能够涉及广大的用户,它们更易安装及维护,也更易开发。2.3 开发环境及平台2.3.1 EclipseEcl
10、ipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(Java Development Tools,JDT)。Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C+和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。1
11、.Eclipse的主要构成 Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成Eclipse Platform、JDT、CDT和PDE.JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一
12、个工具功能在哪里结束,而另一个工具功能在哪里开始。 Eclipse SDK(软件开发者包)是Eclipse Platform、JDT和PDE所生产的组件合并,它们可以一次下载。这些部分在一起提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到Eclipse Platform中的工具。Eclipse SDK由Eclipse项目生产的工具和来自其它开放源代码的第三方软件组合而成。Eclipse项目生产的软件以 GPL发布,第三方组件有各自自身的许可协议。2.Eclipse Android环境搭建1)JDK安装a)我的电脑-属性-高级-环境变量-系统变量中添加以下环境变量: JAVA
13、_HOME值为:安装JDK的目录;CLASSPATH值为:D:AndroidDeveloperandroid-sdk-windowstools; b)Path:在开始追加%JAVA_HOME%bin; c)NOTE:前面四步设置环境变量对搭建Android开发环境不是必须的,可以跳过。 安装完成之后,可以在检查JDK是否安装成功。打开cmd窗口,输入Java version查看JDK的版本信息。2)Eclipse安装在http:/www.eclipse.org/downloads/,下载Eclipse IDE for Java Developers(92M)的win 32bit版,Androi
14、d SDK安装在Android Developers下载android-sdk_r05-windows.zip,下载完成后解压到任意路径。a)运行SDK Setup.exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的“Force https:/.” 这项,再点击Available Packages。b)选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Accept All、Install Accepted,开始下载安装所选包。c)在用户变量中新建PATH值为:Android SDK中的tool
15、s绝对路径(本机为D:AndroidDevelopandroid-sdk-windowstools)。2.3.2MyEclipseMyEclipse,是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了
16、完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。在对于毕业课题的设计中,Android终端设备客户端是采用Eclipse开发工具开发的;而Web版本是采用MyEclipse开发工具开发的。2.3.3 Tomcat服务器Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。 Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是
17、很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行Tomcat 时,它实际上作为一个与Apache独立的进程单独运行的。 当配置正确时,Apache为HTML页面服务,而Tomcat实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默
18、认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。2.3.4 应用平台AndroidAndroid是基于Linux内核的操作系统,早期由Google开发,后由开放手机联盟开发。它采用了软件堆的架构,主要分为三部分。底层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。Android在未公开之前常被传闻为GPhone。它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分:底层以Linux核心为基础,由c语言开发
19、,只提供基本功能。中间层包括函数库Library和虚拟机Virtual Machine,由C+开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java编写。Android平台五大优势特色:1)开放性在优势方面,Android平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。 开放性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此
20、一来,消费者将可以用更低的价位购得心仪的手机。 2)挣脱运营商的束缚在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从iPhone上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。 3)丰富的硬件选择这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。好比你从诺基亚Symbian风格手机一下改
21、用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。 4)不受任何限制的开发商Android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻挠,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android难题之一。 5)无缝结合的Google应用如今叱咤互联网的Google已经走过10年历史。从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服
22、务。3 订餐系统分析与设计3.1需求分析3.1.1 系统目标和要求首先,我们得确定使用这个系统的用户应该有顾客、服务员、收银员。顾客和服务员应该是系统数据的起点,由他们做出相应的操作,然后系统进行处理;收银员则为系统数据的终点。该系统在性能功能上应达到如下要求:1.操作简单、界面友好:完全控件式的页面布局,使得菜品,资讯,座位等信息的录入工作更简便,许多选项包括餐厅信息,桌位,包房信息等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。对常见的类似网站的管理的各个方面:基本信息录入、浏览、删除、修改、搜索等方面都大体实现,顾客对菜品的预定及支付方式;2.即时可见
23、:对客户预定餐饮信息的处理(包括录入、删除)将立即在另一应用端及服务器的对应栏目显示出来,达到“即时点击、即时见效”的功能;3.系统运行应该快速、稳定、高效和可靠;4.在结构上应具有很好的可扩展性,便于将来的功能扩展和维护。3.1.2 可行性分析随着经济的快速发展,B2C电子商务越来越受到人们的关注。无线订餐系统,已经如雨后春笋般的出现在了许多城市的大酒店中。特别在大型餐饮集团使用已经成为了趋势。同时,随着全国人民的精神、物质和文化生活高度的提高,人们已经不在仅仅停留在吃饱的程度,不但要吃饱,还要吃好,而且对酒店服务也越来越挑刺,正因为如此无线订餐系统的出现,正好满足了大众的需要,不仅让宾客享
24、受到精美可口的美食,更让他们感受到服务管理的贴心与完善。无线订餐业务在中国有着极大的发展空间以及良好的背景。随着酒店管理的完善,使用这种智能的无线点餐系统必然成为追究卓越的餐饮公司的最爱,也更能够体现信息技术发展之猛烈。此次毕业设计基于Android平台开发无线订餐系统。Android平台给我们提供了巨大的自由空间,再运用Java面向对象语言,是系统功能更加强大。MySQL 是一个杰出的数据库平台,具有功能强大,安全可靠等特点,可用于中小型联机事务处理、数据仓库及电子商务等。3.2 订餐系统概要设计系统的概要设计主要对系统的总体功能如何设计,如何划分模块,系统的数据库如何设计进行研究。它为系统
25、的详细设计做铺垫。在系统的设计过程中起着非常重要的作用。3.2.1 模块的划分本系统主要分两部分:1.Web点餐系统与后台Web系统主要是给客户点菜;客户只能点菜、拿号。2.终端设备与后台终端设备指的是基于安卓平台的一个设备。主要给服务员、收银员等工作人员使用;能更新菜谱,结账,点菜、查看等功能。3.2.2 功能模块的设计1.Web点餐系统1)登录若没有用户账号,提供注册2)查看菜单3)查看菜单详情4)加入购物车(点菜)5)下单(提交预定菜单)6)拿号图3-1功能描述图2.终端设备终端系统主要有以下几个模块构成:结台管理、更新管理等功能。1)点菜包括开桌、点菜、下单三个功能2)并台两桌拼接3)
26、结台在顾客就餐完毕后,计费付帐而设定的功能,是客人能够一目了然,不用担心有什么算错的问题。4)查台查看座位情况,哪些是有人,哪些是空位 图3-2功能描述图3.3 数据库设计3.3.1 数据库需求分析无线点餐系统以酒店服务信息为主体,因此在这个系统中必须要有一个保存菜单信息的表。所以用编号做主键。负责登录终端系统的服务人员应该有保存服务人员信息的表,这个表中也是包括一些基本信息。并且以服务人员的编号作为主键。在一个点餐系统中,不可避免的要有桌位的编号。这样的话就必须有一个桌号表,该表保存桌位信息。顾客可以按照自己的喜好,在酒店布置的桌号中选择自己喜欢的位置。另外既然是酒店就必须要有一个订单表,该
27、表中包括订单号,点餐时间,用户ID,桌号,人数,是否结账等基本信息。这样也就还需要一个订单详细表用于存储顾客所点的菜品信息等等。3.3.2 数据库E-R图设计数据库的概念设计,即利用数据模型进行概念数据库的模式设计。根据无线点餐系统的需求,设计出以下的实体-关系模型(E-R)图如图。 图3-3 实体联系图图3-4 实体联系图3.3.3 数据表设计数据库的逻辑设计,即把概念设计得到的概念数据库模式变为逻辑数据模式,它依赖于DBMS。根据无线点餐系统的需求分析及数据库的概念设计,建立数据库了wireless_db。建库语句:create database wireless_db;设计表结构,如下图
28、所示: 表3.1 用户信息表(usertbl)列名数据类型是否允许为空说明idint(11)否序号(主键)namevarchar(50)是用户名passwordvarchar(50)是密码accountvarchar(50)是登录名gendervarchar(20)是性别permissionint(11)是权限(客户2,用户1)remarkvarchar(2000)是备注表3.2 菜单信息表(menutbl)列名数据类型是否允许为空说明idint(11)否序号(主键)priceint(11)是价格typeIdint(11)是类型namevarchar(50)是菜名picvarchar(1000
29、)是图片remarkvarchar(2000)是备注表3.3 订单信息表(ordertbl)列名数据类型是否允许为空说明idint(11)否序号(主键)orderTimevarchar(100)是下单时间userIdint(11)是下单人tableIdint(11)是桌号personNumint(11)是人数isPayint(11)是是否支付(1已支付)remarkvarchar(2000)是备注表3.4 订单信息详情表(orderdetailtbl)列名数据类型是否允许为空说明idint(11)否序号(主键)orderIdint(11)是订单IDmenuIdint(11)是菜IDnumint
30、(11)是订购数量remarkvarchar(2000)是备注表3.5 餐桌信息表(tabletbl)列名数据类型是否允许为空说明idint(11)否序号(主键)numint(11)是订购数量flagint(11)是标识(1有人0没人)remarkvarchar(2000)是备注3.3.4 连接数据库实现本系统采用Java语言编写,使用jdbc连接MySQL数据库,所以要用到Java中的connection对象和MySQL驱动连接到数据库。数据库配置文件如下所示。driver=com.mysql.jdbc.Driverurl=jdbc:mysql:/localhost:3306/wireles
31、s_db?useUnicode=true&characterEncoding=utf-8username=rootpassword=123只有成功连接到了数据库才能进行其他操作,否则就无法开展以下的设计与实现工作了。可见,连接数据库是一个很关键的步骤。4 订餐系统实现4.1安卓平台系统实现4.1.1 功能描述主菜单界面包含点菜管理、并台管理、转台管理、查台管理、结台管理、注销等几个功能模块。每个功能模块提供一种服务,包含一组功能操作,界面简单明了方便服务人员操作。4.1.2 界面展示登录界面主要是由服务人员来操作的,所以要简单明了易操作。利用数据库对用户信息进行核对,核对正确后利用界面跳转到主菜单界面。服务人员的账号密码是提前在服务器数据库中设置的,每个服务人员都有自己单独的唯一的一个账号密码用来登录,这样可以责任到人
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1