本科毕业论文---无线点餐系统正文、结论、参考文献.doc
《本科毕业论文---无线点餐系统正文、结论、参考文献.doc》由会员分享,可在线阅读,更多相关《本科毕业论文---无线点餐系统正文、结论、参考文献.doc(34页珍藏版)》请在咨信网上搜索。
本科毕业设计说明书(论文) 第 34 页 共 34 页 1 绪 论 1.1 研究的背景及意义 民以食为天。餐饮业是一种个性化、多样化的服务产业,餐饮传统的点菜方式是纯人工操作,由服务员记录顾客点的菜,在具体工作中容易出现以下问题:手写单据字迹潦草从而导致上错菜、传菜分单出错现象严重、加菜和查账程序较繁琐。处理特殊口味有遗漏和偏差、客人催菜遗忘现象较频繁、计算账单易出错、不方便人员管理等等。 电子商务则是最能凸显个性化、多样化服务的商务方式。随着网络技术的发展和普及,方便、快捷、个性化的网上订餐正在进入人们的生活。正因如此,无线点餐模式应运而生。它不仅可以有效地提高餐饮业的工作效率,更可以规范服务体系,提高整体服务质量和管理水平,并为规模化经营提供了坚实的技术基础。服务员使用手持终端为顾客点餐,当消费者点完餐后,服务员将存储在手持终端内的点餐信息,点餐信息同时也能被前台看到,方便快捷。 1.2 本文主要内容 本文介绍了无线点餐系统的开发过程。论文详尽论述了从需求分析、系统分析、概要设计、详细设计以及测试与调试的整个开发过程。首先系统地研究了无线点餐系统的背景和意义,分析了当今点餐系统的特点和共性,从而得出设计本系统的思路和方法。接着介绍了实现系统开发的Android平台环境,数据库用MySQL实现。同时简要介绍了以上工具的功能和方法。 概要设计分成后台数据库管理操作设计和客户端操作设计,同时介绍了数据库的建立和维护。详细设计主要阐述了点菜管理、并台管理、查台管理,转台管理,注销等实现,并给出了系统的部分设计代码。2 相关技术和开发环境 2.1 系统架构 无线点餐系统主要用到采用模型-视图-控制器MVC架构的设计模式。MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。 视图是用户看到并与之交互的界面。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。 模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用像EJBs和ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。 控制器接收用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。 总的来说MVC的处理过程,就是首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。 2.2 关键技术 2.2.1 JDBC JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,同时,JDBC也是个商标名。 有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。 Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。 2.2.2 Jquery Jquery是继prototype之后又一个优秀的Javascrīpt框架,由美国人John Resig创建。它是轻量级的js库(压缩后只有21k) ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+,Safari 2.0+,Opera 9.0+)。Jquery使用户能更方便地处理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对象XmlHttpRequest。Ajax在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求)。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。 通过Ajax,您的JavaScript可使用 JavaScript的XMLHttpRequest对象来直接与服务器进行通信。通过这个对象,您的 JavaScript可在不重载页面的情况与Web服务器交换数据,这样就可使网页从服务器请求少量的信息。 Web应用程序较桌面应用程序有诸多优势;它们能够涉及广大的用户,它们更易安装及维护,也更易开发。 2.3 开发环境及平台 2.3.1 Eclipse Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(Java Development Tools,JDT)。Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。 1. Eclipse的主要构成 Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——Eclipse Platform、JDT、CDT和PDE.JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。 Eclipse SDK(软件开发者包)是Eclipse Platform、JDT和PDE所生产的组件合并,它们可以一次下载。这些部分在一起提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到Eclipse Platform中的工具。Eclipse SDK由Eclipse项目生产的工具和来自其它开放源代码的第三方软件组合而成。Eclipse项目生产的软件以 GPL发布,第三方组件有各自自身的许可协议。 2. Eclipse Android环境搭建 1) JDK安装 a) 我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量: JAVA_HOME值为:安装JDK的目录; CLASSPATH值为:D:\AndroidDeveloper\android-sdk-windows\tools; 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版,Android 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中的tools绝对路径(本机为D:\AndroidDevelop\android-sdk-windows\tools)。 2.3.2 MyEclipse MyEclipse,是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。 MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。 在对于毕业课题的设计中,Android终端设备客户端是采用Eclipse开发工具开发的;而Web版本是采用MyEclipse开发工具开发的。 2.3.3 Tomcat服务器 Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。 Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行Tomcat 时,它实际上作为一个与Apache独立的进程单独运行的。 当配置正确时,Apache为HTML页面服务,而Tomcat实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。 2.3.4 应用平台Android Android是基于Linux内核的操作系统,早期由Google开发,后由开放手机联盟开发。它采用了软件堆的架构,主要分为三部分。底层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。Android在未公开之前常被传闻为GPhone。 它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分:底层以Linux核心为基础,由c语言开发,只提供基本功能。中间层包括函数库Library和虚拟机Virtual Machine,由C++开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java编写。 Android平台五大优势特色: 1) 开放性 在优势方面,Android平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。 开放性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。 2) 挣脱运营商的束缚 在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从iPhone上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。 3) 丰富的硬件选择 这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。好比你从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。 4) 不受任何限制的开发商 Android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻挠,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android难题之一。 5) 无缝结合的Google应用 如今叱咤互联网的Google已经走过10年历史。从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。 3 订餐系统分析与设计 3.1需求分析 3.1.1 系统目标和要求 首先,我们得确定使用这个系统的用户应该有顾客、服务员、收银员。顾客和服务员应该是系统数据的起点,由他们做出相应的操作,然后系统进行处理;收银员则为系统数据的终点。 该系统在性能功能上应达到如下要求: 1. 操作简单、界面友好:完全控件式的页面布局,使得菜品,资讯,座位等信息的 录入工作更简便,许多选项包括餐厅信息,桌位,包房信息等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。对常见的类似网站的管理的各个方面:基本信息录入、浏览、删除、修改、搜索等方面都大体实现,顾客对菜品的预定及支付方式; 2. 即时可见:对客户预定餐饮信息的处理(包括录入、删除)将立即在另一应用端及服务器的对应栏目显示出来,达到“即时点击、即时见效”的功能; 3. 系统运行应该快速、稳定、高效和可靠; 4. 在结构上应具有很好的可扩展性,便于将来的功能扩展和维护。 3.1.2 可行性分析 随着经济的快速发展,B2C电子商务越来越受到人们的关注。无线订餐系统,已经如雨后春笋般的出现在了许多城市的大酒店中。特别在大型餐饮集团使用已经成为了趋势。同时,随着全国人民的精神、物质和文化生活高度的提高,人们已经不在仅仅停留在吃饱的程度,不但要吃饱,还要吃好,而且对酒店服务也越来越挑刺,正因为如此无线订餐系统的出现,正好满足了大众的需要,不仅让宾客享受到精美可口的美食,更让他们感受到服务管理的贴心与完善。无线订餐业务在中国有着极大的发展空间以及良好的背景。随着酒店管理的完善,使用这种智能的无线点餐系统必然成为追究卓越的餐饮公司的最爱,也更能够体现信息技术发展之猛烈。 此次毕业设计基于Android平台开发无线订餐系统。Android平台给我们提供了巨大的自由空间,再运用Java面向对象语言,是系统功能更加强大。MySQL 是一个杰出的数据库平台,具有功能强大,安全可靠等特点,可用于中小型联机事务处理、数据仓库及电子商务等。 3.2 订餐系统概要设计 系统的概要设计主要对系统的总体功能如何设计,如何划分模块,系统的数据库如何设计进行研究。它为系统的详细设计做铺垫。在系统的设计过程中起着非常重要的作用。 3.2.1 模块的划分 本系统主要分两部分: 1. Web点餐系统与后台 Web系统主要是给客户点菜;客户只能点菜、拿号。 2. 终端设备与后台 终端设备指的是基于安卓平台的一个设备。主要给服务员、收银员等工作人员使用;能更新菜谱,结账,点菜、查看等功能。 3.2.2 功能模块的设计 1. Web点餐系统 1) 登录——若没有用户账号,提供注册 2) 查看菜单 3) 查看菜单详情 4) 加入购物车(点菜) 5) 下单(提交预定菜单) 6) 拿号 无线点餐系统——Web系统 登录 注册 没有 账号 看菜单 查看菜详情 加入购物车 下单 订单信息确认 取号 图3-1功能描述图 2. 终端设备 终端系统主要有以下几个模块构成:结台管理、更新管理等功能。 1) 点菜——包括开桌、点菜、下单三个功能 2) 并台——两桌拼接 3) 结台——在顾客就餐完毕后,计费付帐而设定的功能,是客人能够一目了然,不用担心有什么算错的问题。 4) 查台——查看座位情况,哪些是有人,哪些是空位 无线点餐系统 开桌 转台 登录 点菜 下单 并台 结台 查台 图3-2功能描述图 3.3 数据库设计 3.3.1 数据库需求分析 无线点餐系统以酒店服务信息为主体,因此在这个系统中必须要有一个保存菜单信息的表。所以用编号做主键。负责登录终端系统的服务人员应该有保存服务人员信息的表,这个表中也是包括一些基本信息。并且以服务人员的编号作为主键。在一个点餐系统中,不可避免的要有桌位的编号。这样的话就必须有一个桌号表,该表保存桌位信息。顾客可以按照自己的喜好,在酒店布置的桌号中选择自己喜欢的位置。另外既然是酒店就必须要有一个订单表,该表中包括订单号,点餐时间,用户ID,桌号,人数,是否结账等基本信息。这样也就还需要一个订单详细表用于存储顾客所点的菜品信息等等。 3.3.2 数据库E-R图设计 数据库的概念设计,即利用数据模型进行概念数据库的模式设计。根据无线点餐系统的需求,设计出以下的实体-关系模型(E-R)图如图。 描述 ID编号 桌号 标识号 桌位 n 服务 1 服务人员 用户密码 ID编号 用户名称 图3-3 实体联系图 ID编号 描述 菜品类型 图片 菜品 包含 n 价格 订单明细 对应 备注 数量 ID编号 订单 备注 ID编号 是否结账 人数 下单的客户 下单时间 桌号 1 n 1 图3-4 实体联系图 3.3.3 数据表设计 数据库的逻辑设计,即把概念设计得到的概念数据库模式变为逻辑数据模式,它依赖于DBMS。根据无线点餐系统的需求分析及数据库的概念设计,建立数据库了wireless_db。 建库语句:create database wireless_db; 设计表结构,如下图所示: 表3.1 用户信息表(usertbl) 列名 数据类型 是否允许为空 说明 id int(11) 否 序号(主键) name varchar(50) 是 用户名 password varchar(50) 是 密码 account varchar(50) 是 登录名 gender varchar(20) 是 性别 permission int(11) 是 权限(客户2,用户1) remark varchar(2000) 是 备注 表3.2 菜单信息表(menutbl) 列名 数据类型 是否允许为空 说明 id int(11) 否 序号(主键) price int(11) 是 价格 typeId int(11) 是 类型 name varchar(50) 是 菜名 pic varchar(1000) 是 图片 remark varchar(2000) 是 备注 表3.3 订单信息表(ordertbl) 列名 数据类型 是否允许为空 说明 id int(11) 否 序号(主键) orderTime varchar(100) 是 下单时间 userId int(11) 是 下单人 tableId int(11) 是 桌号 personNum int(11) 是 人数 isPay int(11) 是 是否支付(1已支付) remark varchar(2000) 是 备注 表3.4 订单信息详情表(orderdetailtbl) 列名 数据类型 是否允许为空 说明 id int(11) 否 序号(主键) orderId int(11) 是 订单ID menuId int(11) 是 菜ID num int(11) 是 订购数量 remark varchar(2000) 是 备注 表3.5 餐桌信息表(tabletbl) 列名 数据类型 是否允许为空 说明 id int(11) 否 序号(主键) num int(11) 是 订购数量 flag int(11) 是 标识(1有人0没人) remark varchar(2000) 是 备注 3.3.4 连接数据库实现 本系统采用Java语言编写,使用jdbc连接MySQL数据库,所以要用到Java中的connection对象和MySQL驱动连接到数据库。数据库配置文件如下所示。 driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/wireless_db?useUnicode=true&characterEncoding=utf-8 username=root password=123 只有成功连接到了数据库才能进行其他操作,否则就无法开展以下的设计与实现工作了。可见,连接数据库是一个很关键的步骤。4 订餐系统实现 4.1安卓平台系统实现 4.1.1 功能描述 主菜单界面包含点菜管理、并台管理、转台管理、查台管理、结台管理、注销等几个功能模块。每个功能模块提供一种服务,包含一组功能操作,界面简单明了方便服务人员操作。 4.1.2 界面展示 登录界面主要是由服务人员来操作的,所以要简单明了易操作。利用数据库对用户信息进行核对,核对正确后利用界面跳转到主菜单界面。服务人员的账号密码是提前在服务器数据库中设置的,每个服务人员都有自己单独的唯一的一个账号密码用来登录,这样可以责任到人,不至于出现混乱,否则出现错误都不知道是哪个环节的问题。 图4-1 登录截图 输入数据的验证: 图4-2 登录数据验证 登录失败: 图4-3 登录失败 登陆成功之后进入主菜单: 图4-图4-4 主界面 点击点菜: 开桌:若当前桌号是开过桌的,开桌按钮将会不可用,并且人数自动为上次开过桌之后的人数,这一步是通过桌号来从数据库中判断桌子的标示(1表示开桌,0表示没有开桌)实现的,可以修改。 图4-5 开桌 2号桌已经被开过桌,所以开桌按钮变成不可用。 图4-6 开桌验证 添菜:所有的菜单信息都是从数据库中取出的,与web版本向客户提供的信息保持一致。 图4-7 点餐 点击下拉列表选择菜名:如图 图4-8 选择菜单 图4-9 填写人数 点击下单直接下单,下单成功后,屏幕下方会提示桌号(如图)。下单即向数据库的订单详情表插入数据,插入客户定的菜号、桌号、备注信息等。 图4-10 下单成功 点击转台: 图4-11 换桌位 换台成功后有提示(如图),转台对于数据库的操作,就是将原来订单号的中的桌号编程就该之后的桌号。 图4-12 换座位成功 查台: 图4-12 查台 并台:所谓并台,就是两桌人并成一桌,对于数据库所做的操作有:先把被并的目标桌号的状态修改为空位,再把订单上的桌号修改为并台后的桌号即可。并台必须针对的是已经开过桌的桌子。 图4-13 并台 并台选择桌号:查出来的都是开过桌的桌号。 图4-14选择桌号 结账这一功能,就是从点餐详情表中取出,订单号为1的所有订单信息,并且再跟据菜号,将菜肴的价格取出,相加得到总价格显示出来。结账成功后,将数据库中订单表中的isPay字段的状态改成已支付。(0表示未支付,1表示已支付) 图4-15 结算界面 注销: 图4-16 注销 4.1.3 关键代码 以下是点菜功能的关键代码: // 添菜监听器 private OnClickListener addListener = new OnClickListener() { @Override public void onClick(View v) { // 调用点菜方法 addMeal(); } }; //添菜方法 private void addMeal() { // 获得LayoutInflater实例 LayoutInflater inflater = LayoutInflater.from(this); // 实例化在弹出对话框中添加的视图 final View v = inflater.inflate(R.layout.order_detail, null); // 获得视图中的Spinner对象,菜单下拉列表 final Spinner menuSpinner = (Spinner) v.findViewById(R.id.menuSpinner); // 获得视图中的EditText对象,数量 EditText numEt = (EditText) v.findViewById(R.id.numEditText); // 获得视图中的EditText实例,备注 EditText remarkEt = (EditText) v.findViewById(R.id.add_remarkEditText); String url = HttpUtil.BASE_URL +"/servlet/MenuServlet"; String result = HttpUtil.queryStringForGet(url); try { JSONArray tables = new JSONArray(result); List<JSONObject> lists = new ArrayList<JSONObject>(); for(int i=0;i<tables.length();i++) { lists.add(tables.getJSONObject(i)); } JsonArrayAdapter adapter = new JsonArrayAdapter(this, R.layout.spinner_lo, lists, new String[]{"id","name","price"},new int[] { R.id.id_TextView01, R.id.price_TextView02, R.id.name_TextView03, }); menuSpinner.setAdapter(adapter); } catch (JSONException e) { // TODO Auto-generated catch block Log.e("amaker", "转换数据出错"); } // 获得AlertDialog.Builder实例 AlertDialog.Builder builder = new AlertDialog.Builder(this); builder // 设置标题 .setMessage("请点菜:") // 设置自定义视图 .setView(v) // 设置确定按钮 .setPositiveButton("确定", new DialogInterface.OnClickListener() { // 确定按钮事件 public void onClick(DialogInterface dialog, int id) { // 获得ListView中的自定义视图LinearLayout LinearLayout v1 = (LinearLayout) menuSpinner .getSelectedView(); // 获得TextView,菜编号 TextView id_tv = (TextView) v1 .findViewById(R.id.id_TextView01); // 获得TextView,菜价格 TextView price_tv = (TextView) v1 .findViewById(R.id.name_TextView03); // 获得TextView,菜名称 TextView name_tv = (TextView) v1 .findViewById(R.id.price_TextView02); // 获得EditText,菜数量 EditText num_et = (EditText) v .findViewById(R.id.numEditText); // 获得EditText,菜备注 EditText remark_et = (EditText) v .findViewById(R.id.add_remarkEditText); // 菜编号值 String idStr = id_tv.getText().toString(); // 菜价格值 String priceStr = price_tv.getText().toString(); // 菜名称值 String nameStr = name_tv.getText().toString(); // 菜数量值 String numStr = num_et.getText().toString(); // 菜备注值 String remarkStr = remark_et.getText().toString(); // 封装到Map中 map = new HashMap(); map.put("id", idStr); map.put("name", nameStr); map.put("num", numStr); map.put("price",priceStr); map.put("remark", remarkStr); // 添加到ListView data.add(map); // 关联的TextView to[0] = R.id.id_ListView; to[1] = R.id.name_ListView; to[2] = R.id.num_ListView; to[3] = R.id.price_ListView; to[4] = R.id.remark_ListView; // 实例化SimpleAdapter sa = new SimpleAdapter(OrderActivity.this, data, R.layout.listview, from, to); // 为ListView绑定数据 lv.setAdapter(sa); } }).setNegativeButton("取消", null); AlertDialog alert = builder.create(); alert.show(); } 4.1.4 服务器端的实现 服务器端功能 主控计算机处理各无线终端发送过来的数据信息并进行处理、加工(必要的情况下还进行信息回馈)以及发送,从而进行控制、结算、统计、结账打印以及管理等一系列职能操作。 服务端主要是数据库操作,针对无线终端各模块而设置响应相应功能的服务器小程序。主要的Servlet(如图显示)。 服务器端 响应点菜的Servlet 响应登录的Servlet 响应开桌的Servlet 响应详细订单的Servlet 响应转台的Servlet 响应结算的Servlet 响应更新桌号的Servlet 响应更新菜谱的Servlet 响应查台的Servlet 响应并台的Servlet 图4-17- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 本科毕业 论文 无线 系统 正文 结论 参考文献
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文