电子点菜系统.doc_第1页
电子点菜系统.doc_第2页
电子点菜系统.doc_第3页
电子点菜系统.doc_第4页
电子点菜系统.doc_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

存档编号 华北水利水电学院 north china university of water resources and electric power 毕 业 设 计题目 电子点菜系统 客户端子系统 学 院 信息工程学院 专 业 计算机科学与技术 姓 名 冯亚杰 学 号 200810707 指导教师 张玉华 完成时间 2012年5月20日 教务处制 华北水利水电学院毕业设计独立完成与诚信声明本人郑重声明:所提交的毕业设计(论文)是本人在指导教师的指导下,独立工作所取得的成果并撰写完成的,郑重确认没有剽窃、抄袭等违反学术道德、学术规范的侵权行为。文中除已经标注引用的内容外,不包含其他人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中作了明确的说明并表示了谢意。本人完全意识到本声明的法律后果由本人承担。毕业设计(论文)作者签名: 指导导师签名: 签字日期: 签字日期:毕业设计(论文)版权使用授权书本人完全了解华北水利水电学院有关保管、使用毕业设计(论文)的规定。特授权华北水利水电学院可以将毕业设计(论文)的全部或部分内容公开和编入有关数据库提供检索,并采用影印、缩印或扫描等复制手段复制、保存、汇编以供查阅和借阅。同意学校向国家有关部门或机构送交毕业设计(论文)原件或复印件和电子文档(涉密的成果在解密后应遵守此规定)。毕业设计(论文)作者签名: 导师签名:签字日期: 签字日期:ii 华北水利水电学院毕业设计目 录north china university of water resources and electric power1摘 要4abstract5第1章 引言61.1 课题背景61.2 android无线点菜系统开发的目的和意义71.3 开发环境71.3.1 硬件环境71.3.2 软件环境及语言71.4 本章小节8第2章 系统的关键技术及介绍82.1 android技术概况92.2 android的优势102.3利用mysql来建立数据库112.4 client/server模式122.5 jdbc122.6 android的mvc132.7 本章小节14第3章需求分析153.1系统需要解决的主要问题153.2 系统应具备的基本功能153.3 系统性能需求163.4 本章小结16第4章 项目总览174.1 总体设计174.2 系统流程图184.3系统功能184.4数据库设计194.4.1数据库需求分析194.4.2数据库表格设计214.4 本章小结23第5章 系统详细设计235.1 系统登陆模块设计与实现235.1.1 loginactivity235.1.2 客户端登录界面的设计245.2 点菜模块的设计与实现255.2.1 客户端开桌模块的实现265.2.2 客户端点菜下单模块的设计与实现265.3 查台模块设计与实现275.3.1 客户端查台模块实现285.4 并台模块的设计与实现285.4.1 客户端并台模块的设计与实现295.5 转台模块的设计与实现295.5.1 客户端转台模块的设计与实现305.6 更新模块的设计与实现305.6.1 客户端更新模块的设计与实现305.7 结台模块的设计与实现315.7.1 客户端结台模块的设计与实现325.8 注销模块的设计与实现32第6章 总结和展望346.1 总结346.2 展望34致 谢36参考文献37附录1: 外文原文38what is android?38附录2:外文译文43什么是 android?43附录3:任务书48附录4:开题报告iii附录5:主要程序1摘 要 本文研究了基于android的无线点餐系统的客户端的开发,目的就是通过该系统为餐饮业带来崭新的服务手段和管理理念,优化业务流程,大幅度提升餐厅的服务品质与企业形象,实现企业价值最大化同时使自己的成本最低化,并最终提高其本身在餐饮行业的竞争优势。本系统是基于android的一款网络应用,采用eclipse和myeclipse开发工具进行开发。客户端采用android ui开发技术,采用xml布局,使用activity和contentprovider开发组件,遵循mvc模式开发;服务端采用dao+mvc模式开发,采用servlet和mysql以及android本身自带的sqlite进行数据存储和操作,网络传输协议遵循http协议进行数据的传输和请求。本系统可以使用两个身份进行登陆,包含管理员和服务员,管理员主要负责账号管理和菜单管理以及退出等操作,而服务员主要负责开菜、并台、转台、查台、更新、设置、注销、结台等操作,保证了系统的安全性和严谨性。关键词:android;电子点菜系统;mysql;xmlabstractthis study is on the application of android intelligent mobile wireless client ordering system. the purpose is for a catering through this systempurpose is for a catering through this system to brand new service and management philosophy. as a result, business process will be optimized with an improvement of the restaurants service quality, an exhancement of corporate image, a maximization of the value of enterprises and a minimization of cost, and ultimately an enhanced competitive advantage among the catering industry.the system is based on the copy of the android a network applications, which uses the eclipse and the myeclipse development tools to develop. the client uses android ui development technology which will use the xml layout.using the activity and contentprovider development kit, follow the mvc pattern development; the server uses dao and mvc pattern development, using the servlet and mysql and android itself bring sqlite data storage and operation, network transmission agreement followed the http protocol data transmission and the request.the system can use two identities for landing, including administrators andattendants, the administrator responsible for account management and menumanagement, and exit and other operations, while the waiter is mainly responsible for the open dish, and taiwan, turntable, check taiwan, updates, set, write-offjunction station operation, to ensure the security of the system and rigor. 朗读显示对应的拉丁字符的拼音字典key words: android; electronic order system; mysql; xml第1章 引言1.1 课题背景我们生活在一个到处都充斥着数字技术的世界里,随着无线通信技术的突飞猛进,移动生活、移动办公已经从一种空中楼阁的幻想中转变成大众生活中随手可及的实用技术。而传统的劳动密集型、低科技含量的餐饮业,也在潜移默化中折服着无线网络,悄然发生着技术革命,而其中最为突出的应用就是无线点菜技术。在大多数的餐饮场所中点菜、查看菜谱等工作都是人工完成的。这需要通过大量的手工劳动完成,速度慢,耗费人力多,而且非常易出错,进而导致其工作效率低,造成人力物力的极大浪费。为了节省人力和时间,避免不必要的错误,我们通过对此作认真细致的调查研究后,决定开发本系统。在现行餐饮管理的基础上,建立科学的计算机餐饮管理系统数据库,用计算机工作代替以往大量的人工劳动,提高工作效率,促进餐饮自动化,适应当今科学技术飞速发展的需要。1.2 android无线点菜系统开发的目的和意义 如今移动终端的发展非常迅速,手机功能也日益强大,移动互联网更是被业界认为必然趋势。智能手机的兴起使得人们可以通过手机终端来完成许多事情。而本系统通过手机定位,查询,订餐更是非常实用,尤其是在上班吃午饭时使用,能节省大量的等待时间。而且也可以帮助餐厅利用互联网拓展业务。现在android的发展迅速,在中国市场的占有率为15%左右。未来几年肯定是会迅速上升。移动互联网的迅速发展已经改变了人们的许多习惯,而基于android的电子点菜技术更是给餐厅和客人带来了大量的便利,使人们在吃饭的同时能够享受到高科技带来的乐趣,同时也能促使android技术的广泛传播,更能深入到普通用户的心中,总之android无线点菜技术的出现具有划时代的意义。1.3 开发环境1.3.1 硬件环境计算机: intel 或兼容机; pentium 166 mhz 或更高内存(ram):64m以上 监视器 vga或更高分辨率1.3.2 软件环境及语言软件环境:microsoft windows me、windows 98、windows nt workstation 4.0、windows 2000 professional、microsoft windows nt server 4.0、windows 2000 server 和所有更高级的 windows 操作系统。技术与语言:mysql、eclipse、myeclipse、tomcat6.0,java,android1.4 本章小节首先介绍了课题研究的背景,其次简述了在此背景下开发android电子点菜系统的目的和意义,最后介绍了开发本系统所需的软硬件环境。第2章 系统的关键技术及介绍在基于android的电子点菜系统设计过程中,主要考虑了以下几个方面的问题:(1) android技术(2) 选择系统的开发模式,c/s模式(3) mvc+dao对象模型(4) 系统数据库设计(5) 建立数据库,使用mysql来建立2.1 android技术概况2.1.1 android的历史背景android是基于linux开放性内核的操作系统,是google公司在2007年11月5日公布的手机操作系统。 早期由原名为android的公司开发,谷歌在2005年收购android.inc后,继续进行对android系统开发运营,它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分。底层linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以java编写。android的主要竞争对手是苹果公司的ios以及rim的blackberry os。2011年第一季度,android在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年2月数据,android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%。 2.1.2 android的发展过程以及优势2007年11月5日,google发布了基于linux平台的开源移动手机平台 -android。该平台由操作系统、中间件、用户界面和应用软件等组成,号称是首个为移动终端打造的真正的开放的移动开发平台。2008年9月22日,美国运营商t-mobile usa在纽约正式发布第一款google手机 - t-mobile g1。该款手机为中国台湾宏达电代工制造,是世界上第一部使用android操作系统的手机,支持wcdma/hspa网络,理论下载速率为7.2mbit/s,并支持wi-fi无限局域网络。google与开放手机联盟(open handset alliance)合作开发了android移动开发平台,这个联盟由摩托罗拉、高通、宏达电和t-moblie、中国移动等在内的30多家移动通讯领域的领军企业组成。google与运营商、设备制造商、开发商和其他第三方结成了深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。android作为google企业战略的重要组成部分,将进一步推进“随时随地为每个人提供信息”这一企业目标的实现。全球为数众多的移动电话用户从未使用过任何基于android的移动通讯设备,google的目标是让移动通讯不依赖于设备甚至平台。处于这个目的,android将补充而不会代替google长期以来奉行的移动发展战略:通过与全球各地的手机制造商和移动运营商结成合作伙伴,开发即有用又有吸引力的移动服务,并推广这些产品。 android系统在国内的发展主要在于针对android系统的二次开发上,目前以android系统源码为基础,再深度定制改版而成的操作系统主要有创新工场投资的点心公司开发的点心操作系统、中国移动的ophone、联想的乐phone、阿里云手机操作系统及雷军的小米科技开发的miui。2.1.3 android系统的特点安卓系统的最大特点在于“开源(open source)”它的源代码是开放的,任何人都可以在此基础上进行操作、修改,自主地开发应用程序;在优势方面,android平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。 由于android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。 android使用工具链(toolchain)为google自制的bionic libc。 android硬件抽像层是能以封闭源码形式提供硬件驱动模块。 android的编程语言是运行于 linux kernel之上,但并不是gnu/linux。因为在一般gnu/linux 里支持的功能,android 大都没有支持,包括cairo、x11、alsa、ffmpeg、gtk、pango及glibc等都被移除掉了。android又以bionic 取代glibc、以skia 取代cairo、再以opencore 取代ffmpeg 等等。android 为了达到商业应用,必须移除被gnu gpl授权证所约束的部份。这样做是为了保留常数、数据结构与宏。android的用户界面更美观、 更快更直观的文字输入、 一键文字选择和复制/粘帖、 进一步提升运行速度 、提升多媒体能力、 增加官方进程管理、 改善电源管、改进的虚拟键盘。android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻挠,可想而知,会有多少新颖别致的软件会诞生。 2.2 android的优势2.2.1 开放性在优势方面,android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开发性对于android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,随大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。2.2.2 挣脱运营商的束缚 在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从iphone上市,用户可以更加方便地连接网络,运营商的制约减少。随着edge、hsdpa这些2g至3g移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈,当你可以通过手机im软件方便地进行即时聊天时,再回想不久前天价的彩信和图铃下载业务,是不是像噩梦一样?互联网巨头google推动的android终端天生就有网络特色,将让用户离互联网更近。2.2.3 丰富的硬件选择 这一点还是与android平台的开放性相关,由于android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。好比你从诺基亚symbian风格手机一下改用苹果iphone,同时还可将symbian中优秀的软件带到iphone上使用、联系人等资料更是可以方便地转移,是不是非常方便呢?2.2.4 不受任何限制的开发商 android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如可控制正是留给android难题之一。2.2.5、无缝结合的google应用如今叱诧互联网的google已经走过10年度历史。从搜索巨人到全面的互联网渗透,google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而android平台手机将无缝结合这些优秀的google服务。 2.3利用mysql来建立数据库mysql是一个小型关系型数据库管理系统,开发者为瑞典mysql ab公司。在2008年1月16号被sun公司收购。而2009年,sun又被oracle收购。mysql是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。mysql的sql“结构化查询语言”。sql是用于访问数据库的最常用标准化语言。mysql软件采用了gpl(gnu通用公共许可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了mysql作为网站数据库。2.4 client/server模式在网络连接模式中,除对等网外,还有另一种形式的网络,即客户机/服务器网,client/server。在客户机/服务器网络中,服务器是网络的核心,而客户机是网络的基础,客户机依靠服务器获得所需要的网络资源,而服务器为客户机提供网络必须的资源。这里客户和服务器都是指通信中所涉及的两个应用进程(软件)。使用计算机的人是计算机的“用户”(user)而不是“客户”(client)。但在许多国外文献中,也经常把运行客户程序的机器称为client(这种情况下也可把client译为“客户机”),把运行服务器程序的机器称为server。所以有时要根据上下文判断client与server是指软件还是硬件。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到 client端和server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是client/server形式的两层结构,由于现在的软件应用系统正在向分布式的web应用发展,web和client/server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。 2.5 jdbcjdbc(java data base connectivity,java数据库连接)是一种用于执行sql语句的java api,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成。jdbc为工具/数据库开发人员提供了一个标准的api,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 java api 编写数据库应用程序,同时,jdbc也是个商标名。有了jdbc,向各种关系数据发送sql语句就是一件很容易的事。换言之,有了jdbc api,就不必为访问sybase数据库专门写一个程序,为访问oracle数据库又专门写一个程序,或为访问informix数据库又编写另一个程序等等,程序员只需用jdbc api写一个程序就够了,它可向相应数据库发送sql调用。同时,将java语言和jdbc结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是java语言“编写一次,处处运行”的优势。java数据库连接体系结构是用于java应用程序连接数据库的标准方法。jdbc对java程序员而言是api,对实现与数据库连接的服务提供商而言是接口模型。作为api,jdbc为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。jdbc使用已有的sql标准并支持与其它数据库连接标准,如odbc之间的桥接。jdbc实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。java 具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是 java应用程序与各种不同数据库之间进行对话的方法。而 jdbc 正是作为此种用途的机制。jdbc 扩展了 java 的功能。例如,用 java 和 jdbc api 可以发布含有 applet 的网页,而该 applet 使用的信息可能来自远程数据库。企业也可以用 jdbc 通过 intranet 将所有职员连到一个或多个内部数据库中(即使这些职员所用的计算机有 windows、 macintosh 和unix 等各种不同的操作系统)。随着越来越多的程序员开始使用java 编程语言,对从 java 中便捷地访问数据库的要求也在日益增加。2.6 android的mvcmvc (model-view-controller):m是指逻辑模型,v是指视图模型,c则是控制器。一个逻辑模型可以对于多种视图模型,比如一批统计数据你可以分别用柱状图、饼图来表示。一种视图模型也可以对于多种逻辑模型。使用mvc的目的是将m和v的实现代码分离,从而使同一个程序可以使用不同的表现形式,而c存在的目的则是确保m和v的同步,一旦m改变,v应该同步更新,这与设计模式中的观察者模式是完全一样。 mvc好处:从用户的角度出发,用户可以根据自己的需求,选择自己合适的浏览数据的方式。比如说,对于一篇在线文档,用户可以选择以html网页的方式阅读,也可以选择以pdf的方式阅读。从开发者的角度,mvc把应用程序的逻辑层与界面是完全分开的,最大的好处是:界面设计人员可以直接参与到界面开发,程序员就可以把精力放在逻辑层上。而不是像以前那样,设计人员把所有的材料交给开发人员,由开发人员来实现界面。在eclipes工具中开发android采用了更加简单的方法,设计人员在droiddraw中设计界面,以xml方式保存,在eclipes中直接打开就可以看到设计人员设计的界面。 android中界面部分也采用了当前比较流行的mvc框架,在android中:1)视图层(view):一般采用xml文件进行界面的描述,使用的时候可以非常方便的引入。当然,如何你对android了解的比较的多了话,就一定可以想到在android中也可以使用javascript+html等的方式作为view层,当然这里需要进行java和javascript之间的通信,幸运的是,android提供了它们之间非常方便的通信实现。 2)控制层(controller):android的控制层的重任通常落在了众多的acitvity的肩上,这句话也就暗含了不要在acitivity中写代码,要通过activity交割model业务逻辑层处理,这样做的另外一个原因是android中的acitivity的响应时间是5s,如果耗时的操作放在这里,程序就很容易被回收掉。3)模型层(model):对数据库的操作、对网络等的操作都应该在model里面处理,当然对业务计算等操作也是必须放在的该层的。就是应用程序中二进制的数据。 在android sdk中的数据绑定,也都是采用了与mvc框架类似的方法来显示数据。在控制层上将数据按照视图模型的要求(也就是android sdk中的adapter)封装就可以直接在视图模型上显示了,从而实现了数据绑定。比如显示cursor中所有数据的listactivity,其视图层就是一个listview,将数据封装为listadapter,并传递给listview,数据就在listview中现实。2.7 本章小节本章首先总体介绍了设计涉及的关键核技术:android技术、选择系统的开发模式、c/s模式、dao对象模型、系统数据库设计、建立数据库,使用mysql来建立。然后分别对各部分的关键部分进行介绍。第3章需求分析目前随着科技的进一步发展,手工点菜已经越来越不能满足人们的需求了,而android系统的出现则进一步改善了这个局面,而android电子点菜系统则是android技术的其中的一个代表,让我们看到了科技所带来的影响,以及科技的重要性。3.1系统需要解决的主要问题因为点菜是面向特定的使用者的,因此需要对于用户的身份进行判断,本系统分为两个部分,一个是管理员:负责对添加修改删除服务员,以及添加菜单等等;而服务员则是提供给客户服务的,有开桌、点菜、下单、转台、换台、更新、查台、注销等。3.2 系统应具备的基本功能(1) 服务员登录:用户通过账号和密码及验证码进行登录。(2) 服务员信息的管理:管理员可以增删用户(3) 服务员可以按照顾客的要求进行开桌、点菜、下单、转台、换台、更新、查台等功能(4)菜单的增加:管理员可以添加删除修改菜单。 3.3 系统性能需求 本系统性能需达到的要求: (1) 可靠性。 系统要有严格的判错能力,在登录时要严格进行身份验证,各个模块的权限管理要恰当,对不需要修改的信息要在内部预先控制。 (2) 安全性 只有管理员才能对服务员信息进行修改,保证数据库的安全,以及添加菜单。(3) 易操作性。本系统设置了易用的操作界面,使用户看到界面很快即能理解其意思,方便用户的操作。3.4 本章小结本章主要对系统从功能及性能及系统主要解决的问题进行了简单的分析介绍。为下步设计论述打下基础。第4章 项目总览4.1 总体设计该系统主要包括下面几个部分:服务员:1.登录系统2.查台3.服务器上的数据库和本地数据库的实时更新4.开桌5.换台6.转台7.并台8.结台9.注销;管理员:1.添加服务员2.添加菜单,如图4.1电子点菜系统 服务员管理员帐号管理退出菜单管理注销结台查台更新设置转台并台点菜图4.1 总体设计4.2 系统流程图如图4.2用户登录网络连接否是各功能模块退出图4.2 系统流程图4.3系统功能如图4-3电子点菜系统管理员服务员菜单管理退出帐号管理注销结台查台更新设置转台并台点菜修改删除增加修改删除增加查询结账点菜开桌菜谱管理餐桌管理图4-3 系统功能图4.4数据库设计该系统的主要实现客户端与服务端的交互,所以数据库起着很重要的作用在本程序中。数据库设计的好坏直接决定了该系统设计成功与否。本系统采用mysql作为后台数据库,客户端采用sqlite数据库。mysql是一个小型关系型数据库管理系统,主要实习一些小型数据库的设计。4.4.1数据库需求分析通过系统功能分析,数据库设计如下:用户信息表如图4.4.1-1:包含用户id,用户账户,密码,姓名,性别。 图4.4.1-1 用户信息表设计菜谱表如图4.4.1-2:包含菜的id,菜名,价格,菜的图片路径,菜单描述。 图4.4.1-2 菜谱表设计餐桌表如图4-4-1-3:包含桌子id,桌子编号,桌子状态,餐桌的信息描述。 图4.4.1-3 餐桌表设计订单表如图4.4.1-4:包含订单号,下单时间,用户id,桌子编号,就餐人数,是否支付。 图4.4.1-4 订单表设计订单详细表如图4.4.1-5:包含订单号,菜谱id,数量和顾客的要求。 图4.4.1-5 订单详细表设计4.4.2数据库表格设计e-r图的设计是为了把给用户的数据要求清楚,准确的描述出来,通常建立一个概念性的数据模型。概念性数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型,它描述了从用户的角度看到的数据,它反映了用户的实现环境。在数据模型中包含3中相互关联的信息:数据对象,数据对象的属性及数据对象彼此间相互连接的关系。该数据库的设计包含四张表格,对应了e-r图,其具体的设计如下:用户信息账号密码客户姓名性别 图4.4.2-1用户名信息e-r图餐桌信息餐桌id餐桌编号餐桌状态餐桌描述 图4.4.2-2 餐桌信息e-r图菜谱表菜的类型菜名价格菜图片路径菜的介绍 图4.4.2-3 菜谱信息e-r图订单表订单号下单时间用户id餐桌编号就餐人数是否支付 图4.2.2-4 订单表信息e-r图订单详细表订单id菜谱id菜的个数对菜的备注图4.2.2-5 订单详细表信息e-r图4.4 本章小结本章主要对项目进行大概的介绍,使读都对系统有个大概框架的认识。然后对主要数据库表进行展示,明白本系统用涉及的数据表及其结构。第5章 系统详细设计5.1 系统登陆模块设计与实现 在项目开发中以类的形式来组织,封装一些常用的方法和事件,不仅可以提高代码的重用率,也大方便了代码的管理。本系统中创建了一个公共类httputil.java.主要用来客户端和服务端进行交互。5.1.1 loginactivity 首先进入欢迎界面 logoactivity,画面运行两秒之后会进入登陆界面,在这个过程中欢迎界面的alpha值由0.0-1.0转变,用到了android里面的补间动画,设置了它的持续时间为2s,这个里面用到了alphaanimation,这个类可以控制alpha的透明度的改变,setduration()可以设置动画的持续时间,startanimation()可以启动动画,然后在给动画设计监听方法setanimationlistener(),当该动画播放结束的时候会回调该方法。然后通过intent跳转到loginactivity中,oncreate()方法用于初始化一些操作。由于该登陆过程是一个耗时性操作,因此需要启动一个线程,把这些耗时性操作放在里面进行执行,然后根据输入的账户和密码通过请求loginservlet.java服务器进行判断,首先输入的账号和密码不能为空,如果为空的话,系统将弹出一个toast进行提示不能为空,然后你可以重新输入,输入之后再通过账号和密码进行查询,login():就是对登陆进行判断:1.网络超时2.登陆成功3.密码错误,当你登陆成功的时候还要把用户的信息以键值对的形式保存在sharepreference中,登陆的过程中还要根据permission进行判断,当permission得值为1的时候为管理员,然后跳转到管理员界面,为0的时候跳转到服务员界面,这里采用handler,handler在android里负责发送和处理消息.它的主要用途有:(1) 按计划发送消息或执行某个runnable(使用post方法);(2) 从其他线程中发送来的消息放入消息队列中,避免线程冲突,主要用于更新ui线程。默认情况下,handler接受的是当前线程下的消息循环实例,handler主要用来处理一些耗时的操作。5.1.2 客户端登录界面的设计为了提高系统的安全性,要想使用该系统必须进行登陆,首先需要在reslayout目录下,创建一个名为login.xml的文件,用于显示界面,进行界面布局,用到的空间有2个textview和2个button以及2个edittext,editext用于让用户输入账号和密码,当为空的时候弹出一个对话框提示账号或密码不能为空,输入完整之后需要通过服务器查询,登陆成功之后再进行判断,当permission为1时为管理员登陆,跳转到管理员界面,当permission为0时 服务员登陆,跳转到服务员界面登陆界面如图5.1所示: 图5.1 系统登录界面5.2 点菜模块的设计与实现用户登陆之后,如果是服务员,则进入主界面,如下图5.2.1所示,然后点击点菜按钮,进入点菜界面如图5.2.2图5.2.1 系统主菜单界面 图5.2.2 点菜模块5.2.1 客户端开桌模块的实现点击点菜按钮之后进入点菜界面,它的过程分为开桌和点菜。开桌的过程要求操作员输入桌号和人数,该界面包含一个spinner,通过sqlite数据库动态加载桌号,然后显示在spinner中,开桌过程中要求操作员输入桌号和人数,将点餐时间、服务员编号、桌号和人数保存到服务器端的ordertbl表中。点餐时间去服务器当前时间由程序自动完成,操作员编号由登陆过程中保存咋sharedprefrences中的登陆用户信息,桌号引用tabletbl表中的数据,这里为了程序的运行效率,在客户端使用sqlite将服务器端数据保存下来,点餐过程所使用的桌号从客户端数据库去,程序提供了客户端数据和服务端数据同步的功能,人数有服务员输入,默认值为1. diancaihome类用于开桌模块的开发,oncreate()用于初始化数据,settableadapter()通过adapter对spinner里面的内容进行设置,查询spinner里面的桌号,该桌号是放在本地数据库中,通过contentprovider的uri进行操作,updatesqlite()用于更新同步到手机数据库,桌子开桌后状态要设置为有人。开桌按钮的监听:在该监听中把所以的信息进行获取,包括服务员的id,从登陆成功后保存在手机端的xml(sharedpreference)中读取出来,使用httputil.querystringforpost(request)把封装好的信息发送到服务器端后,根据传过来的结果即为订单号。5.2.2 客户端点菜下单模块的设计与实现开桌之后,点击点菜按钮,会出现一个listview,里面动态的加载菜单的图片已经信息,并且里面有一个增加按钮,点击这个按钮之后会弹出一个对话框,里面需要填写顾客需要的份数以及顾客的需求点击确定即可如图5.2.2,当没有开桌的时候点击点菜按钮的时候会提示你没有开桌。 图5.2.2 点菜模块 diancaiactivity类,该类中通过listview把本地数据库中的菜谱信息显示在listview控件中,获取本地数据库中的菜谱信息是通过contentprovider来实现,它可以让自己的数据达到共享,方便别的程序对他调用。asyncimageloader类用于listview菜单图片的异步加载。下单的过程是将顾客点餐信息保存到后台数据库中,也是通过servlet进行请求。5.3 查台模块设计与实现查台的目的是根据当前餐桌的状态(有人或空位),来安排顾客就餐。程序的实现过程是:查询数据库餐桌表信息,根据查询结果将餐桌状态以图形化的方式显示出来,如图5.3。 图5.3 查台模块5.3.1 客户端查台模块实现首先建立一个查台的类chatai,该类主要用于实现查台的一系列功能,然后建立一个chatai.xml文件进行布局。gettablelist()用于获得当前餐桌信息列表,信息包括桌号和状态,tableadapter继承自baseadapter类,作用是为gridview绑定数据,该类的getview()方法返回的view类是自定义的一个linearlayout类。本模块的难点在于给gridview添加数据,也就是要继承baseapapter类,实现里面的getview()方法,然后再用layoutinflater,也就是布局泵显示gridview上面的内容,也就是imageview和textview,imageview也就是当flag=0的时候显示空桌那张图片,flag=1的时候切换到另一张图片即显示有人的那张图片。5.4 并台模块的设计与实现并台模块实现的是:当两桌顾客下单之后,在就餐过程中提出一起就餐,这一过程需要将保存在数据库中的数据做统一更新。内容有:删除被合并桌位的订单、将被合并桌位客人数加到合并桌位、更新订单详细列表信息、更新桌位状态等,如图5.4: 图5.4 并台模块5.4.1 客户端并台模块的设计与实现 并台是通过弹出对话框的方式来提示服务员的,所以需要在对话框中添加自定义视图,提示用户选择要更换的桌位。 uniontable()定义了一个对话框提示用户选择合并桌号,在对话框中添加了自定义的视图,使用layoutinflater(布局泵)进行自定义视图,访问服务器获得桌位信息并绑定到spinner,然后在确定方法中提交合并请求。5.5 转台模块的设计与实现转台模块要做的是顾客开桌或下单后要求更换桌位的过程,如图5.5。 图5.5 转台模块5.5.1 客户端转台模块的设计与实现 转台模块主要根据订单编号进行换桌,更换的桌号必须是空位才能更换,然后更新保存在数据库中的数据,主要是ordertbl表中该订单对应的桌号以及更换桌位的转台,该界面也是用弹出对话框的方式进行显示,采用自定义布局。spinner里面的桌号也是实时更新的,只有当桌号是空的时候才显示在spinner里面。5.6 更新模块的设计与实现更新模块主要包括两个内容一个是更新菜谱表和更新餐桌表,点击更新之后进入更新模块,该视图包含一个listview,如图5.6。 图5.6 更新模块5.6.1 客户端更新模块的设计与实现 更新模块主要是为了提高程序的运行效率,然后将一些频繁使用的数据库表保存到客户端sqlite数据库中,当服务器数据库中的数据发生变化时,将数

温馨提示

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

评论

0/150

提交评论