基于android的手机订餐系统的设计与实现

基于android的手机订餐系统的设计与实现

ID:36277356

大小:2.98 MB

页数:84页

时间:2019-05-08

上传者:xinshengwencai
基于android的手机订餐系统的设计与实现_第1页
基于android的手机订餐系统的设计与实现_第2页
基于android的手机订餐系统的设计与实现_第3页
基于android的手机订餐系统的设计与实现_第4页
基于android的手机订餐系统的设计与实现_第5页
资源描述:

《基于android的手机订餐系统的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219基于android的手机订餐系统的设计与实现摘要随着科技的发展,二十一世纪成为了以网络化、信息化为核心的社会。网络商业化也成为了时下最热门的词汇,越来越多的宅男宅女们青睐于足不出户便可处理完生活琐事。传统的订餐方式已不能满足人们的需求,为了解决这种处在高速发展社会的就餐困难的问题,所以设计了本系统。本设计是一个基于Android手机的网上订餐系统,采用C/S模式,为客户提供网上选择、浏览菜品,在线下单服务,并为管理员提供一个服务平台实现用户信息、商家信息以及顾客订单的管理,从而提高了服务的质量。本文从系统需求、系统设计、测试等几个方面介绍了整个软件的开发过程,这个系统采用JAVA、MYSQL数据库,并利用MyEclipse、TOMCAT、AndroidSDK、ADT等开发环境并遵照MVC模式来进行开发。采用MVC模式,使用TOMCAT服务器,基于Eclipse的开发平台,运用JAVA和Android语言设计并完善了基于android的手机订餐系统,实现了它的网上订餐的主要功能,且此系统界面美观、操作便捷将会受到广大用户的青睐。关键词Android;JAVA;手机订餐;C/S模式本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219DesignandimplementationofmobilephoneorderingsystembasedonandroidAbstractWiththedevelopmentoftechnology,thetwenty-firstcenturyhasbecometothenetworkandtheinformationsociety.Commercialnetworkshasbecomethemostpopularwordsnowadays,moreandmorepeoplearefavoredinthetreatmentofdomesticchorescanbecompletedwithoutleavinghome.Thetraditionalorderingmethodscannotmeetpeople'sneeds,inordertosolvethisdifficultproblemwhichdiningouthardintherapiddevelopmentofsociety,sodesignedthesystem.This design is ordering system, using C / S mode, providing customers to view presentation of dishes, ordering services, and provide administrators with a service platform for user information and customer order management. This paper introduced the software development process from many aspects, system uses some development tools include JAVA, MYSQL database ,MyEclipse, TOMCAT, Android SDK, ADT,following the MVC pattern to develop.UsingtheMVCpattern,usingTOMCATserver,Eclipse-baseddevelopmentplatform,theuseofJAVAandAndroid-basedlanguagedesignandimprovetheandroidphoneorderingsystem,themainfunctionofitsonlineordering,andthissystemisbeautifulinterface,easyoperationwillbythemajorityofusersofallages.Keywords:Android;JAVA;Mobilephoneordering;C/Smodel本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219目录摘要iAbstractii1绪论11.1课题研究背景和意义11.2目前形势11.3论文所研究的内容22开发环境和相关技术简介32.1Android技术介绍32.1.1Android简介32.1.2AndroidFeatures特性32.1.3Android基本框架(AndroidArchitecture)42.1.4Android系统的四大组件42.2Java技术介绍52.3MySQL数据库62.3.1MySQL概述62.3.2MySQL的优势62.4C/S模式介绍73系统可行性分析以及需求93.1系统设计目标93.1.1系统安全性93.1.2可维护性93.1.3用户操作103.1.4运行速度103.1.5界面103.2系统需求分析104概要设计114.1功能模块11本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj7812194.2数据库设计144.2.1数据库的设计原则144.2.2权限控制技术154.2.3系统中数据库表的详细设计结构165详细设计185.1Android环境搭建185.2Android客户端设计205.2.1登陆注册界面以及与服务器端的连接方式205.2.2菜谱大全界面235.2.3在线选择座位下单界面315.2.4我的订单界面345.3服务器端与数据库的链接355.4WebService服务器端设计395.4.1登陆界面395.4.2菜谱管理界面425.4.3商家管理界面425.4.4用户管理界面435.4.5订单管理界面435.4.6分组管理界面446系统测试456.1软件测试456.2主要测试用例466.2.1客户端测试用例466.2.2服务器端测试486.3测试总结496.3.1功能性496.3.2易用性506.3.3可靠性506.3.4兼容性50本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj7812196.3.5安全性507结论51参考文献52致  谢53外文原文54中文翻译68本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj7812191绪论1.1课题研究背景和意义随着计算机、互联网和移动终端及其应用的快速发展,人们的工作方式、交流方式、学习方式以及生活的各个方面都发生了巨大的变化。在这样的社会背景下,移动电子商务应运而生,它将因特网、移动通信技术、短距离通信技术及其它信息处理技术完美的结合,使人们可以更加方便的进行各种商贸活动,随时随地的购物与交易、在线电子支付以及各种交易活动、金融活动、商务活动和相关的综合服务活动等。而Android操作系统凭借着自己开放的平台允许任何移动终端厂商加入到Android联盟中,从而使得市场上越来越多的手机操作系统选择了Android。因此本系统选择设计基于Android平台的软件,这样毫无疑问能覆盖更多的群众。与此同时,当今社会的快节奏生活方式让人们困扰不已,而就餐与交通问题首当其冲。餐厅太过拥挤、客流高峰期就餐困难、点餐等待等问题层出不穷。为了解决人们对于订餐排队、就餐困难等问题,因此在Android平台的基础上设计了手机订餐系统,该系统可以让用户节约大量的时间,提高了生活效率,从而解决了就餐难的问题。1.2目前形势在国外,多年前许多知名品牌都开始了网上订餐服务,如今提供网上订餐服务的商家数目正在急剧膨胀,人们只需一张信用卡和一台电脑,就可全天订座。即便你不是名流或者常客也不是厨师的朋友,你同样可以享受这种便捷的订餐方式。网上订餐往往是开通网上服务,让顾客在网上选择自己想点的美食和到店时间,就可以由商家按照顾客的需求在及时做好餐点,使顾客到店便可及时吃上美食,无需等待。网上订餐的方式已经被国外的许多家庭所认可。在国内,“网上订餐”是近几年出现的新兴行业,最早出现在2003年的非典时期。一时间全国冒出多家类似公司,但就目前情形来看,规模不是很大并且在市场上有影响力也不多。例如上海的订餐小秘书、北京有饭桶网等企业,还有电信的114生活百事通、中国移动的12580以及中国联通等都开始涉入该领域。但总体而言,该行业发展不是很好。经过几年的初步发展和互联网技术的不断进步,“网上订餐”行业又重新得到本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219了社会的关注。因此,网络订餐市场被迅速激发,新的销售模式被逐渐认可,一批新兴的以网络订餐为核心业务的互联网企业涌现。以“订餐网”为关键词,在百度里检索到网页多达近20万条。据不完全统计,2008年新上线订餐类网站近千家,大多数集中在经济较发达的大都市和一级城市,如北京、上海、广州、深圳、重庆、福州、厦门等,但是在二线及其以下的城市关注度与应用程度还不是很高,所以就二线以及以下城市进行此项目的开发还是很有必要的。1.3论文所研究的内容为了顺应现实社会的发展方向,开发了基于Android的手机订餐系统,本系统针对所有用户,分别建立了客户端和服务器端,以方便不同用户的需求,从商家与客户两端同时处理,充分解决就餐难的问题。主要解决的问题包括:(1)对于使用界面,需要人性化,能够给用户一种温馨的感觉;(2)在后台根据登录人员的不同进行权限设置。(3)通过接受客户端用户的订单,可以及时准确的为用户在规定时间内准备好餐点本系统开发的意义在于提供给用户方便快捷的订餐服务,满足用户的需求,解决传统订餐方式的不足,方便用户随时随地的订餐,商家随时更新查看订单并在规定时间能合理安排完成客户的需求,从根本上解决传统就餐方式中的漏洞。本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj7812192开发环境和相关技术简介2.1Android技术介绍2.1.1Android简介Android是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。Android是基于Linux内核的软件平台和操作系统,早期由Google开发,后由开放手机联盟(OpenHandsetAlliance)开发。它采用了软件堆层(softwarestack,又名以软件叠层)的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。到了2010年1月,Google开始发表自家品牌手机电话的NexusOne,目前最新SDK版本为Android4.0.3。2.1.2AndroidFeatures特性Android系统有如下的几大特性[3]:·应用程序框架支持组件的重用与替换 ·Dalvik虚拟机专门为移动设备做了优化 ·内部集成浏览器该浏览器基于开源的WebKit引擎 ·优化的图形库包括2D和3D图形库,3D图形库基于OpenGLES ·SQLite用作结构化的数据存储 ·多媒体支持包括常见的音频、视频和静态印象文件格式(如MPEG4,MP3,AAC,AMR,JPG,PNG) ·GSM电话(依赖于硬件) ·蓝牙Bluetooth,EDGE,3G,andWiFi(依赖于硬件) ·照相机,GPS,指南针,和加速度计(依赖于硬件)本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219 ·丰富的开发环境包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse集成开发环境插件。2.1.3Android基本框架(AndroidArchitecture)关于Android的基本框架如图2-1所示:图2-1AndroidArchitecture2.1.4Android系统的四大组件在Android系统中,为我们提供了四大基本组件,每个组件是一个视图,其中有些是可见的,有些是不可见的,例如Activity,ContentProvider是可见的视图,Service和BroadcastReceiver是不可见的,它们只在系统的后台运行。下面分别介绍四大组件[3]:(1)Activity简介在Android系统中Activity提供可视化的用户界面,一个Android应用通常由多个Activity组成。多个Activity组成了Activity栈(Stack),当前活动的Activity处于栈顶。Activity有自己的生命周期,由Android系统来控制。(2)Service简介Service本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219就是运行在后台的一种服务程序,一般很少和用户交互,因此没有可视化界面定义一个Service类比较简单,只要继承Service类,实现其生命周期中的方法就可以了。一个定义好的Service必须在AndroidManifest.xml配置文件中注册,通过元素声明才能使用.Service有自己的生命周期,我们可以调用startService()启动一个Service或者bindService()方法来绑定一个存在的Service(3)BroadcastReceiver简介BroadcastReceiver是广播接收器,它和事件处理机制相似,但事件处理机制是程序组件级别的(例如,某个按钮的单击事件),而广播事件处理机制是系统级别的。我们可以使用Intent来启动一个程序组件进行消息的传递,我们也可以通过使用sendBroadcast()方法来发起一个系统级别的事件广播来传递消息。我们可以在你的应用程序中实现BroadcastReceiver来监听和响应这些广播的Intent(4)ContentProvider简介ContentProvider用来保存和检索数据,并且使应用程序之间相互访问数据成为可能。它是跨应用程序共享数据的唯一方法。Android为常用的数据类型(如:音视频、图片和联系方式等)提供了大量的ContentProvider。它们被定义在android.provider包下面。通过这样定义好的ContentProvider我们可以方便的进行数据操作。当然我们必须拥有适当的权限。我们也可以自己来定ContentProvider共享我们的数据,方便用户的访问。2.2Java技术介绍Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE,JavaEE,JavaME)的总称。Java技术特点是通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。  虽然大多数用户很乐于将Eclipse当作Java集成开发环境(IDE)来使用,但Eclipse本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219的目标却不仅限于此。Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。  这种平等和一致性并不仅限于Java开发工具。尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言;例如,支持诸如C/C++和COBOL等编程语言的插件也可以使用。Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。  基于Eclipse的应用程序的一个突出例子是IBMRationalSoftwareArchitect,它构成了IBMJava开发工具系列的基础[4]。2.3MySQL数据库2.3.1MySQL概述MySQL是一个小型关系型数据库管理系统,它将关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度而且处理更灵活。MySQL使用的是SQL“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言。MySQL软件采用了GPL(GNU通用公共许可证)。由于其体积小、速度快、总体拥有成本低,最重要的是MySQL具有开源的特性。2.3.2MySQL的优势(1)使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性;(2)支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统;(3)为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等;  (4)既可以单独应用在客户端服务器网络环境中,也能嵌入到其他的软件中,并且提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift、JIS本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219以用作数据表名和数据列名;(5)提供TCP/IP、ODBC和JDBC等多种数据库连接方式;(6)提供多种数据库操作的管理工具;(7)可以处理数以万计的数据。2.4C/S模式介绍在网络连接模式中,除对等网外,还有另一种形式的网络,即客户机/服务器网,Client/Server。在客户机/服务器网络中,服务器是核心,客户机是基础,客户机依靠服务器获得所需要的数据资源,而服务器为客户机提供必要的资源以及出具的逻辑处理。  这里客户和服务器都是指通信过程中涉及的两个应用进程(软件)。使用计算机的人是计算机的“用户”(user)而不是“客户”(client)。但在许多国外文献中,也经常把运行客户程序的机器称为client(这种情况下也可把client译为“客户机”),把运行服务器程序的机器称为server。所以有时要根据上下文判断client与server是指软件还是硬件。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务更加合理的分配到Client端和Server端来实现,这样就可以降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。C/S架构软件的优势和劣势:应用服务器运行数据负荷较轻。最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的设备,称为应用服务器。一旦服务器程序被启动,就会随时等待响应客户程序发来的请求并进行处理;客户的应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的逻辑进行处理,并且将结果发送给客户端。  本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219数据的储存管理功能较为透明。在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台主要用户从服务器端获取数据用于界面的显示也可以输入数据并将数据存储到后台的数据库中。而后面主要是为了向前台提供数据,并接受前台传来的数据将其进行一些必要的逻辑操作再存数的数据库中去。在C/S体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。  C/S架构的劣势是高昂的维护成本且投资大。首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。  传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj7812193系统可行性分析以及需求随着科技的发展,二十一世纪成为了以网络化、信息化为核心的社会。网络商业化也成为了时下最热门的词汇,越来越多的宅男宅女们青睐于足不出户便可以处理完成生活琐事。传统的订餐方式已不能满足人们的需求,为了顺应社会的发展与时代的需求,开发设计基于android的网上订餐系统,它独有的便捷性和直观性,将会得到了很多人的青睐。并且现在社会上安卓手机的覆盖范围已经超过了百分之八十的市场份额,采用安卓的平台来开发的手机应用系统将会极大可能的增加其应用范围以及受众人群。综上分析,决定利用Android设计系统的客户端,用JAVA和MySQL设计网上订餐系统的服务器端,使该系统可以更加方便的使用于不同需求的人群。3.1系统设计目标为客户设计更加方便快捷的订餐系统,分别从客户和商户两端同时着手设计,从根本上解决就难高峰期的拥堵问题,客户在订餐是可以提交就餐时间用来方便商家接受订单是可以及时处理,合理安排餐点,从而达到用户到店便可及时就餐的问题。3.1.1系统安全性本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219对于不同的用户有不同的权限,系统对于他们有良好的区分度。同时保证了数据的安全性、可靠性。准确的数据、可恢复性的系统都是必须的。比如本系统将操作用户分成了三类:管理员、商户、用户,他们具有明确的区分。管理员登陆时可以为所有的商户合理分配账号和密码,管理所有的用户以及查看所有的订餐和菜品;商户登录时,只可以针对自己商户的订餐进行处理,查看自己商户的订单;用户只能在客户端,只可以进行查看菜品和下单的操作。这样通过菜单级的用户权限管理,增强了系统的安全性。3.1.2可维护性在使用系统的过程中,会遇到很多新的要求,有时候还要有新的内容进行扩展,因此在设计系统时必须要考虑到,这样设计出来的系统才能满足实际的应用,并能随时进行功能的增加。管理员会不断对系统进行更新,如新功能的开发,数据的维护等。充分考虑到了代码的冗余问题,从而增加系统的可维护性。3.1.3用户操作设计的目标中应该包含使用尽可能方便用户,操作简洁明了,以求更好的发挥系统的作用。本系统中对用户有明确的操作指示,在网页中可以浏览系统为用户提供给的任何服务,如查看菜单信息,个人信息以及密码的修改等操作在页面中都有清晰的显示。3.1.4运行速度系统响应时间对于系统至关重要。考虑到每位用户都不喜欢传统的订餐时间长的方式,后台会不断完善系统的运行速度争取在第一时间满足用户的订餐需求。对于管理员,需要注意的是在提高响应时间的时候不能忘记系统的安全性。3.1.5界面用户界面应该做到清晰简单一目了然,给人以舒适感,易于操作。3.2系统需求分析本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219本系统主要是实现网上浏览菜单、订餐、产生订单等功能的系统。需要实现菜品信息的动态提示、购物车管理、客户信息注册、登录管理、订单处理等模块。需要完成的主要任务如下:当客户进入网上订餐时,应该在订餐页面中分类显示最新的菜品信息,以供客户选择所需菜品,同时提供按菜品名称,快速查询所需菜品信息的功能。当客户选择预定某个菜品时,应该能够将对应菜品信息,如:价格、数量记录到对应的购物车中,此时客户可以选择选择其他菜品或是查看自己的购物车,最后,在购物车中填写相应的送餐信息,提交订餐订单后,自动清除已生成订单的购物车中的信息。餐厅服务人员根据订单信息,查看详细订单明细并根据实际情况处理订餐。4概要设计4.1功能模块随着3G时代的到来,手机应用越来越普遍,加之国民手机持有量更是爆炸式增长。为了方便Android手机用户能随时随地点到自己喜欢的菜品,提出一种操作简便,功能齐全,占用资源少,能为用户节约流量的的网上订餐应用。在此需求上提出本系统的主要界面与功能。需求界面如下:客户端:1、登陆、注册界面2、显示菜品界面3、搜索菜品界面(按菜品名称、种类、店铺名称进行搜索)4、购物车界面5、在线下单6、菜品详情界面服务器端:1、登陆界面2、菜单管理、商户管理、用户管理、订单管理、分组管理需求实现功能如下:客户端:1、实现客户端与服务器之间的连接2、实现登陆、注册功能3、实现登陆后能浏览到服务器数据,并对数据进行一系列的操作4、能把菜品加入到购物车,并结算生成订单5、把生成的订单信息传回服务器端服务器端:本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj7812191、实现管理员登陆2、实现添加、删除、修改菜品信息3、实现添加、删除、修改商户信息4、实现对客户端传过来的订单进行处理5、实现添加、删除用户列表6、实现不同用户登陆的权限控制该系统的功能模块图如图4-1所示:图4-1系统功能模块图4.1.1功能模块与流程1、客户端的主要功能模块:客户端主要用在给客户浏览菜品以及点菜下单的功能,因此将客户端分为以下6个模块进行设计,每个模块的详细说明如表4-1所示,功能示意如图4-2所示:表4-1客户端概要设计表客户端模块简要说明登录模块在连接上服务器的前提下登陆成功注册模块在链接上服务器的前提下注册成功浏览菜品模块从服务器中读取数据,并把数据封装显示在菜品列表中购物车用户定了菜品之后,所有的订餐信息都显示在这个模块中用户下单用户在菜品列表中找到自己所选的菜品进行下单商品搜索模块按照用户选择的条件从手机数据库中搜索数据本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219图4-2客户端示意图1、服务器端的功能模块:服务器端主要用于管理人员以及商户的登录,管理人员主要用于维护整个系统的内容以及安全性,为商户分配各自的账号和密码,管理所有的商户用户以及菜品。商户登录服务器端主要是为了维护自己的菜品,增加、修改和删除自己商铺的菜品,随时更新信息,方便用户在客户端进行查看,并且当用户提交订单后可以查看自己商铺的订单,并对其进行及时的处理。服务器端的功能模块详细说明如表4-2所示,功能示意如图4-3所示:表4-2服务器端概要设计表服务器端模块简要说明登录模块提供管理员与商户登陆菜单管理对要显示在客户端的菜品进行添加删除和修改操作商户管理对商户信息进行维护用户管理对用户信息进行维护订单管理显示现有的订单信息并给与处理按钮分组管理对菜品的热销程度进行管理本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219图4-3服务器端示意图4.2数据库设计本系统需要一个服务端来为客户端提供数据接口服务,服务端采用MySQL数据库来存放数据,MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。之所以在本系统的开发中采用MySQL数据库来存储本系统的数据,首先是因为MySQL占用内存小,不会影响整个计算机的运行速度,其次是因为MySQL采用的语法的SQL的基本书写语法,便于操作,且又为关系型数据库,易于对数据进行管理。4.2.1数据库的设计原则关于数据库表的设计是每个系统开发最开始也是最主要的步骤,数据库设计的好坏直接关联系统后期开发的难易程度以及后期的可维护性,大型的数据库的设计既要考虑到数据的存取速度又要考虑到系统的安全性。主要的原则有以下几点:1、数据库中的表最好与实体是一对一的关系,若是表与表之间的关联过多最好再写一张关系表,这样可以防止数据查询的时候速度过慢,否则为了加快数据的查询速度往往要增加索引,但是这样就会增加数据库的复杂程度,不利于后期的维护。2、基本表及其字段之间的关系,本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219应尽量满足第三范式。但是,满足第三范式的数据库设计,往往不是最好的设计。为了提高数据库的运行效率,常常需要降低范式标准:适当增加冗余,达到以空间换时间的目的。3、一个数据库中表的个数越少越好。只有表的个数少了,才能说明系统的E-R图少而精,去掉了重复的多余的实体,形成了对客观世界的高度抽象,进行了系统的数据集成,防止了打补丁式的设计。4、一个表中组合主键的字段个数越少越好。因为主键的作用,一是建主键索引,二是做为子表的外键,所以组合主键的字段个数少了,不仅节省了运行时间,而且节省了索引存储空间。5、一个表中的字段个数越少越好。只有字段的个数少了,才能说明在系统中不存在数据重复,且很少有数据冗余,更重要的是要学会学会“列变行”,这样就防止了将子表中的字段拉入到主表中去,在主表中留下许多空余的字段。所谓“列变行”,就是将主表中的一部分内容拉出去,另外单独建一个子表。6、发现某个表的记录太多,例如超过一千万条,则要对该表进行水平分割。水平分割的做法是,以该表主键PK的某个值为界线,将该表的记录水平分割为两个表。若发现某个表的字段太多,例如超过八十个,则垂直分割该表,将原来的一个表分解为两个表。4.2.2权限控制技术RBAC(Role-BasedAccessControl,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。最基本的数据库的权限控制便基于此。但是当用户的数量非常大的时候需要为没有用户分配权限那么这将是一件非常繁琐的事情,因此产生了“组”,每个用户组内有多个用户。除了可给用户授权外,还可以给用户组授权。这样一来,用户拥有的所有权限,就是用户个人拥有的权限与该用户所在用户组拥有的权限之和。在此系统中我将复杂的权限控制问题分为了两种情况处理:操作级权限控制和菜单级权限控制。本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219操作级权限控制是指将对整个系统的不同动作的按钮进行分配,将其分配给不同的用户,分配的方法是在数据库中建立一张表,将每个按钮设计对应的function,也就是说给每个按钮分别分配不同的ID与function,其中ID用于标注不同按钮的不同功能,将每一个功能写成数据库中的一条数据,之后在对应的关系表中为用户分配他所具有的功能的ID就好。菜单级权限控制是指在系统中的资源并不是对所有的用户都共享的,为了保护系统的安全性,就想资源进行的了分配,不用的用户所拥有的资源是不一样的。具体的事实方法是在数据库中建立一张表,表包括两个字段,第一个字段对应的是资源对应的ID,另一个字段对应的是资源的URL地址。在本系统中采用的就是这种菜单级权限控制。4.2.3系统中数据库表的详细设计结构本系统中的信息表主要有7张数据表:管理员表、菜品表、操作菜单表、订单表、座位表、种类表、用户表。每个表的详细设计结构如下:表4-3admins表结构序号列名数据类型长度标识主键允许空说明1idint11是是否auto_increment2loginidvarchar255是账号3anamevarchar255是姓名4passwordsvarchar255是密码5longitudevarchar255是经度6latitudevarchar255是纬度表4-4dishes表结构序号列名数据类型长度标识主键允许空说明1idint11是是否auto_increment2titletext是标题3typeidint11是类型ID4typenametext是类型名称5introtext是详细介绍6img_urlvarchar255是图片7pricedouble11是价格8amountdouble11是数量9merchantvarchar255是所属商户本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219表4-5orders表结构序号列名数据类型标识主键允许空说明1idint是是否auto_increment2useridint是用户ID3usernametext是用户名4seattext是座位5statusint是订单状态6dishesidint是菜品ID7pricedouble是价格8amountdouble是数量9createtimevarchar是订单的创建时间10anamevarchar是商户名11intimevarchar是预计到店时间表4-6seats表结构序号列名数据类型长度标识主键允许空说明1idint11是是否auto_increment2noint11是3stateint11是座位表4-7types表结构序号列名数据类型长度标识主键允许空说明1idint11是是否auto_increment2typenametext是类型名称表4-8users表结构序号列名数据类型长度标识主键允许空说明1idint11是是否auto_increment2loginidvarchar255是登录账号3nametext是姓名4passwordsvarchar255是密码表4-9meau表结构序号列名数据类型长度标识主键允许空说明1idint11是是否auto_increment本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj7812192meauNamevarchar255是菜单名3Hrefvarchar255是菜单链接的url地址5详细设计5.1Android环境搭建任何事物要运行,都要有它的环境,Android也有它的环境才能够运行,下面介绍Android的开发环境配置.搭建开发环境需要的软件:1、操作系统:Windows7或Linux2、软件包:AndroidSDK(SoftwareDevelopmentkitJavaDevelopmentkit)、ADT(AndroidDeveloopmentTool)3、IDE环境:EclipseIDE+ADTEclipse3.3以上4、JDK:JavaRuntimeEnvironment虚拟机、(JDK)JavaDevelopmentkit安装步骤如下:第一步:安装Java虚拟机sun-java6-jdk版本第二步:安装Eclipse3.5工具官网http://www.eclipse.org/downloads/选择版本(图5-1):进行安装图5-1eclipse下载第三步:安装AndroidSDK:首先要下载SDK,可以在这个网址下载Http://developer.android.com/sdk,如图5-2,选择相应的系统进行安装本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219图5-2SDK下载第四步:安装AndroidADT插件运行Eclipse,选择help->installnewsoftware选择add,将会弹出一个框,如图5-3所示。图5-3ADT的安装图点击OK,选择要安装的软件,占next,然后选择接受协议,直到安装成功,重启Eclipse软件,设置AndroidSDKHome,Window->refrence,进行SDK的设置,具体显示如图5-4所示:本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219图5-4设置SDK路径在SDKlocation中输入SDKTools路径:D:androidandroid-sdk点击OK,这样Android环境就已经搭建成功了。5.2Android客户端设计5.2.1登陆注册界面以及与服务器端的连接方式当用户第一次在手机上安装客户端的时候需要手动配置服务器端的IP地址和端口号,在模拟器上的IP与端口号为默认的10.0.0.1:8099,但是显示生活中当你使用手机去下载安装此应用程序之后就需要手动将客户端与服务器端进行配置,由于本次开发使用的服务器并不是真正的服务器,所以就将PC机当成本次系统开发的服务器端,客户端与服务器端的连接步骤如下:1、首先需要将PC机与手机置于无线网络环境中,此时就可以得到一个IP地址,取得IP的方式为在CMD中键入ipconfig命定,就可以看到现在无线网络中的IPV4地址,此地址就是客户端首次安装时需要配置的地址。2、其次是找到服务器的端口号3、在客户端的首次登陆页面上以“IP:端口”的形式输入,等待服务器端的验证。地址配置成功后,客户端才可以访问服务器端的数据以及向服务器端提交数据。本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219配置成功后,用户可以注册自己的订餐系统的账号,包括用户名和密码,注册成功后就会就数据通过URL方式传递给服务器端,服务器就会将用客户端传来的数据存储进数据库中。当用户注册成功后,就可以用你的用户名和密码进行登录,在此情况下你可以选择记住密码的功能,如果你选择记住密码后SharedPreference会存储该密码。当你在文本框中填写完成用户名和密码后,客户端程序用通过URL地址方式将数据进行发送,发送到服务器端就会对数据进行验证,服务器端就会将验证的结果通过write返回,之后客户端会将结果给了json,将此作为一个result,通过onPostExecute(Stringresult)函数进行处理,显示是否登录成功。在本系统主要采用的数据传递的格式是JSON,JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。它基于JavaScript(StandardECMA-2623rdEdition-December1999)的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,C#,Java,JavaScript,Perl,Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。HttpClient是ApacheJakartaCommon下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。本项目的Android客户端就是利用这个组件进行Web服务请求的。在本系统中登陆注册页面的流程图如图5-5所示:本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219图5-5客户端登陆注册流程图当你与服务器端连接成功后就会进入登录界面,登录界面如图5-6所示:图5-6客户端登陆界面当你在登录框中输入你的用户名与密码之后就会将框中的信息传递给后台服务器进行验证,检测是否正确,如果正确就会出现toast框显示某用户登录成功,登录成功的界面如图5-7所示:本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219图5-7登陆成功界面登陆验证的核心代码如下:@OverrideprotectedStringdoInBackground(String...params){//跳转到服务器端进行验证StringurlString=AppConstant.getUrl(getApplicationContext())+"ServletService?Action=login";//通过URl地址的形式进行数据的传递,将参数传递的服务器端urlString+="&loginid="+etLoginID.getText()+"&passwords="+etPassword.getText();Stringjson=httpHelper.HttpRequest(urlString);BaseUtil.LogII(urlString);returnjson;}@OverrideprotectedvoidonPostExecute(Stringresult){super.onPostExecute(result);BaseUtil.LogII("result:"+result);loginAsyncTask=null;本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219dialog.dismiss();if(result.trim().length()==0){toastUtil.show("登录失败");return;}}}}5.2.2菜谱大全界面当toast显示登录成功后,就会通过intent跳转到菜单显示页面,此页面的数据显示是客户端传递一个action给服务器端,当服务器端判断这个action是要显示菜单的,他就会从数据库中查询数据,之后将数据传递给客户端,客户端就可以显示菜单了。显示菜单的详细页面如图5-8所示:图5-8菜谱大全界面菜谱列表的信息是通过url地址将action传递到服务器端,由服务器从数据库中将菜单信息通过json再传递给客户端,再通过List来循环显示出来的。关于图片的加载主要使用的技术是:AsyncImageLoader异步加载图片的技术。异步加载图片的相关技术说明如下:本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219首先我们要在布局文件中设计一个图片的占位:  之后要在代码中将图片的路径加载进来:private Context context = AsyncTaskDemo.this;      private ImageViewimage;      //图片地址      private String imageUrl = "http://dl.iteye.com/upload/attachment/0080/1571/2b9a099a-0a7b-3a60-909e-97a8316716cb.jpg";      public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.asynctask);          getWidget();          loadImage(imageUrl);      }       /** 获得组件 */      public void getWidget() {          image = (ImageView) findViewById(R.id.image);      }      private void loadImage(final String imageUrl) {          ImageAsyncLoader asyncImageLoader = new ImageAsyncLoader();          // 异步加载图片 ,获得图片的地址,设置图片的大小以及样式        Drawable cachedImage = asyncImageLoader.loadDrawable(context, imageUrl, new ImageCallback() {              public void imageLoaded(Drawable imageDrawable, String imageUrl) {  本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219                if (imageDrawable != null) {                      image.setImageDrawable(ImageAsyncLoader.zoomDrawable(imageDrawable, ImageAsyncLoader.dip2px(context, 150), ImageAsyncLoader.dip2px(context, 150)));                  }              }          });          if (cachedImage != null) {              image.setImageDrawable(ImageAsyncLoader.zoomDrawable(cachedImage, ImageAsyncLoader.dip2px(context, 150), ImageAsyncLoader.dip2px(context, 150)));          }    }  加载异步图片的主要的工具如下:private HashMap> cacheMap = null;      private BlockingQueue queue = null;      private ThreadPoolExecutor executor = null;      public ImageAsyncLoader() {          cacheMap = new HashMap>();          queue = new LinkedBlockingQueue();          /**          * 线程池维护线程的最少数量2 
          * 线程池维护线程的最大数量10
          * 线程池维护线程所允许的空闲时间180秒          */          executor = new ThreadPoolExecutor(2, 10, 180, TimeUnit.SECONDS, queue);      }      public Drawable loadDrawable(final Context context, final String imageUrl, final ImageCallback imageCallback) {          if (cacheMap.containsKey(imageUrl)) {  本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219            SoftReference softReference = cacheMap.get(imageUrl);              Drawable drawable = softReference.get();              if (drawable != null) {                  return drawable;              }          }   //handler主要用于数据信息的存储        final Handler handler = new Handler() {              public void handleMessage(Message message) {                  imageCallback.imageLoaded((Drawable) message.obj, imageUrl);              }          };          // 将任务添加到线程池          executor.execute(new Runnable() {              public void run() {                  // 根据URL加载图片                  Drawable drawable = loadImageFromUrl(context, imageUrl);                  // 图片资源不为空是创建软引用                  if (null != drawable)                      cacheMap.put(imageUrl, new SoftReference(drawable));                   Message message = handler.obtainMessage(0, drawable);                  handler.sendMessage(message);              }          });          return null;      }       // 网络图片先下载到本地cache目录保存,以imagUrl的图片文件名保存,如果有同名文件在cache目录就从本地加载      public static Drawable loadImageFromUrl(Context context, String imageUrl) {          Drawable drawable = null;  本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219        if (imageUrl == null)              return null;          String fileName = "";          // 获取url中图片的文件名与后缀          if (imageUrl != null && imageUrl.length() != 0) {              fileName = imageUrl.substring(imageUrl.lastIndexOf("/") + 1);   }          // 根据图片的名称创建文件(不存在:创建)          File file = new File(context.getCacheDir(), fileName);          // 如果在缓存中找不到指定图片则下载          if (!file.exists() && !file.isDirectory()) {              try {                  // 从网络上下载图片并写入文件                  FileOutputStream fos = new FileOutputStream(file);                  InputStream is = new URL(imageUrl).openStream();                  int data = is.read();                  while (data != -1) {                      fos.write(data);                      data = is.read();                  }                  fos.close();                  is.close();                   drawable = Drawable.createFromPath(file.toString());              } catch (IOException e) {                  e.printStackTrace();              }          }          // 如果缓存中有则直接使用缓存中的图片          else {              // System.out.println(file.isDirectory() + " " + file.getName());              drawable = Drawable.createFromPath(file.toString());  本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219        }          return drawable;   }      public interface ImageCallback {          public void imageLoaded(Drawable imageDrawable, String imageUrl);  }  异步加载图片要在manifest中进行配置,具体配置的内容为:    异步加载图片的主要代码如下://客户端通过url将需求传递给服务器端@OverrideprotectedStringdoInBackground(String...params){Stringjson=null;serverUrl=AppConstant.getUrl(getApplicationContext())+"ServletService?Action=getdisheslist&msg="+params[0];//为URL加载一个随机值是为了防止页面的缓存问题出现json=httpHelper.HttpRequest(serverUrl);returnjson;}//服务器接收请求进行处理protectedvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{try{request.setCharacterEncoding("UTF-8");//设置处理请求参数的编码格式response.setContentType("text/html;charset=UTF-8");//设置Content-Type字段值PrintWriterout=response.getWriter();//下面的代码开始使用Commons-UploadFile组件处理上传的文件数据本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219FileItemFactoryfactory=newDiskFileItemFactory();//建立FileItemFactory对象ServletFileUploadupload=newServletFileUpload(factory);//分析请求,并得到上传文件的FileItem对象Listitems=upload.parseRequest(request);StringuploadPath=getServletContext().getRealPath("/UploadFile");//得到该应用下的upload目录在服务器上的绝对路径uploadPath+="\";Filefile=newFile(uploadPath);if(!file.exists()){file.mkdir();}System.out.println(uploadPath);Stringfilename="";//上传文件保存到服务器的文件名InputStreamis=null;//当前上传文件的InputStream对象//循环处理上传文件for(FileItemitem:items){//处理普通的表单域if(item.isFormField()){if(item.getFieldName().equals("filename")){//如果新文件不为空,将其保存在filename中if(!item.getString().equals(""))filename=item.getString("UTF-8");}}//处理上传文件elseif(item.getName()!=null&&!item.getName().equals("")){//从客户端发送过来的上传文件路径中截取文件名filename=item.getName().substring(item.getName().lastIndexOf("\")+1);is=item.getInputStream();//得到上传文件的InputStream对象}本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219}System.out.println(filename);UUIDuuid=UUID.randomUUID();StringuuidFileName=uuid+filename.substring(filename.lastIndexOf("."));//将路径和上传文件名组合成完整的服务端路径filename=uploadPath+uuidFileName;System.out.println(filename);//如果服务器已经存在和上传文件同名的文件,则输出提示信息if(newFile(filename).exists()){newFile(filename).delete();}if(!filename.equals("")){//用FileOutputStream打开服务端的上传文件FileOutputStreamfos=newFileOutputStream(filename);byte[]buffer=newbyte[8192];//每次读8K字节intcount=0;//开始读取上传文件的字节,并将其输出到服务端的上传文件输出流中while((count=is.read(buffer))>0){fos.write(buffer,0,count);}fos.close();is.close();out.println(uuidFileName);}}catch(Exceptione){}}本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj7812195.2.3在线选择座位下单界面当客户选择好自己想要的菜品之后点击该菜品就会进入菜品的详细介绍界面,如果决定要定该菜品,就可以点击下单按钮,就会跳转到选择作为的界面,选择好您要的座位以及数量、预计到店时间后,点击下单就可以生成订单了。本系统的下单功能的流程图如图5-9所示,下单的详细页面如图5-10所示:图5-9在线下单流程图图5-10在线下单界面关于在线下单选座位的核心代码如下:本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219@Override//result是将从服务器端传回的数据进行处理protectedvoidonPostExecute(Stringresult){super.onPostExecute(result);dialog.dismiss();if(result.trim().length()>0){try{//将从服务器端传回的结果集转化成String类型的语句jsonArray=newJSONArray(result);LinearLayoutll=null;for(inti=0;iorg.hibernate.dialect.MySQLDialect//设置数据库连接的URL地址jdbc:mysql://localhost:3306/mealapp_db?characterEncoding=UTF-8//设置数据库的用户名和密码root123//加载数据库驱动com.mysql.jdbc.Driver本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219//将数据库中的表配置到程序中Configuration接口的作用是对Hibernate进行配置,以及对它进行启动。在Hibernate的启动过程中,Configuration类的实例首先定位映射文档的位置,读取这些配置,然后创建一个SessionFactory对象。虽然Configuration接口在整个Hibernate项目中只扮演着一个很小的角色,但它是启动hibernate时所遇到的每一个对象。所以要将数据库中的每一个表在工程中建立一个实体类,并且对其进行配置一个对应的.hbm文件,而且要在Configuration中进行配置。SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。具体的SessionFactory实现代码如下:publicclassHibernateSessionFactory{privatestaticStringCONFIG_FILE_LOCATION="/hibernate.cfg.xml";//用于加载配置文件privatestaticfinalThreadLocalthreadLocal=newThreadLocal();privatestaticConfigurationconfiguration=newConfiguration();privatestaticorg.hibernate.SessionFactorysessionFactory;privatestaticStringconfigFile=CONFIG_FILE_LOCATION;//静态初始化一个sessionFactorystatic{try{本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219configuration.configure(configFile);sessionFactory=configuration.buildSessionFactory();}catch(Exceptione){System.err.println("%%%%ErrorCreatingSessionFactory%%%%");e.printStackTrace();}}privateHibernateSessionFactory(){}/**Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为用户session。以下程序主要用于创建一个session*/publicstaticSessiongetSession()throwsHibernateException{Sessionsession=threadLocal.get();if(session==null||!session.isOpen()){//此处为判断是否有session从而进行session的创建if(sessionFactory==null){rebuildSessionFactory();}session=(sessionFactory!=null)?sessionFactory.openSession():null;threadLocal.set(session);}returnsession;}//创建完session之后就要对其进行配置,以方便使用publicstaticvoidrebuildSessionFactory(){try{本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219configuration.configure(configFile);sessionFactory=configuration.buildSessionFactory();}catch(Exceptione){System.err.println("%%%%ErrorCreatingSessionFactory%%%%");e.printStackTrace();}}//使用完session之后就要对其进行关闭,防止数据泄露publicstaticvoidcloseSession()throwsHibernateException{Sessionsession=threadLocal.get();threadLocal.set(null);if(session!=null){session.close();}}//加载sessionFactory的文件,通过文件配置与数据库的连结publicstaticorg.hibernate.SessionFactorygetSessionFactory(){returnsessionFactory;}publicstaticvoidsetConfigFile(StringconfigFile){HibernateSessionFactory.configFile=configFile;sessionFactory=null;}publicstaticConfigurationgetConfiguration(){returnconfiguration;}@SuppressWarnings("deprecation")//以下用于执行数据库的查询操作publicstaticResultSetqueryBySql(Stringsql){ResultSetrs=null;本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219try{//进行结果集的处理Connectioncon=getSession().connection();Statementsta=con.createStatement();rs=sta.executeQuery(sql);}catch(SQLExceptione){e.printStackTrace();}returnrs;}5.4WebService服务器端设计在服务器端进行设计时主要采用的是MVC三层模式,MVC是一种使用MVC(ModelViewController模型-视图-控制器)设计创建Web应用程序的模式:1、Model(模型)表示数据中的表在工程中所对应的对象,也就是DAO层,用来对数据库中的数据进行读取操作。2、View(视图)主要用来显示数据,也就是servlet层。3、Controller(控制器)主要用于数据的逻辑处理,就是server层它是应用程序中处理用户交互的部分,是整个项目中的核心部分。同时MVC提供了对HTML、CSS和JavaScript的整理处理。 MVC的整个运行过程为:控制器负责从视图读取数据,控制用户输入,并向模型发送数据,也就是说server层链接了dao层与servlet层,让数据可以按照用户的意愿从数据库中读取并显示到页面上。MVC分层有助于管理复杂的应用程序,充分化解了程序的冗余问题,是整个程序在后期的维护中更加方便。例如,可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。5.4.1登陆界面本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219当进入网站首页时,你输入登陆名和密码进行登陆,如果你的登陆名和密码输入错误时,页面会显示登陆失败的提示信息。并且当你用不同的身份进行登陆时,你所能操作的菜单是不同,当你用admin登陆时你是管理员身份,可以操作该系统的所有页面;当你用商户身份进行登陆时,你只能对自己的菜品和订单进行操作。关于服务器端的系统登陆流程图如图5-13,登录界面的页面显示如图5-14:图5-13服务器端登陆流程图图5-14服务器端登陆界面本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219权限设置的实现核心代码如下:if(action.equals("getlist")){//得到登陆页面中输入的用户名,进行权限控制的匹配HttpSessionse=request.getSession();Stringloginid=(String)se.getAttribute("login");Stringtitle=(String)request.getParameter("msg");pageSize=6;PagesHelpermodel=newPagesHelper();//通过数据库的查询将信息显示到页面中model.setTableName("dishesINNERJOINadminsONdishes.merchant=admins.aname");model.setColumnName("*");model.setOrder("dishes.id");//验证是否为管理员登录,与数据库中菜单表进行匹配,从而实现权限控制的问题if(!loginid.equals("admin")){if(title!=null){model.setFilter("andtitlelike'%"+title+"%'");model.setFilter("andadmins.loginid="+"'"+loginid+"'");}else{model.setFilter("andadmins.loginid="+"'"+loginid+"'");}}else{model.setFilter("and1=1");}//以下主要用于分页技术为了使用户查看数据时更加方便//总共多少条inttotalCount=Integer.valueOf(String.valueOf(HibernateSessionFactory.executeScalar(model.ToCountString())));//多少页intpagecount=totalCount%pageSize==0?(totalCount/pageSize)本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219:(totalCount/pageSize+1);currentpage=Math.min(currentpage,pagecount);intstart=(currentpage–1)*pageSize+1;intlimit=pageSize;model.setCurrentIndex(start);model.setPageSize(limit);//处理结果集rs=HibernateSessionFactory.queryBySql(model.ToListString());System.out.println(model.ToListString());request.setAttribute("datalist",HibernateSessionFactory.convertList(rs));//设置属性,进行含参数的跳转request.setAttribute("currentpage",currentpage);request.setAttribute("pagecount",pagecount);request.setAttribute("total",totalCount);request.getRequestDispatcher("../index.jsp").forward(request,response);}5.4.2菜谱管理界面当你登陆成功后,首先进入的界面就是菜品列表界面,在这个界面内,商家可以浏览、修改、删除以及添加自己商店的菜品,及时更新菜品信息以供客户端查看。5.4.3商家管理界面如果登录人员是管理员的话就可以对商户的信息进行增删改查的处理,关于商户信息的查看如图5-15所示,在服务器端添加一个商户的信息如图5-16所示:本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219图5-15服务器端商户管理界面图5-16服务器端添加商户界面当你以管理员身份登陆的时候,你可以对商户的信息进行管理,可以增加、删除、修改一个商户的信息。但是在本系统中只有管理员可以为商户分配账号和密码,这个可以充分维护系统的安全性。防止其他用户恶意修改信息。5.4.4用户管理界面当你以管理员身份登陆的时候,你可以对用户的信息进行管理,可以增加、删除、修改一个商户的信息。关于用户信息的查看页面如图5-17所示:图5-17服务器端用户管理界面5.4.5订单管理界面本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219当你以管理员身份登陆的时候,你可以对所有的订单的信息进行管理,可以修改订单的状态、查看订单信息、删除一个订单。当你以普通商户的身份登陆的时候,你可以对自己商店的订单进行管理,可以修改订单的状态、查看订单信息、删除一个订单。在此系统中如果客户端有新的订单信息发送过来,只要商家将其网页端的信息刷新就可以查看到客户新发送过来的订单信息。订单的详情页面如图5-18所示:图5-18服务器端订单管理界面5.4.6分组管理界面当商户登陆后,你可以对菜品的销售状态进行修改和删除操作。菜品类型的信息查看页面如图5-19所示,菜品类型的修改增加页面如图5-20所示,删除分组的页面如图5-21所示:图5-19服务器端分组管理界面图5-20服务器端修改类型名称界面本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219图5-21服务器端删除分组界面6系统测试6.1软件测试在开发软件系统的过程中,需要面对错综复杂的问题,因此,在软件生存周期的每个阶段都不可避免地会产生错误。测试目的在于:测试是指“用意在发现错误而执行一个程序的过程”;一个好的测试用例是指这个测试用例有很高的概率可以发现一个尚未发现的错误;一个成功的测试是指它成功地发现一个尚未发现的错误[11]。按照软件工程的观点,软件测试主要共包括4个方面:1.单元测试。将代码分模块一项一项进行测试。方法分为两种:功能性测试和结构性测试两种。2.集成测试。这一阶段的任务,是将通过了单元测试的模块组合起来,检查接口是否有问题,从而是软件整体通过测试。3.系统测试。在这个测试是为了发现软件是否满足用户的需求。一般来说,系统测试是功能性测试。在次测试中,我们采用的方法是黑盒测试.黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。系统进行测试的软硬件环境如下:1、4.2版本的Android模拟器本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj7812192、2G以上内存可使用无线的PC机系统进行测试的软件环境环境如下:1、操作系统:MicrosoftWindows7系统;2、支撑软件:Tomcat6.X、JDKl.6、MySQL5.0、火狐浏览器、ADT;6.2主要测试用例6.2.1客户端测试用例本系统的测试主要采用的是功能测试,采用的方法是错误推测法,错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法.关于客户端的具体测试用例如表6-1所示:表6-1客户端测试用例测试模块测试用例测试预期匹配结果用户注册输入已存在的用户名修改原来的用户信息测试正确输入密码为空提示密码不能为空测试正确两次输入密码不一样提示两次输入密码不一样测试正确用户登录没有输入密码错误提示:“请输入密码”测试正确用户名和密码不匹配错误提示:“登陆失败测试正确用户名输入错误错误提示:“登陆失败测试正确用户下单没有选择座位错误提示:“请选择座位”测试正确没有输入订单数量错误提示:“请输入订餐数量”测试正确没有输入预计到店时间错误提示:“请输入预计到店时间”测试正确在客户端主要针对用户注册、用户登录、用户下单这三个主要模块进行了黑盒测试,测试结果都如预期结果一样,基本实现了设计初始想要的功能。关于客户端的部分测试结果的如图6-1、6-2、6-3、6-4、6-5所示:本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219图6-1注册测试一图6-2注册测试二图6-3登录测试一本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219图6-4登录测试二图6-5下单测试6.2.2服务器端测试在服务器端的测试用例的设计采用的也是黑盒测试,使用的方法是错误推测法,错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。关于服务器端的测试用例具体设计如表6-2所示:表6-2服务器端测试用例测试模块测试用例测试预期匹配结果用户登录输入密码为空错误提示:“登陆失败测试正确输入用户名和密码不匹配错误提示:“登陆失败测试正确输入用户名错误错误提示:“登陆失败测试正确本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219菜品管理修改菜品单价时输入非数字不允许输入测试正确不输入菜品名称错误提示:“请输入标题测试正确不选择图片错误提示:“请选择图片测试正确不输入单价错误提示:“请输入单价测试正确权限控制非管理员登陆不能查看商家信息与用户信息测试正确管理员登陆可以查看商家信息与用户信息测试正确商家登陆查看订单只能查看自己商户的订单测试正确在服务器端主要针对用户登录、菜品管理,权限控制这三个主要模块进行了黑盒测试,测试结果都如预期结果一样,基本实现了设计初始想要的功能。服务器端的部分测试结果的截图如图6-6、6-7、6-8所示:图6-6服务器登陆测试一图6-7服务器登陆测试二本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219图6-8服务器权限控制6.3测试总结6.3.1功能性 系统正确实现了通过安卓手机客户端查看菜品、预订下单、查看订单的功能。实现了服务器端菜品管理、商户管理、客户管理、订单管理、类型管理的功能。还完善了关于菜品、商户、用户的增删改查操作,并且系统还实现了将权限控制细化到菜单级的权限控制的功能。  6.3.2易用性 现有系统实现了如下易用性: 1、查询,添加,删除,修改操作相关提示信息的具有一致性、可理解性。 2、输入限制的正确性 输入限制提示信息具有正确性、可理解性、一致性 :  6.3.3可靠性 现有系统的可靠性控制不够严密,很多控制是通过页面控制实现的,如果页面控制失效,可以向数据库插入数据,引发错误。 现有系统的容错性不高,如果系统出现错误,返回错误类型为找不到页面错误,无法回复到出错前的状态,只能在当前页面显示500错误。现有系统的时时性不高,服务器端接收客户端信息时需要手动刷新页面,没有实现自动刷新功能。 本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj7812196.3.4兼容性 现有系统支持 window 下的 IE 浏览器和火狐浏览器。现有系统未进行其他兼容性测试 6.3.5安全性 现有系统控制了以下安全性问题: 1、把某一个登录后的页面保存下来,不能单独对其进行操作不进行登录。2、直接输入某一页面的Url能否打开页面并进行操作不应该允许。 现有系统未控制以下安全性问题: 登陆错误次数限制没有实现。 经过测试,本系统可以提供用户注册及登录、并在注册成会员后方可享受本站提供的服务,如浏览菜单详情、订购菜品、下单等等。7结论这次的毕业设计是对我大学四年学习成果的一次检验和提升,也是我第一次独立的进行应用软件的开发。四年来做过了很多的课程设计,每次都是和同学们分成小组来一起完成,这次的毕业设计是独自一人完成,内心很是慌乱,似乎无从下手了。毕业设计除了巩固了设计语言外,而且了解了很多程序设计的实现方法,对自己专业知识有了一定程度认同。在写代码的过程中,起初遇到不会的问题时,都会特别焦急,因为在外实习没有办法和同学还有老师及时讨论,但是这也让我慢慢学会了成长,靠查阅资料来自己独立解决问题,在后来再遇到的问题时就不会慌张了,而是有条理的去理清问题,搞懂他们之间的逻辑关联,一步步解决问题。Android网上订餐系统是我的第一个基于Android的大型应用软件,这个系统基本上把我之前学习的所有东西都融入了进去,让我对Android的整体架构,编程思想有了进一步的了解,对Android中控件运用的熟练度也有了提高,毕竟是第一个应用软件肯定在各个模块上做得都不是很完美,本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219虽然这次研究课题的多数功能已经实现,系统制作已经完成,但是研究成果仍显粗糙,没有很好体现所用技术的优点,不过我想这些在今后的学习中会不断改进的。在个人看来,这个课题本身并不难,而我们之所以为它付出了这么多的精力是因为我们不会的东西还太多,所以在以后的研究中还需要进一步的学习,这样才能在今后的研究中做得更出色。参考文献1、潘凯华,刘凯华.PHP开发(典型模块大全[M].人民邮电出版社,20112、吴亚峰,索依娜等.Android核心技术与实例详解[M].电子工业出版社,20113、李刚.疯狂Android讲义[M].电子工业出版社,20114、陈昱勋,郑名杰等.GoogleAndroidSDK开发范例大全(第一版[M].人民邮电出版社,20115、Gavalas,Damianos,Economou,Daphne.IEEESoftware.2011,28(1)6、余志龙.GoogleAndroidSDK开发范例大全[M].人民邮电出版社,20097、E2ECloud工作室.深入浅出GoogleAndroid[M].人民邮电出版社,20098、靳岩,姚尚朗著.GoogleAndroid开发入门与实战[M].清华大学出版社,20099、JamesGosling,BillJoy.TheWhile-Acceptloop(Serverside)[J].SunMicrosystemPress,2000.10、高焕堂.Android应用框架原理与程式设计(第三版)[M].清华大学出版社200811、IbrahimOlaniganDesignandImplementationofFoodManagementSystemonAndroidPlatformwithQRCodeSupport[J].VAASANAMMATTIKORKEAKOULUUNIVERSITYOFAPPLIEDSCIENCES,201312、姥海波,基于SSH框架的快速消费品电子商务系统的构建[D].复旦大学,2009.本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj7812191、孙卫琴,李洪成,Tomcat与JavaWeb开发技术详解[M].电子工业出版社,2004.2、陈黎,ASP.NETAJAX程序设计(第1卷:服务器端)[M].人民邮电出版杜.2[107]3、王珊,萨师煊.数据库系统概论[M].4版.高等教育出版社,2006,5.致  谢从确定题目到设计完成历时近半年,在这段时间里,我得到了好多老师、同学以及同事的帮助,非常感谢那些给与我帮助的人。首先,要感谢赵涓涓老师、郭丹老师的指导,没有她们的关心和帮助,我的设计很难顺利完成,感谢她在我遇到问题是的悉心指导,感谢她们在任何时候对于我的提问总能及时并且耐心的解答。其次,感谢我的同学们和同事们,他们在我的工作和生活上都给予了极大的支持和帮助,尤其是在系统开发阶段,甚至放下自己的工作帮助我解决了一个又一个难题,尤其是我们项目组的架构师,是他让我明白了一个项目开发过程中许多细节的问题,让我学习到了许多课本上学不到的知识,非常感谢他的悉心教导,谢谢你们。最后,感谢四年里陪伴我的同学、朋友们,有了他们我的人生才丰富,有了他们我在奋斗的路上才不孤独,谢谢你们!本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219外文原文IbrahimOlaniganDESIGNANDIMPLEMENTATIONOFFOODMANAGEMENTSYSTEMONANDROIDPLATFORMWITHQRCODESUPPORTTechnologyandCommunication20131、ACKNOWLEDGEMENTToAllahta’ala(GodtheExalted),whograntsmeeaseandsuccouramidstthedifficultiesoflife.Tomymotherwhohastaughtmethathardworkandbeingpatientandprayerfuloverwhatonehavenocontroloverarevitalforsuccess.Tomylatefather,whohasinstilledinmedisciplineandtrustworthiness,andhasbeenmybestrolemodelinthisera.Tomysiblings,whohavealwayssupportedmeandtrustedmybigdecisionsinlife.Tomyclosefriendswhowerealwayscheeringmeon.IamgratefultothemallespeciallyRafiatSanni,IbrahimAfolabi,NimatallahKing,SherifahAlagbe,LawalOlufowobi,AbdulMajeedFolorunshotomentionafew.Tomysupervisor,YangLiuwhomademerealiseIcanalwaysbebetter.ToSantiagoChavezandJarmoMakeläwhomadecomplextopicslookeasyandtoalltheamazingteachersIhavehadthehonourofstudyingwith.Iamgratefulforthewonderfulandchallengingtimesyougaveme.本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj7812191、ABSTRACTVAASANAMMATTIKORKEAKOULUUNIVERSITYOFAPPLIEDSCIENCESDegreeProgrammeinInformationTechnologyAuthorIbrahimOlaniganTitleDesignandImplementationofFoodManagementSystemonAndroidPlatformwithQRCodeSupportYear2013LanguageEnglishPages53NameofSupervisorYangLiuFoodwastageisincreasinglybecomingatopicofconcerndueprimarilytothenegativeimpactithasontheeconomicandagriculturalindustry.ResearchhasshownthatinFinland,householdsseemstobethehighestproducersoffoodwasteandsomeofthis,isasaresultoffoodbeingdisposedbecausetheyareexpired.Themainobjectiveofthisthesiswastoprovideaviablesolutionthatallowsmobileuserstotrackthelifecycleoftheirfoodinventoryefficiently.Thisprojectalsoprovidesademoofbetterimplementationwithfutureenhancementinfoodpackaging.ThisprojectwasdevelopedfortheAndroidplatform,usingFacebookintegrationtosimplifytheuserregistrationandawebserverforstoringtheinformation.Themobileapplication,whichactsastheclient-sidecomponentwasdevelopedandbuiltintheEclipsesoftwareenvironmentusingtheAndroidSDKalongsideexternallibraries,FacebookSDKforFacebookintegrationandZBarScannerLibrarytoreadQRcode.Theserver-sidecomponentwasdevelopedusingtheNotepad++softwareforthePHPcodeandphpMyAdminforthedatabasemanagement.TheendapplicationisabletoregisteruserwiththeirFacebookaccountandfoodentriescanbeaddedanddeletedbothonthemobiledeviceandtheserver.Keywords:Android,Food,Client,Server,PHP,MySQL1INTRODUCTIONTheprevalenceoffoodwastehasbeenasubjectofinterestanddiscussioninrecentyearsandresearchesarebeingdonetofindeffectivewaystocurbit.Ithasbeenidentifiedasaprimaryissueinthesustainabilityoffoodproductionandconsumption,inadditiontothesustainabilityoffoodsupplychains.AccordingtoHeta-KaisaKoivupuro,foodwastecanbedividedintoavoidableandunavoidablewaste.Avoidablewasteincludesediblefoodandspoiled/damagedediblefood,whileunavoidablewasteconsistsoftheinediblefoodlikebones,fruitpeels,andeggshellsamongothers./1/AresearchshowsthatinFinland,5%ofpurchasedfoodiswastedinhouseholdsandanaveragepersonwastedabout20-30kgoffoodinayear.Theaveragetotalamountoffoodwastedinhouseholdsyearlyisabout120-160millionkilogrammes./1/Householdwastagecouldbeintentionalornot.Manyofthefoodwastageinhouseholdcouldbeasaresultof本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219forgetfulnessornegligenceforthefoodexpirydate.IncountrieslikeFinlandwithhighcostofliving,consumersareinclinedtobuyfoodnearingitsexpirydateduetothediscountshopsellersattachperiodically.1.1BackgroundTheadvancementoftechnologyhasbroughteasetothestressfullifeofhumanbeings.Theprevalenceofmobiletechnologiesenablesustoconstantlybeintouchwiththeworld.Byit,differentaspectsofourlivesarebroughttogetherforeasyaccess.Forinstance,apersoncouldbemakingfinishingtoucheswithhispresentationfornextday,discussingwithhis/herspouseaboutdinner,bookingaflightforaweekendtrip,tomentionafew,allinthesameplaceandlikelysimultaneously.Theideaforthisprojectwasbornwithmyobservationofhoweasilyfellowstudentsdisposeexpiredfoodproducts.Duetothehighcostofliving,manystudentstendtobuyfoodproductswhichareclosetotheirexpirydateandsometimesinlargequantityduetotheirdiscountedprices,asshopsattempttogetasmuchoftheseproductsoutoftheirinventorytoreducetheirlosses.Withtheproliferationofsmartphones,Ithoughtofthefeasibilityofusingthesmartphoneasalifecycletrackerforourfoodinventory,andberegularlyinformedofthoseproductswhoseexpirydateiscloseby.Itisexpectedthatthiswouldhelptoreducetheamountoffoodspillageinthehouseholds.1.2ObjectiveTheobjectiveofthisprojectwastocreateamobileapplicationtoassistusersinmanagingtheirfoodinventory.Theapplicationwouldstoreanddisplaybasicinformationabouttheinventorycontentsandalertstheuserofthefoodproductswhichareduetoexpirethenextday.Consequentially,usersmaytakeactionstoavoidtheconcernedproductsgetwastedorspoiled.Itisbelievedthataconsiderableamountoffoodwastewouldbeavoidedinhouseholdsiftheoccupantsarewell-informedofthetimelineoftheirfoodstocks.Provisionshavealsobeenmadetoallowforthemulti-deviceuse.Mostfoodmanagementapplicationsavailablearemainlyconcernedwithhelpinguserswatchtheirweightandfoodin-takeandgenerallyrequireslotsofinformationfromuser.Theadvantageofthisprojectistheuseofthesimplestinformationoffoodproductstomonitortheinventory.Withaneyeonthefuture,ademosolutionwasintegratedtoshowcompatibilitywithfutureadvancementinfoodpackaging.2INTRODUCTIONTOPROJECTTOOLSThisprojectutilisesvarioustechnologiesandtools.TheyareAndroid,QRCode,HypertextPreprocessor(PHP),MySQLdatabaseandphpMyAdmin.2.1AndroidAndroidisanOpenSourcesoftwarestackformobiledeviceslikephonesandtabletsandothers.ThestackcomprisesofaLinux-basedkernel,middlewareandmobile本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219applications.ItisdevelopedbytheOpenHandsetAlliancespearheadedbyGoogleInc.ItislicensedundertheApacheSoftwareLicense,2.0,whichiscommonlyabbreviatedas“Apache2.0”.2.1.1ApplicationOverviewAnAndroidapplicationisusuallymadeofanumberofuserinterfacecomponents,calledActivities.Anactivityisacomponentthatprovidesascreenforuserinteractiontoperformanaction,suchastakeaphoto,orviewgallery.Typically,anapplicationoftenhasamainactivitybywhichotheractivitiesarecalled.Anapplicationmayalsohavenon-visualcomponentsthatareessentialtoitsoperations.ThesecomponentsareServicesandBroadcastReceiver.AserviceisanAndroidcomponentusedtoperformlong-runningoperationsinthebackground,i.e.notvisibletotheuser,andcouldalsobeusedbyanapplicationtoexposesomeofitsfunctionalitytootherapplications./2/ItisregisteredusingthetagintheAndroidManifest.xmlfile.ABroadcastReceiverisanAndroidcomponentwhichreceivesandhandlesabroadcastsentbythesystemoranyapplication.Abroadcastisasystemmessagethatissentwhenanapplicationorsystemoccurs.Forinstance,abroadcastmessagemaybesentbytheorientationofthephoneorthebatterystatuschanges.ItisstaticallyregisteredinanapplicationusingthetagintheAndroidManifest.xmlfile.CommunicationbetweentheapplicationcomponentsisdoneusingIntents.Intentisanabstractdescriptionofanoperationtobeperformed.ItismostlyusedtostartanActivity.ItcanalsobeusedtosendabroadcastmessageandcommunicatewithServices./3/2.1.2AndroidDevelopmentAnAndroidapplicationcanbedevelopedusinganAndroidSDKandacompatiblesoftwaredevelopmentenvironment.TheAndroidSDKprovidesdevelopswiththenecessarysetoftoolsandlibrariesneededtobuild,testanddebugapplicationsontheAndroidplatform./4/Itisreadilyavailablefordownload,alongwithneededsupport,ontheAndroidofficialwebsite.ThisprojectwasbuiltintheEclipsesoftwaredevelopmentenvironment,whichsupportsmultipleprogramminglanguagesandoperatingsystems,anditisfreetouseundertheEclipsePublicLicense.2.1.2.1AndroidManifest.xmlTherequirementforallAndroidapplicationistohavetheAndroidManifest.xmlfileinitsrootdirectory.ItpresentsvitalinformationabouttheapplicationtotheAndroidsystemthatthesystemrequiresbeforerunninganycodeoftheapplicationlSomeoftheinformationfoundintheAndroidManifest.xmlfileincludes,lTheuniquepackagenamefortheapplicationlTheminimumAndroidAPIlevelrequiredfortheapplication.lDescriptionoftheapplication’scomponents,i.e.theactivities,services,broadcastreceiversandcontentprovidersthatmakeuptheapplication.lListsoflibrarieslinkedtotheapplication.lDeclarationofpermissionsneededtoaccessprotectedAPIcomponents,amongothers./5/本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj7812192.1.3AndroidEmulatorTheAndroidSDKprovidesanemulator,whichisavirtualmobiledevice,whichrunsonthecomputerandenablestheuserdebugandtestapplicationswithoutaphysicaldevice.Thespecificationoftheemulatorisdefined,andcanbeedited,bythedeveloperusingtheAVDManager,whichisagraphicaluserinterfaceusedtoconfigureandmanageAVDs.TheAVDcanbeconfiguredasdifferentdevices,screensizes,Androidtargetlevels.Forthisproject,IhaveconfiguredtheAVDasaNexusdevicewithascreensizeof4.65incheswitharesolutionof720by1280pixels.TheAVDrunsAndroidJellyBean,version4.2.2,whichisequivalenttoAPIlevel17.2.1.4SQLiteDatabaseSQLiteisanin-processlibrarythatimplementsaself-contained,serverless,zero-configuration,transactionaldatabaseengine.Itisfreetouseforanypurpose,beitprivateorcommercial.Itiscompactandlightweighthenceitiseasilydeployabletoanysystem.ItissupportedbythemanyUNIXandWindowsoperatingsystemsandcanbeportedeasilytoothersystems.ThedatatypessupportedareTEXT(toholdstringvalues),INTEGER(toholdintegervalues)andREAL(toholdprecisionfloating-pointvalues)./6/AndroidprovidestheSQLitedatabasetoallowfordatastorageinanapplication.AnapplicationintheAndroidsystemmayhaveaprivatedatabaseandthiscanonlybeaccessedandmanagedwithintheapplicationcode.2.2QuickResponseCode(QRCode)TheQRcodeisthetrademarkforatypeoftwo-dimensionalbarcode.Itisanopticalmachine-readablelabelusedtostoreinformationabouttheitemitisattachedto.ItwasoriginallydesignedforuseintheautomotiveindustrybyaToyotasubsidiaryinJapan,buthasbecomewidelypopularforotherusagesbecauseitisfastertoreadandhavemorestoragecapacitythanstandardbarcodes.QRcodesareusuallyusedtostorecontactinformation,UniformResourceLocations(URLs),phonenumbers,andtext.2.3PHP:HypertextPreprocessor(PHP)PHPisaserver-sidescriptinglanguageprimarilydesignedfortheproductionofdynamicpages.ItwascreatedbyRasmusLerdorfin1995anditisnowbeingdevelopedbythePHPgroup.PHPisfreesoftwarereleasedunderthePHPLicense,whichmakesitincompatiblewiththeGNUGeneralPublicLicense(GPL)duetorestrictionontheuseofthetermPHP./7/Itiscross-platformsoftwaremostlyusedintheserver-sidewebdevelopmentanditisnowbeingusedintheclient-sideUserInterface(UI).IthasbeenusedinthecreationofmanyWebcontentmanagementsystemslikeDrupal,WordpressandMoodle.2.4MySQLMySQLisacross-platformopensourcerelationaldatabasemanagementsystem.(RDBMS).ItwascreatedbyMichaelWidenius,whopartlynameditafterhisdaughter,本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219My.Itwasinitiallyreleasedonthe23rdofMay,1995undertheGPLLicense.ItwasoriginallyownedbyaSwedishfirm,MySQLAb,whichisnowownedbyOracle.ItiswritteninCandC++.Forthisproject,theMySQLdatabasewasmanagedusingphpMyAdmin.2.5phpMyAdminPhpMyAdminisafreeandopensourceGUItoolwritteninPHP,whichisusedforwebdatabaseadministration.Ithascross-platformsupportforthemajoroperatingsystemsanditwasfirstreleasedinthe1998undertheGNUGeneralPublicLicense.Ithasanintuitivewebinterface,andcoresupportformanyMySQLfeatures.Italsohasdatamanagement(includingimportandexport)supportformanyformatslikeCSV,SQL,PDF,XML,amongothers./8/2.6FacebookIntegrationFacebookisapopularsocialnetworkingplatformstartedin2004byMarkZuckerbergandcoupleofhisfriends.Itisregularlyexpandingandboastsof1billionusersasinOctober2012.Duetoitslargeuserbase,Facebookprovidesanavenueofservicesfordeveloperstotapintoitswealthofinformation.Forthepurposeofthisproject,IhaveintegratedaFacebookloginfunctionalitytoaccessbasicinformationabouttheusers,withtheirpermission,forregistrationontheserver-sideoftheproject.3SYSTEMOVERVIEW3.1ChoiceofAndroidAndroidhasbeenchosenforthisproject,primarilyfortheopen-sourcenatureoftheplatformaswellastheeaseofdevelopmentanddeploymentwiththeextensivesupportsprovidedontheofficialAndroidwebsiteandmajordevelopers’forums,suchastheStackOverflowwebsite.Italsohasthelargestmarketshareandhasnativecompatibilitywithtablets.Italsosupportscrossplatformapplicationdevelopment,i.e.developerscandevelopAndroidapplicationinMac,WindowsandmanyUNIX-basedoperatingsystemslikeUbuntu.3.2RequirementsTherearecertainrequirementstheproposedapplicationmustfulfilltomeettheobjectivesoftheproject.Therequirementsontheclient-sideare:lItmusthaveauserinterfacelItmustbecompatiblewithmostAndroiddevices.lItmusthaveFacebookintegration.lItmusthaveQRcodereadingcapabilities.lItshouldhavetheabilitytostoredataintheserverTherequirementsontheserver-sideare:本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219lDatabasemusthaveausertablelDatabasemustbededicatedfoodtablesforusers.lDatabasemustbeabletocommunicatewithclient-sideapplication.3.3SystemArchitectureThisapplicationconsistsofanAndroidapplicationontheclientsideandPHP-MySQLapplicationontheserverside.TheAndroidapplicationisthepartvisibletotheuserandoneitinteractswith,whilethePHP/MySQL-basedserver-sidecomponentservesasaninterfacebetweentheAndroidapplicationandthedatabaseontheserver.Theusecasefortheclient-sideapplicationisseeninFigure5below,showingallthecasesavailabletotheuserintheapplication.4CLIENT-SIDEDESIGN&IMPLEMENTATIONTheclient-sideapplicationisdesignedbasedontherequirementsstatedin3.2.1,usingtherightsetsoflibraries,databasedesignandprogrammingmethodswhileprovidingagooduserexperience.4.1DevelopmentOverviewThemobileapplicationwasdevelopedintheEclipsesoftwareusingtheAndroidSDKdownloadedfromtheAndroidofficialwebsite.Thisprojectusesthreejavapackages,namely:lcom.olanigan.foodlcom.olanigan.datalcom.olanigan.utilsThefoodpackagecontainsalltheinterface-relatedclasses,whilethedatapackagecontainsalldatamanagementclasses.Utilityclassesarefoundundertheutilspackage.ThefigurebelowshowsthestructureoftheprojectintheEclipsesoftware.TheapplicationisconfiguredtoaminimumAPIlevelof8anddeclarespermissionstousetheWAKE_LOCK,INTERNETandCAMERAfunctionalitiesofthesystem.ThefiguresbelowshowtheconfigurationoftheAndroidManifest.xmlfile.Allthetitlesoftheapplicationaredefinedunderthetag,alongwiththelistofcomponentsandlibrariesused.Thefigurebelowshowsabreakdownoftheapplicationstructure.4.2UserInterfaceClassesTheuserinterfaceinAndroidisdisplayedusingclassesthatextendtheActivityclassdirectlyorindirectly.TheclassesusedforuserinteractioninthisapplicationareMainActivity,NewEntryActivityandFbLoginActivity.TheMainActivityclassisthemainuserinterfacefortheapplication.Itdisplaystheregisteredfoodinventoryoftheuserandhasthemainmenubywhichotheractivitiescanbeaccesses.TheNewEntryActivityclasshandlesboththemanualentryaswellastheQRcodeentry本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219oftheinformationaboutthefoodtobemonitored.ItiscalledbytheMainActivityclassandreturnedtoitaftertheentryiscompleted.Itdisplaysaformthatrequestsinformationaboutthenameofthefood,itsexpirydateandremindertime.TheclassdisplaystheresultoftheQRcodescanninginitiatedaftertheuserchoosestheQRcodeentryintheMainActivityinterface.ThecustomizedQRcodeusedforthisproject,containsinformationaboutthenameofthenewfood,andbest-beforedate,andisscannedusingtheZBarScannerActivityclass,whichiscalledfromanopensourceQRcodescanninglibrary,ZBarScannerLibrary.Aftertheuserfillsintheformcompletely,theclasshandlesthestoringofthenewfooddataintothedatabase,aswellassetanalarmnotificationtotheuser-definedtimeadaybeforetheexpirydate.Afterthecompletionofitstaskexecution,itreturnstheusertotheMainActivityclasswheretheupdatedfoodlistingisdisplayed.TheFbLoginActivityclassistheentrypointintotheapplicationandithandlestheloginandlogoutoftheuserusingFacebookauthentication.Unliketheotheractivities,itextendsFragmentActivityandactsasthemaindisplayforthreeFragmentclasses,whicharetheSplashFragment,InfoFragmentandUserSettingsFragmentclasses.TheSplashFragmentclassdisplaystheFacebook-customloginbutton.Whenclicked,thebuttoncallstheFacebooklogindialogfromtheFacebookSDKlibrary.TheInfoFragmentclassiscalledafterasuccessfulFacebookloginbytheuser.Itretrievesbasicinformationabouttheuserandthisinformationisusedeithertoregisterthenewuserintotheapplicationdatabaseortoretrievethelatestfoodlistingfromtheapplicationdatabase.TheInfoFragmentclassredirectstheusertotheMainActivityUI.TheuserSettingsclassdisplaystheFacebooklogoutbuttonbywhichtheuserexitsfromthemainapplicationandredirectstotheFacebookloginpageafterexecution.ThisclassisprovidedbytheFacebooklibrary.4.3DataManagementClasses4.3.1DataModelingAFoodclassactsasthemodelobjectfortheapplication.Itwascreatedtoenableuniformityandeaseofdatamanagement.Thepropertiesofthemodelincludethenameofthefood,itsexpirydate,anditsdateofentryaswellasthechosentimetoberemindedofitsexpiry.4.3.2DatabaseManagementDatapersistenceinanAndroidapplicationisdoneprimarilywiththeSQLitedatabaseprovidedasalibrarycomponentintheAndroidsystem.ApplicationsthatutilisetheSQLitedatabase,usuallyhavededicatedclassestohandlethemanagementofthedatabase.TheDatabaseHelperclasswascreatedforthatpurpose.ItextendstheSQLiteOpenHelperclassandhandlesalltheinternaldatabasefunctionsoftheapplicationincludingopeningandclosingthedatabase,executingqueriesandhandlesquerieswiththeFoodmodel.ItalsodoesoperationontheserverdatabaseusingthemethodsdefinedintheUrlHandlerclass.本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219Forthisproject,thedatabasewasnamed“Thesis”anddefinedintheDatabaseHelperclassasDATABASE_NAME.Also,onlyonetablewascreatedinthedatabase.Thetableisnamed“Food”anddefinedintheDatabaseHelperclassasFOOD_TABLE.Thetableiscreatedwhenthedatabaseisfirstcreatedandcanonlybestructurallymodifiedwhenthedatabaseisupgraded.Itisusedtostorethefoodentriesoftheuserandthefinalversionofthedatabaseisthree(3)duetothestructuralchangesithasundergoneduringdevelopment.4.4ServerCommunicationClassesDatacommunicationbetweentheapplicationandexternalserverishandledbytheUrlHandlerclass.Itsoperationsincluderetrievingandregisteringuserandfoodinventoryinformation.TheclasshasnumerousfunctionswhichsendsHTTPrequesttotheserver.TherequestsconsistoftheURLaddressoftheindex.phpfileontheserverandparametersthatcontaintheinformationoftheuserandfoodentries.Thetablebelowhighlightsthecommonparametersusedintherequest.Thenumberofparametersthataccompanyarequestdiffersdependingonthedesiredoperationtobeperformedontheserver.However,thetagparameteristheprimaryparameterthatinformstheserverwhatoperationtoperform.Inthisapplication,alistoftagswascreatedasstringandtheoutlineofthesetagscanbefoundinthetablebelow.4.5UtilityclassesTheNotifierclassactsasaBroadcastReceiverfortheapplication.ItinheritsaBroadcastReceiverclass.TheclassisnotifiedbytheAndroidsystemwhenanalarmWAKE_UPeventoccursafterthecountdownvaluesetintheNewEntryActivityorQREntryActivityclasseselapses.TheonReceivefunctionoftheclassisautomaticallycalledtohandletheevent.ThesetNotificationfunctionisthencalledtocreateanewnotificationinthesystemnotificationbar,informingtheuserofthenameofthefoodthatisexpectedtoexpirethenextday.5SERVER-SIDEDESIGNANDIMPLEMENTATIONThischapterdealswithdataretrievalandstoragefromthedatabase,initiatedbyHTTPrequestfromtheclient-sideapplication.PHPisusedtohandletherequestfromtheapplicationandperformsappropriatetasksontheMYSQLdatabase.Italsoinformstheapplicationofsuccessorfailureoftheapplication.5.1DevelopmentOverviewThePHPdevelopmentwasdoneintheNotepad++software,whichisafreeandopenWindowsmulti-languageeditor.Itprovidescoloredsupportfornativefunctions,aswellascodeindentation.Itdisplaystheeditedfilesintabsforeaseofaccessingandeditingmultiplefilessimultaneously.TheserverdatabasewasmanagedbyafreePHP-basedGUItoolnamedphpMyAdminwhichwasreadilyavailableontheserver.5.2DatabaseDesign本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219Thedatabasefortheprojectwasdesignedbasedontherequirementslistedinchapter3.2.Atablenamed“users”iscreatedtostorethebasicinformationofusersthatusestheapplication.ThisinformationincludestheFacebookID,firstnameandthelastnameoftheuser,whichareprovidedbytheFacebookserverviathemobileapplication.Thetablehasfourcolumns.Theyarefacebook_idfortheFacebookIDoftheusers,first_name,last_nameforthefirstandlastnameoftheuserrespectivelyandcreated_atforthedatetheuserinformationwasstoredinthedatabase.Thefacebook_idcolumnactsastheprimarykeyforthetable.Eachuserisexpectedtohaveadedicatedtableinthedatabasetostorefoodentries.Inordertohavethis,adynamicnamingconventionisusedforthesetables.TheFacebookIDoftheuserisusedasanunderscoresuffixtotheword,hencethenameofeachfoodtableisintheformatfood_[FacebookID].Forinstance,iftheFacebookIDofauseris12345,thefoodtableforthisuserwouldbenamed“food_12345”.Thetablehasfivecolumns;idcolumnwhichactsastheprimarykey,food_namecolumnforthenameofthefood,expiry_dateandentry_datecolumnsfortheexpirydateaswellasthedateofentryforthefood,andtheremindercolumnforthetimesetbytheusertoberemindedthedaybeforetheexpirydate.5.3PHPClasses/FilesThreePHPfileswerecreatedtohandlethelogicalanddatamanagementoperations.ThemainPHPfileistheindex.phpfilewhichhandlestheHTTPrequestsfromtheapplication.Theotherfilesarethefunctions.phpfile,whichcontainsthedeclarationofthefunctionsusedintheindex.phpfile,andtheconnect.phpfilewhichcontainsthelogindetailsforauthorizedaccesstothedatabase.Thesefileswerestoredinmystudentaccountonthecc.puv.fiserver.5.3.1ConnectPHPfileTheconnect.phpfilecontainstheadministrativeconfigurationoftheMySQLdatabaserequiredtodooperationsonit.Duetotheadministrativerightsgrantedbythisfile,theuserapplicationmaymakechangestothecontentofthedatabase.ThefigureshowsthattheMySQLusedforthisprojectishostedonmysql.cc.puv.fiwhichistheofficialMySQLserverforVAMKUniversityofAppliedSciences.Theserverisonlyaccessiblelocally.Forthisproject,IhaveusedmystudentaccountontheserverandaVPNconnectiontoallowaccesstothePHPfilesaswellasmanagingthedatabaseremotely.ThefilealsodefinestheConnectclasswhichhandlesconnectiontothedatabase.ThefiguresbelowshowstheclassdiagramaswellasthePHPcodefortheConnectclass.Theclasshasadefinedconstructoranddestructor.AclassconstructorisamethoddefinedtobecalledwhenanewinstanceoftheclassiscreatedandintheConnectclass,itcallstheconnectmethod.Therefore,aconnectionismadetothedatabasewheneveraninstanceoftheConnectclassiscreated.Whenaclassisnolongerreferenced,thedestructormethodiscalled.Thedestructorofthisclasscallstheclosemethod,whichclosesconnectiontothedatabase.Intheconnectmethod,thenativeMySQLfunction,mysql_connectisusedtoconnecttothedatabaseserverusingthepre-definedconfigurationvaluesandthefunction,本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219mysql_select_dbisusedtoselectthespecificdatabaseforthisproject,asshowninline25and27ofthefigurebelow.TheclosefunctionisdefinedtoclosethedatabaseconnectionbycallingthenativeMySQLfunction,mysql_close.5.3.2FunctionsPHPfileThefunctions.phpfiledefinestheDbFunctionsclass.TheDbFunctionsclassdefinesmethodsfordatabaseoperationswhicharecalledfromtheindex.phpbasedonthevalueofthetagparameterintheHTTPrequest.Thefigurebelowshowstheclassdiagramfortheclass.AglobalvariabledbisdeclaredandusedasaninstanceoftheConnectclass.TheassignmentofthevariabledbasanewinstanceofConnectclassisdoneintheconstructormethodoftheclass,andtheconnect.phpwasincludedtoachievethis.Theclasshasnodefineddestructormethod.Theclasshasfivemethodsdefinedfordatabaseoperation,namely:isUserExist,storeUser,getFoodById,storeFoodanddeleteFood.TheisUserExistmethodisusedtocheckifauserexistsusingitsuniqueFacebookIDasanargument.ThemethodcallsaMySQLquerythatselectsthefacebook_idcolumnfromtheuserstablewithaconditionalstatementtocheckiftheFacebookIDoftheuserexistsinthecolumn.ThestoreUsermethodisusedtostoreinformationaboutanewuserintheuserstable,andalsousedtocreateadedicatedfoodtablefortheuserusingadynamicnamingsystem.Ittakesthreearguments,namely:theFacebookID,firstnameandthelastnameoftheuser.Itfirststoresthenewuserinformationintheuserstable,andonsuccessfulcompletion,itcreatesanewtablefortheuserusingtheFacebookID.ThegetFoodByIdmethodisusedtoretrieveallthefoodentriesofaparticularuserusingtheFacebookIDoftheuserasargument.ThestoreFoodmethodisdefinedtostorefoodentriesfromthemobileapplicationtotheserver.Ittakesfive(5)arguments,oneofwhichistheFacebookIDoftheuserwhichisusedtodeterminethetabletostoretheentryintobasedonthedynamictablenamingsystem.Theotherargumentsarethefoodinformationprovidedbythemobileapplication.Theyincludethenameofthefood,itsexpirydate,itsentrydateandremindertimeforthefood.ThedeleteFoodmethodisdefinedtodeleteaparticularfoodentry.IttakesthreeargumentswhicharetheFacebookIDoftheuser,thenameofthefoodanditsexpirydate.TheFacebookIDisusedtoselectthetableandtheotherargumentsareusedtoselectthespecificentrytodelete.Thenameofthefoodanditsexpirydatearetogetherdistinctiveofeachfoodentry.TheIDofthetablewasnotusedforthedeletionduetothepossibilityofbeingdifferentfromitscorrespondingvalueintheclient-sideapplication.5.3.3IndexPHPfileThisfilethathandlescommunicationbetweenthemobileapplicationandtheserverdatabase.ItperformslogicaloperationsbasedonthevalueofthetagparameteroftheHTTPrequestandencodestheresponseinJSONformat,whichishandledbythemobileapplication.ItusestheDbFunctionsclass,definedinthefunctions.phpfile,toperform本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219operationonthedatabase.AllthelogicaloperationsareenclosedinanIFconditionalstatementwhichensuresthattagparameterissetanditisnotempty,asshownonline3ofthefigureabove.ThetagparameterisusedtoselectwhichoperationtheapplicationintendstoperformonthedatabasewheneveritsendsanHTTPrequestwhileholdingthevalueoftheFacebookIDoftheuserprovidedbytheFacebookserver.AllHTTPrequestsmusthavethetagandfacebook_idparameters.showthestoringofthevaluesoftheseparametersintheircorrespondingvariables.Therequire_oncestatementonline10isusedtoincludethefunctions.phpfileinthecodeandensuresitisonlyincludedonce.ThevariabledbFunctionsisdeclaredonline11,asaninstanceofDbFunctionsclassdeclaredinthefunctions.phpfile.Line13showsthedeclarationoftheresponsevariable.ItisdeclaredasanarrayandprimarilycontainsthevalueofthetagparameterintheHTTPrequestandvaryingvaluesofsuccessanderror,whicharedeterminedattheendofeachtag-basedlogicaloperation.Thevaluesofthesuccessanderrortagsarebothzero(0)bydefault,andonlyoneofthesetagschangesitsvaluetoone(1)aftertheexecutionofthetag-basedoperations.Thevalueofthesuccesstagchangestoone(1)iftheoperationwasexecutedsuccessfully.Otherwise,thevalueoftheerrortagchangestoone(1).InthecasewhenthemobileapplicationsendsanHTTPrequestwiththelogintag,therequestwouldonlycontainthetagandfacebook_idparameters.Thefacebook_idvariableisusedonline19,asanargumentintheisUserExistfunctionoftheDBFunctionsclasstocheckiftheinformationabouttheuser’sFacebookIDexistsinthedatabase.Iftheuserinformationispresent,asuccessmessageissentbackasresponseasshownonline22orelse,anerrormessageisreturnedasshownonline26.AlltheresponsemessagesareencodedusingtheJSONformat.Iftheuserapplicationwantstoregisteranewuser,anHTTPrequestismadewiththeregistertag.Thisrequestcontainsthedefaultparameteraswellasthefirst_nameandlast_nameparameterswhichrepresentthefirstnameandthelastnameoftheuserrespectively.ThisinformationisprovidedbytheFacebookservertothemobileapplication.TheisUserExistfunctionisusedtocheckiftheuseralreadyexistsinthedatabaseonline36.Iftheuseralreadyexists,anerrormessageisreturned.Otherwise,thenewuserinformationisstoredinthedatabaseusingthestoreUserfunctiononline43.Online44,aconditionalstatementisusedincheckifregistrationwassuccessfulandifitwas,asuccessmessageisreturnedasshownonline51.Iftheregistrationfailed,anerrormessageisreturnedasshownonline53.AnHTTPrequestcontainingtheaddtag,isanintenttoaddanewfoodentrytothedatabase.Thisrequestincludesparametersforthenameofthefood,itsentrydate,itsexpirydateaswellastheuser-setremindertime,alongsidethedefaultparameters.ThestoreFoodfunctionoftheDbFunctionsclassiscalledtoaddtheinformationaboutthenewentryinthedatabaseasshownonline65.AlltheparametersoftheHTTP,exceptthetagparameter,supplythevaluesoftherequiredargumentsforthestoreFoodfunction.Theconditionalstatementonline67isusedtocheckforsuccessfuldatabaseentry.Asuccessmessageisreturnedifanewentrywasmade,andreturnsanerrormessagetotheuser本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219applicationiftheentryfailed.Iftheenduserintendstodeleteafoodentry,theapplicationsendsanHTTPrequestwiththedeletetag.Thisrequestcontainsthenameofthefoodandtheexpirydatewhicharestoredinthefood_nameandentry_dateparametersrespectively.ThedeleteFoodfunctionoftheDbFunctionsclassiscalledtodeleteacertainfoodentrywhosenameandexpirydateareprovided,asshownonline85.TheoutcomeoftheoperationisusedtocheckitssuccessorfailurewithanIFconditionalstatement,asdisplayedonline87andeitherasuccessmessageoranerrormessageissentbacktotheuserapplicationasappropriate.Thelisttagisusediftheapplicationintendstogetthelistofallthefoodentriesforaspecificuserfromthedatabase.TheHTTPrequestonlycontainsthetagandfacebook_idparameters.ThegetFoodByIdfunctioniscalledwiththeFacebookIDoftheconcerneduserasitsargument.Thefunctionthenreturnsthequeryresultwhichhasthecurrentfoodlistingsoftheuserstoredonadedicatedtable.Anarraynamedrecordsandawhilestatementareusedtoreorganisethequeryresultintoanarray,whichisthensenttoapplicationusingJSONencoding.ThetablebelowshowstherelationshipbetweenthevariouskindsoftagparameterusedintheHTTPrequestfromthemobileapplicationandthePHPclassesontheserver.6TESTING6.1Client-SideTestingTestingonthemobileapplicationwasdoneprimarilywiththeAndroidVirtualDevice(AVD),providedbytheAndroidSDK.ItwasusedtotestallthefunctionalitiesofthemobileapplicationexcepttheQRcodereadingfunctionalitywhichwasdoneusinganAndroiddevice.Theclient-sidetestingwasdoneprimarilywithinthevirtualdevice.Thefigureabovedepictsthesequenceofregisteringanewentry.Sequence1showsthemenudialogthatappearswhenthe“AddNewEntry”buttonisclicked.ItdisplaystheoptionofaddingtheentryeitherthroughscanningaQRcodeorusingamanualentry.Sequences2and3showthepathtakeniftheuserdecidestoscantheQRcode.Sequence2invokestheZBarScannerLibrarytoscantheQRcodeandtheoutcome,ifsuccessful,isshownintheNewEntryActivityUIinstage3.Sequence4showsanemptyformontheNewEntryActivityUIforusertofill,andSequence5showsthenewlistingontheMainActivityUI.6.2Server-sideTestingThetestingoftheserver-sidewasdoneonawebbrowser,bymakingHTTPcallstotheserver.AnewPHPfile,namedtest.php,waswrittenspecificallyfortestingpurposes.Itincludesthefunctions.phpfiletoallowaccesstothemethodsdefinedfortheDbFunctionsclass.Onlytheusertagisusedfortesting.Theusertagisusedherefortestinguserloginandregistration.ItisusedalongsidethreeotherparameterswhichactsasademofortheuserinformationretrievedfromtheFacebookserver.TheGoogleChromebrowserwasusedforthetests.BelowarefiguresforthetestingcodeaswellastestresultsdisplayedonthebrowserandthephpMyAdmininterface.本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj7812196.3OverallTestingInordertotesttheclient-sideandtheserver-sidesimultaneously,adummyuserprofilecreatedintheserver-sidetestawasusedfortesting.TheGuestmodeinthemobileapplicationwasturnedoff,toallowtheapplicationinteractwiththeserver.Thefigurebelowshowsthesequenceoftestingnewfoodentryandotherfunctionalitiesweretestedlikewise.Sequence1showsthetransitiontothenewentryscreen.Sequence2and3showthenewentryupdatedbothinthemobileapplicationandinthedatabaseontheserver.Itshouldbenotedthatusersareexpectedtohaveinternetconnectionwhenmakingnewentriesinusermode.7CONCLUSION7.1ChallengesAmajorproblemfacedbydevelopersforapplicationslikethis,ishowtoeffectivelymanagedatabetweenthemobiledevicesandtheserver.Aspreviouslymentioned,datapersistencecouldbedonebothlocallyandexternally,hencetheissueofsynchronizingdatawhileminimizingresourcesusedbecomesaseriousconcern.Thiswasresolvedinthisapplicationbygivinguserstherighttochooseeithertostoretheinformationlocallyontheirdevicesorabilitytoaccessitonvariousdevicesbystoringtheinformationontheserver.Aninternetconnectionisarequirementforthelatter.Hence,itisexpectedthattheuserwhochoosesthisoptionhasaninternetconnection.Itispossiblethatmultipleusershaveaccesstoasingledevice.Hence,thedilemmaovernamingthedatabasetableinlocalapplicationarose.Provisionwasmadeontheservertocreateseparatefoodinventorytablesforusers,butthatisexpectedforthedatabaseontheserver.Itisexpectedthatsmartphonesandtabletsarepersonalitems,hencetheredoesnotseemtobeaneedtocreateseparatetablesforeachuserthatlogsinintotheapplicationonadevice,asthiswouldbeararity.Therefore,asinglenamehasbeenchosenforthetableonthemobileapplication,whileadynamicnamingconventionisappliedontheserver.However,ifmultipleusersdousetheapplicationonasingledevicewithseparatelogindetails,theapplicationdeletesthefoodinventorytablewhentheuserlogsoutandisabletoretrievepre-storedinformationontheserverwhentheuserlogsinagain.7.2PossibleImprovementsThesolutionpresentedinthisprojectisusefulenoughtocombatfoodwastethroughexpiration.However,itmayappearcumbersomeformanyuserstoregistertheirinventoriesmanuallyintotheapplication.Atthetimeofwriting,therewasnostandardfoodinformationsystemonfoodpackagesthatgivestheusertheinformationofboththenameofthefood,aswellasitsexpirydate.TheviableimprovementwouldbegetthefoodnamefromtheproductbarcodeandreadtheexpirydateusingOCRtools.However,thelevelofeaseofusingthisoptionisonlyslightly本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219greaterthanusingthemanualoptionoffillingthefoodinformation.SomecompanieshavestartedtrialswithusingQRcodeontheirfoodpackagestoprovidedetailedinformation.Notwithstanding,thereisstilllotofhurdlestopassforittobecomeastandard.Butforthemeantime,thisapplicationpresentsaviableandeffectivesolution.8REFERENCES/1/Koivupuro,Heta-Kaisa2011,FOODSPILL–Foodwastageandenvironmentalimpacts,HenviSeminarSeries,FoodandEnvironment–Sustainablefoodcycle,MTTAgrifoodResearchFinland/2/Service.OfficialAndroidDeveloperReferencewebsite,5thMarch2013,http://developer.android.com/reference/android/app/Service.html./3/Intent.OfficialAndroidDeveloperReferencewebsite,5thMarch2013,http://developer.android.com/reference/android/content/Intent.html./4/OfficialwebsiteforAndroidSDK,5thMarch2013,http://developer.android.com/sdk/index.htm./5/TheAndroidManifest.xmlFile,OfficialAndroidAPIGuideswebsite,6thMarch2013,http://developer.android.com/guide/topics/manifest/manifest-intro.html./6/AboutSQLite,OfficialSQLitewebsite,6thMarch2013,http://www.sqlite.org/about.html中文翻译基于Android平台的餐饮管理系统的设计与实现技术与通信20131确认真主阿拉(崇高的上帝),你给予我安逸并在生活的困难帮助我。我的母亲告诉我,努力工作,耐心和虔诚的在一个无法控制的环境中成功是至关重要的。我已故的父亲,是这个时代我的榜样,他一直灌输给我纪律和信赖。我的兄弟姐妹,他们一直支持和相信我做的人生重大决定。我的好朋友总是为我喝彩。我感谢他们所有人,特别是RafiatSanni,IbrahimAfolabiNimatallahKing,SherifahAlagbe,LawalOlufowobi,AbdulMajeedFolorunsho我以上提到的这几个人。本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219我的上司,刘洋让我意识到我可以做的更好。对于SantiagoChavez和JarmoMakelä,你们让复杂的主题看起来容易,对于所有的老师,我已经拥有学习上的荣誉来自于你们。我感谢你们给我如此美妙以及具有挑战性的时间。1摘要食物浪费成为日益关注的话题,主要是由于它对经济和农业的负面影响。研究表明,在芬兰似乎是食物垃圾最严重的制造者。因为食物是过期的,所以导致食物被处理掉了。本论文的主要目的是提供一个可行的解决方案,允许移动用户能够有效地跟踪他们的食物库存的生命周期。该项目还提供了更好的实现的演示与食品未来增强包装。这个项目是为Android平台开发的,使用Facebook的集成简化了用户注册和Web服务器用于存储信息。移动应用程序,使用AndroidSDK构建Eclipse软件环境与外部库,FacebookSDK为Facebook集成和ZBarScannerLibrary读取二维码。服务器端组件是使用Notepad++软件开发PHP代码和phpMyAdmin数据库管理。结束应用程序可以注册用户使用他们的Facebook帐户和食品条目可以添加和删除移动设备和服务器。关键字:Android;Food;Client;Server;PHP;MySQL1、简介食物浪费的普遍性一直是近年来感兴趣的话题,近年来正在讨论和研究如何有效控制。它已被确定为一个主要的问题在粮食生产和消费的可持续性方面,除了食品供应链的可持续性外。根据Heta-KaisaKoivupuro,食物垃圾可分为可避免的和不可避免的浪费。可以避免浪费包括可食用的食物和变质的可食用的食物,而不可避免的浪费包括不能吃的食物,,如骨骼、水果皮和鸡蛋壳等在芬兰的一项研究表明中,5%的家庭购买的食物被浪费了,一个普通人一年浪费了大约20-30公斤的食物。每个家庭每年大约平均总浪费的食物量是120-160公斤。家庭浪费可能是有意的或者无意的。在家庭许多的食物浪费了可能是健忘或疏忽食品保质期的结果。在芬兰等国家,生活成本高,由于折扣店卖家附加定期,消费者倾向于购买接近截止日期的食物1.1背景科技的进步帮助人类的缓解生活的压力。移动技术的流行使我们一直与世界保持联系。通过科技,我们生活的不同方面可以很容易的连接起来。例如,一个人可以做第二天的演讲的润色工作,与他/她的配偶讨论关于晚餐,周末旅行预订航班等等,所有事情都可以在同一个地方,同时进行。这个项目想法的产生与我观察同学处理过期食品的难易程度有关。由于高昂的生活成本,许多学生倾向于购买食物接近保质期的产品,有时商店大数量的打折是因为商店试图尽可能多减少这些产品的库存来降低他们的损失。随着智能手机的普及,我想到使用智能手机的可行性作为我们的食物的生命周期跟踪库存,并定期了解这些产品的有效期。预计这将有助于在一些家庭减少食物浪费。1.2目的本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219这个项目的目标是创建一个移动应用程序,帮助用户在管理他们的粮食库存。应用程序将存储并显示关于库存的基本信息内容和警报食品产品的用户第二天到期。因此用户可能会采取行动避免有关产品浪费或被变质。如果消费者关于粮食储备时间很灵通,相信大量的食物浪费在家庭中将会被避免。大多数可用的食品管理应用程序关心用户的体重和食物摄入量不足,通常需要大量的来自用户的信息。这个项目的优势是使用最简单的食品信息监控库存。着眼于未来,一个演示解决方案集成显示兼容食品包装未来的发展。1、系统使用的工具本项目利用各种技术和工具。他们是Android,二维码,超文本预处理器(PHP),MySQL数据库和phpMyAdmin。2.1Android对于手机和平板电脑等移动设备等,安卓是一个开源软件。包含一个基于linux的内核,中间件和移动应用程序。这是开发的开放手机联盟巨头谷歌(GoogleInc.)在Apache软件许可下发展的,ApacheSoftwareLicense,2.0通常缩写为“Apache2.0”。2.1.1应用概述Android应用程序通常是由大量的用户界面组件,称为活动。一个活动是一个组件,它为用户提供了一个屏幕交互执行一个操作,比如拍照,或查看画廊。通常,一个应用程序通常有一个主要的活动被其他的活动调用。应用程序也可能非视觉组件,其操作至关重要。这些组件是:Services和BroadcastReceiver。Services是一个Android组件用于在后台执行长时间运行的操作,即不可见的用户,也可以使用应用程序将它的一些功能暴露给其他应用程序。/2/注册使用在AndroidManifest<服务>标记。xml文件。广播接收器是一个Android组件接收和处理发送的广播系统或任何应用程序。发送广播是一个系统消息,当一个应用程序或系统发生。例如,一个广播消息可能是由发送手机或电池状态变化的方向。它是注册在AndroidManifest.xml文件。应用程序组件之间的通信是通过使用意图。意图是一个抽象的描述要执行一个操作。它主要是用来启动一个活动。它也可以被用来发送广播消息和交流服务。2.1.2Android发展一个Android应用程序可以使用AndroidSDK和开发兼容软件开发环境。AndroidSDK为开发提供了必要的工具和库、测试和调试的应用程序在Android平台上。/4/它在安卓官方网站上是可供下载,以及需要支持的。这个项目是建立在Eclipse的软件开发环境,它支持多种编程语言和操作系统,它可以免费使用EclipsePublicLicense。2.1.2.1AndroidManifest.xml要求所有的Android应用程序在AndroidManifest.xml文件中注册。它提供了重要的信息应用程序,Android系统,系统需要在运行任何应用程序的代码。在AndroidManifest文件包含以下内容:唯一的包名;最低的AndroidAPI版本;描述应用程序的组件,即活动、服务、广播接收器和内容提供商的应用程序;应用程序所需的库;声明所需的权限访问受保护的API组件。2.1.3Android模拟器本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219AndroidSDK提供了一个模拟器,这是一个虚拟的移动设备,在计算机上运行,使用户在没有物理设备的情况下调试和测试应用程序。开发人员使用AVDManager可以对模拟器进行设置,这是一个图形用户界面用于配置和管理AVDs。AVD中可以配置为不同的设备,屏幕尺寸,Android的目标水平。对于这个项目,我已经配置了AVD作为联系设备屏幕大小为4.65英寸,分辨率720×1280像素。4.2.2AVD运行Android果冻豆,版本,相当于17API级别。2.1.4SQLite数据库SQLite是一个实现了自包含的进程内库,serverless、零配置,事务性数据库引擎。它是免费的使用的,无论是私人或商业。它紧凑轻巧,因此它很容易部署到任何系统。它支持许多UNIX和Windows操作系统,可以很容易地移植到其他系统。支持的数据类型是TEXT(字符串值),INTEGER(持有整数值)和REAL(持有精度浮点值)。/6/Android提供了SQLite数据库,以便在应用程序中数据存储。安卓系统的应用程序的数据库,这只能在应用程序代码中访问和管理。2.2快速响应代码(QR代码)二维码的商标是一种二维条形码。这是一个光学机器可读标签用于存储项目是附加的信息。最初设计用于在汽车工业在日本丰田子公司,但已成为广受欢迎的其他用法,因为它是更快的读取和存储容量比标准条形码。二维码通常用于存储联系信息,统一资源位置(url),电话号码,和文本。2.3PHP:HypertextPreprocessor(PHP)PHP是一种服务器端脚本语言,主要为生产动态页面设计。它是由RasmusLerdorf1995年创建和PHP团队不断开发的。PHP是PHP许可下发布的免费软件,这使得它不符合GNU通用公共许可证(GPL)由于限制使用术语PHP。它是跨平台的软件主要用于服务器端web开发和客户端用户界面(UI)。它已经被使用的创建许多Web内容管理系统像Drupal,Wordpress和Moodle。2.4MySQLMySQL是一个跨平台的开源的关系数据库管理系统(RDBMS)。它是由MichaelWidenius以及他的女儿命名的。它最初公布的5月23日,1995年在GPL许可下。它最初是由瑞典公司MySQLAb,目前属于甲骨文。这是用C和c++编写的。对于这个项目,使用phpMyAdminMySQL数据库管理。2.5phpMyAdminPhpMyAdmin是一个免费和开源的GUI工具,用PHP编写的,用于web数据库管理。支持跨平台,它在1998年第一次发布GNU通用公共许可证。它有一个直观的网络界面,对许多MySQL功能和核心支持。它也有数据管理(包括进口和出口)支持多种格式:CSV、SQL、PDF、XMLothers。/8/2.6整合Facebook本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219Facebook是一个流行的社交网络平台开始于2004年,马克·扎克伯格和他的几个朋友。逐渐扩大,到2012年10月1拥有了十亿用户。由于其庞大的用户基础,Facebook为开发人员提供了一个服务的大道去挖掘其丰富的信息。为了这个项目,我集成Facebook登录功能访问关于用户的基本信息,与他们的许可,登记项目的服务器端。3系统概述3.1选择AndroidAndroid已经被选定为这个项目,主要是为开源性质该平台以及易于开发和部署的中提供的官方Android网站和主要广泛支持开发者的论坛,如堆栈溢出的网站。它还拥有最大的市场份额,并与平板电脑的兼容性。它还支持跨平台的应用程序开发,即开发Android应用程序开发者可以在Mac,Windows和许多像Ubuntu基于unix的操作系统。3.2要求有一些需求在应用程序必须满足。客户端上的要求是:它的用户界面必须兼容大多数Android设备;它必须可以集成Facebook;它必须有二维码的阅读能力;它应该有能力在服务器存储数据。数据库服务器端上的要求是:数据库必须有用户表;数据库必须有食物表;数据库必须能够与客户端链接。3.3系统的体系结构这个应用程序包含一个Android应用程序在客户端和应用程序在服务器端PHP,MySQL。Android应用程序是用户可见的一部分和一个与之交互,而PHP/MySQL-based端组件作为一个接口之间的Android应用程序和数据库服务器上。客户端应用程序的用例是下面如图5所示,显示所有可用的情况下,用户在应用程序中。4客户端的设计与实现客户端应用程序设计基于需求在3.2.1之上,使用正确的库,数据库设计和编程方法,同时提供一个很好的用户体验。4.1发展概况移动应用程序是在Eclipse开发软件使用AndroidSDK从安卓官方网站下载。这个项目使用三个java包,即:1、com.olanigan.food2、com.olanigan.data3、com.olanigan.utilsfood包包含所有界面的类,而data包包含所有数据管理类的数据。实用工具类在utils包下。下图展示了项目在Eclipse软件的结构。应用程序配置为一个最低API8和声明权限使用WAKE_LOCK,互联网和相机系统的功能。本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219所有应用程序的标题在<应用>标记定义,以及组件的列表和库使用。下图显示了一个应用程序结构。4.2使用的接口类在Android用户界面显示直接或间接使用类的扩展活动。用于该应用程序的用户交互的类有MainActivity,NewEntryActivityFbLoginActivity。MainActivity类是主要的应用程序的用户界面。它显示用户的注册食品库存,其他活动的主菜单条。类二维码扫描的结果显示了用户选择二维码后进入MainActivity接口。定制的二维码用于这个项目,包含新食品的名称信息,日期,和扫描使用ZBarScannerActivity类,叫做从一个开源的二维码扫描库,ZBarScannerLibrary。这个类显示用户发起后的QR码扫描的结果选择在MainActivity界面的QR码条目。定制的QR用于此项目的代码,包含了新的食物的名称信息,和最佳食用日期,并利用ZBarScannerActivity级扫描,这从一个开源的QR码扫描库,ZBarScannerLibrary被调用。用户填写表单完全后,类处理新食品的存储数据到数据库中,以及设置一个报警通知用户定义的时间每天在截止日期之前。任务执行完成后,它将返回用户的MainActivity类食品清单显示更新。FbLoginActivity类是应用程序的入口点,它处理用户的登录和注销使用Facebook身份验证。不同于其他活动,它扩展FragmentActivity和充当主要显示三个片段类,这是SplashFragment,InfoFragment和UserSettingsFragment类。SplashFragment类显示Facebook-custom登录按钮。当点击按钮调用Facebook登录对话框从FacebookSDK库。InfoFragment类称为Facebook用户登录成功后。它检索关于用户的基本信息,使用这些信息来注册新用户到应用程序数据库或检索最新的食品清单应用程序数据库。InfoFragment类将用户重定向到MainActivityUI。资料显示设定类显示Facebook注销按钮的用户出口从主应用程序和重定向到Facebook登录页面后执行。这个类是由Facebook提供的库。4.3数据库管理类4.3.1数据模型一个食品类作为应用程序的模型对象。它的建立是为了使均匀性数据管理和易用性。该模型的属性包括食品,其到期日,而进入之日起的名称,以及所选择的时间提醒其到期。4.3.2数据库管理在Android应用程序主要完成数据持久性SQLite数据库库组件在Android系统提供。使用SQLite数据库的应用程序,通常有专门的类来处理数据库的管理.DatabaseHelper类被创建。它扩展了SQLiteOpenHelper类和处理所有内部数据库应用程序的功能包括打开和关闭数据库,执行查询和处理与食品模型查询。它也运行在服务器上的数据库使用UrlHandler类中定义的方法。对于这个项目,数据库被命名为“论文”,作为DATABASE_NAMEDatabaseHelper类中定义。同时,只有在数据库中创建一个表。桌子被命名为“食品”,FOOD_TABLE本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219DatabaseHelper类中定义。首先创建表时创建数据库结构,只能修改数据库时升级。它用于存储粮食条目的用户和数据库的最终版本是三(3)由于结构性变化经历了在开发过程中。4.4服务器的通信类应用程序和外部服务器之间的数据通信是由UrlHandler处理类。其业务包括检索和注册用户和食品库存信息。类别上有许多的功能将HTTP请求发送到服务器。请求包含索引的URL地址。服务器上的php文件包含用户的信息和参数和食品条目。下表强调请求中的常用参数。一个请求的参数数量根据不同服务器上执行所需的操作。然而,标签参数是主要的参数,通知服务器执行什么操作。在这个应用程序中,创建列表的标签字符串和这些标签的轮廓可以在下面的表中找到。4.5工具类通知类为应用程序作为一个广播接收器。它继承了广播接收器类。由Android系统通知后当警报WAKE_UP事件发生时倒计时NewEntryActivity值集或QREntryActivity类白白的流逝了。onReceive功能将会自动调用类的处理事件。setNotification函数就称为系统中创建一个新的通知通知,通知用户的食物的名称,预计第二天到期。5服务器端的设计与实现本章从数据库处理数据检索和存储,发起HTTP请求从客户端应用程序。PHP是用来处理请求的应用程序和MYSQL数据库上执行适当的任务。也通知应用程序的应用程序的成功或失败。5.1发展概况Notepad++的PHP开发完成的软件,这是一个自由和开放的多语言编辑器窗口。它提供了彩色支持本机函数,以及代码缩进。它显示在标签易于访问和编辑文件同时编辑多个文件。由一个免费的基于php的服务器数据库管理GUI工具命名phpMyAdmin现成的服务器上。5.2数据库设计项目的数据库设计基于3.2章中列出的要求。创建一个名为“用户”的表来存储用户的基本信息,使用应用程序。这些信息包括FacebookID、用户名和姓,这是Facebook提供的通过移动应用程序服务器。表上有四个列。他们facebook_idFacebook账号的用户,first_name、last_name名字和姓氏的用户分别和created_at日期用户信息存储在数据库中。facebook_id列充当为表的主键。每个用户预计将有一个专门的表在数据库中存储食物条目。为了这一点,一个动态命名约定用于这些表。用户的FacebookID用作下划线单词后缀,因此每一种食物的名字表的格式food_(FacebookID)。例如,如果用户的FacebookID是12345,这个用户的食物表将被命名为“food_12345”。本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219表上有五列;id列充当主键,food_name专栏的名称食物,expiry_date和entry_date列截止日期以及食品入境日期,并提醒列用户设定的时间提醒截止日期的前一天5.2PHP类创建三个PHP文件处理逻辑和数据管理操作。主要的PHP文件是index.php文件处理HTTP请求的应用程序。另一个文件的functions.php文件,该文件包含函数的声明中使用在index.php文件,connect.php文件包含授权访问数据库的登录细节。这些文件都存储在cc.puv.fi服务器。5.2.1PHP连接数据库文件connect.php文件包含的行政配置MySQL数据库需要做的操作。由于这个文件颁发的管理权限,用户应用程序可能对数据库的内容进行更改。图中显示,这个项目使用的MySQL是mysql.cc.puv.fi服务器只能在本地服务器使用。对于本项目,我使用我的学生账户在服务器和一个VPN连接,允许访问PHP文件以及远程管理数据库。文件还定义了连接类负责连接到数据库。下面的图显示了类图以及连接类的PHP代码。定义的类别有构造函数和析构函数。类的构造函数是一个方法调用创建类的新实例时,在连接类,它调用连接方法。因此,一个连接到数据库时创建了一个连接类的实例。当一类不再引用调用析构函数方法。这个类的析构函数调用关闭方法,关闭数据库连接。连接方法,本地MySQL函数,mysql_connect用于连接到数据库服务器使用预定义的配置值和函数,mysql_select_db用于选择特定数据库对于此项目,如25行和27行所示。结束函数定义关闭数据库连接通过调用本地MySQL函数,mysql_close。5.2.2PHP函数文件functions.php文件定义DbFunctions类。DbFunctions类定义了数据库操作的方法,称为从索引中。基于php标签参数的值在HTTP请求。下图显示了类的类图。声明一个全局变量db和用作连接类的一个实例。变量的赋值数据库连接类的新实例是在类的构造函数方法,和连接php是包括为实现这一目标。这个类没有定义析构函数方法。数据库操作类有五个方法定即:isUserExist,storeUser,getFoodById,storeFooddeleteFood。isUserExist方法用于检查用户是否存在使用其独特的FacebookID作为参数。方法调用一个MySQL查询,选择从用户表facebook_id列条件语句来检查用户的Facebook账号是否存在于列。storeUser方法用于存储有关用户表中的一个新用户的信息,并用来为用户创建一个专门的食物表使用一个动态命名系统。这需要三个参数,即:FacebookID、用户名和姓。它首先存储新用户表中的用户信息,在成功完成,它会创建一个新表的用户使用FacebookID。getFoodById方法用于检索所有的食物条目的一个特定用户使用用户的FacebookID作为参数。storeFood方法定义存储食物从移动应用程序服务器条目。五个参数,其中一个是用户的Facebook本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219ID用于确定表来存储进入基于动态表命名系统。其他的参数提供的食品信息移动应用程序。包括食品的名称,其输入日期和到期日期,提醒人们到期食物。deleteFood方法定义删除一个特定食品。这需要三个参数用户的FacebookID、食品的名称和它的截止日期.FacebookID用于选择表,另一个参数是用于选择特定的条目删除。食物的名称和它的截止日期在一起独特的每一种食物的条目。表的ID并不是用于删除的可能性是不同于其相应的客户端应用程序的价值。5.2.1PHP索引文件该文件处理该移动应用程序与服务器数据库之间的通讯。它的逻辑操作是基于HTTP中参数值来操作的。并由移动应用程序来处理。它使用DbFunctions类,在定义functions.php文件,对数据库进行操作。所有的逻辑操作被封闭在一个IF条件语句的确保标签参数设置,它不是空的,如图上的第三行所示。tag参数是用来选择哪个操作的应用程序,当它发送一个HTTP请求,由Facebook服务器提供用户的Facebook的ID的值。所有的HTTP请求必须有标签,并且要有facebook_id参数。第五行和第六行用来显示这些参数的值,并存储其变量的值。在第10行require_once语句用于包括在functions.php文件的代码,并确保它仅包含一次。变量dbFunctions是第11行声明,作为DbFunctions类中声明的实例functions.php文件。第13行显示了响应变量的声明。它被声明为一个数组和主要包含在HTTP请求中的tag参数的值,以及成功和失败的值,这些会决定进行哪个逻辑操作。成功和失败标记的值均为零,默认情况下,只有其中的一个标记后,其值更改为一执行基于标签的操作。成功标记的值更改为1如果操作成功执行。否则,该误差的值标签变为1(1)。在当移动应用程序发送一个HTTP请求的登录标记的情况下,该请求将只包含标记和facebook_id参数。该facebook_id变量用于在第19行,如在isUserExist参数该DBFunctions类的函数来检查有关用户的信息Facebook的ID存在于数据库中。如果用户信息存在,一个成功的消息发送回的响应如第22行,否则,错误信息是返回的第26行所示,所有的响应消息使用的编码JSON格式。如果用户应用程序要注册一个新用户,HTTP请求是用寄存器标记。此请求包含默认参数,以及FIRST_NAME和代表的第一个名字姓氏参数和最后用户分别命名。此信息由Facebook的提供服务器向移动应用程序。该isUserExist函数用来检查用户是否已经存在于数据库中在第36行,如果用户已经存在,则返回一个错误消息。否则,该新的用户信息是使用在线路storeUser函数存储在数据库中在第43行。在第44行,一个条件语句中使用检查,如果是注册成功,如果是,则返回如图所示的第51行上的成功消息,如果注册失败,则返回上所示第53行的错误消息。包含附加标签的HTTP请求,是一个意图将新的食物条目添加到数据库。这个请求包括用于食品的名称参数,其条目日期,到期日期,以及与用户设置的提醒时间,除了默认的参数。该DbFunctions类的storeFood函数被用来添加信息,关于HTTP中所有的参数,除了标签参数,提供storeFood函数所需的参数值。第67行的条件语句是用来检查成功的数据库条目。如果是做了一个新的条目,则返回成功消息,并返回一个错误信息给用户应用程序如果项目失败。本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj781219如果最终用户打算删除一个条目的食品时,应用程序发送一个HTTP与删除标记。该请求包含了食物的名称和这是存储在food_name和ENTRY_DATE参数到期日。该DbFunctions类的deleteFood函数用来删除,如第85行,操作的结果是用一个IF条件语句来检查,如87行,要么成功消息或错误信息被发送回适当的用户应用程序。列表标签使用,如果一个特殊用户要从数据库中得到所有食物的条目,HTTP请求只包含标记和facebook_id参数。该getFoodById函数被调用与Facebook有关用户作为其参数的标识。然后,该函数返回查询结果存储在dedicated表中。用while重组查询结果保存到数组中,然后使用JSON编码发送到应用程序。下表显示了各种标记之间的关系在从移动应用程序和PHP的HTTP请求中使用的参数类在服务器上。6测试6.1客户端测试在移动应用测试是在Android的虚拟设备(AVD)完成,由AndroidSDK提供。它被用来测试所有除了QR码读取功能的移动应用程序的所有功能。客户端的测试是在虚拟设备完成。6.2服务器端测试服务器端的测试是在Web浏览器中,通过使HTTP调用服务器的test.php文件,它包括functions.php文件,以允许访问所定义的方法为DbFunctions类。只有用户标记用于检测。用户标记是这里用于测试用户登录和注册。它被用来与其他3参数充当用户信息的参数,从Facebook的服务器中检索。谷歌Chrome浏览器被用于测试。6.3整体测试为了同时测试客户端和服务器端,创建一个虚拟用户。并且关闭移动应用程序的来宾模式在,允许应用程序与服务器端的互动。下图ordeThe显示了新食品条目和其他序列的测试,其他功能亦同样测试。7结论7.1挑战开发这样的应用的面对的一个主要问题,是如何有效地管理移动设备和服务器之间的数据。正如以前提到的数据持久性,可以做局部的和外部的,因此同步数据的同时最大限度地减少资源的使用成为一个严重的问题关注。为了结局信息存储的问题,该应用给用户选择在本地存储还是在服务器上存储,对于互联网连接的方式是针对服务器存储的。我们预计用户会选择互联网连接。当多个用户访问一个设备的时候,本地应用程序的数据库表名是困难的,因此我们在数据库上创建独立的表来解决这种问题。据预计,智能手机和平板电脑室个人物品,因此为没个登录人创建一个表似乎没有毕业,因为很少有多个用户使用一个设备的。所以讲将单一命名放在手机桌面应用上,而动态命名放到服务器端。然而,如果有多个用户使用在一个设备应用程序时,应用程序删除前一个用户在数据库中的存储信息,当用户注销,能够获取预先存储在服务器在用户登录时的一次信息。本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要 更多相关参考论文设计文档资源请访问http://www.docin.com/lzj7812197.2可能的改进在这个项目中提出的解决方案通过过期应对食物浪费是足够用用的。然而,对许多用户手动注册他们的库存到应用程序中时可能会出现麻烦。在撰写本文时,食品包装上没有标准的食品信息系统,包装上用该为用户提供食品名称和过期时间。多变的改进可能是通过产品的条形码来获得食物名称和使用OCR工具阅读过期时间。然而,易于使用此选项的水平仅略大于使用手动灌装食品信息的选项。一些公司已经开始试用他们的食品包装上使用二维码提供详细的信息。尽管如此,仍有很多障碍才得以成为一种标准。但与此同时,这个应用程序呈现出一个可行的和有效的解决方案。参考文献/1/Koivupuro,Heta-Kaisa2011,FOODSPILL–Foodwastageandenvironmentalimpacts,HenviSeminarSeries,FoodandEnvironment–Sustainablefoodcycle,MTTAgrifoodResearchFinland/2/Service.OfficialAndroidDeveloperReferencewebsite,5thMarch2013,http://developer.android.com/reference/android/app/Service.html./3/Intent.OfficialAndroidDeveloperReferencewebsite,5thMarch2013,http://developer.android.com/reference/android/content/Intent.html./4/OfficialwebsiteforAndroidSDK,5thMarch2013,http://developer.android.com/sdk/index.htm./5/TheAndroidManifest.xmlFile,OfficialAndroidAPIGuideswebsite,6thMarch2013,http://developer.android.com/guide/topics/manifest/manifest-intro.html./6/AboutSQLite,OfficialSQLitewebsite,6thMarch2013,http://www.sqlite.org/about.html本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系68661508索要

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭