基于Android的网上订餐系统.docx
《基于Android的网上订餐系统.docx》由会员分享,可在线阅读,更多相关《基于Android的网上订餐系统.docx(46页珍藏版)》请在冰点文库上搜索。
基于Android的网上订餐系统
信息工程学院
专业综合课程设计报告
工程题目:
基于安卓的网上订餐系统
设计报告成绩评定表:
评分容
成绩
系统方案思路合理性〔10%〕
报告容的完整性(10%)
硬件原理图及说明(20%)
程序流程图(20%)
程序清单(10%)
调试及结果分析(10%)
系统改良建议或者方案(10%)
格式规(10%)
总分
备注:
以上总分为该组的平均分,根据成员分工具体分数如下。
小组成员
分工
分数
马丽
软件调试
摘要
随着科技的开展,二十一世纪成为了以网络化,信息化为核心的社会。
网络商业化也成为了时下最热门的词汇。
随着信息技术的不断更新,特别是07年谷歌公司推出了Android开放源码,让Android操作系统成为了移动平台的宠儿,本系统主要分析了中小型餐饮店管理与开展的现状所面临的问题,发现传统的效劳模式已经不能适应市场开展的需求,方便、快捷、个性化的网上订餐效劳正在进入人们的生活。
针对这类问题,结合当代科技开展的新成果,本文构思规划了一套最贴切的效劳模式,为中小型餐饮店外送效劳提供了一套系统。
本设计是一个基于Android手机的网上订餐系统,采用C/S模式,能为客户提供网上选择浏览菜品介绍,点菜订餐效劳,并为管理员提供一个效劳平台实现用户信息与顾客订单的管理,从而提高了效劳的质量,本文从系统需求、系统实际、代码实现几个方面介绍了整个软件的开发过程,这个系统采用JAVA、SQLServer数据库,并利用MyEclipse、TOMCAT、AndroidSDK、ADT、AVD、DDMS等开发环境或者开发工具。
关键词:
Android;Java;MyEclipse;SQLite;SQLServer2005
ABSTRACT
Withthedevelopmentofscienceandtechnology,the21stcenturyhasbecomeasocietycentredoninformationandnetwork.Hencecommercializationofnetworkhasbecomeoneofthehottesttopicsinrecentyears.Androidoperatingsystemisgraduallygoingtobethedarlingofthemobileplatform,whichresultsfromtheconstantlyupdatingofinformationtechnology,especiallytheappearanceofAndroidopensourcecarriedoutbyGooglecompanyin2007.Thesystemmentionedinthisarticlemainlyfocusontheproblemsfacedbythemiddleandsmallreataurantsintheirmanagementanddevelopment,andfindsthatthetraditionalservicemodecannotadapttotheneedsofthedevelopmentofthemarketanymore.Amoreconvenient,quicker,andpersonalizedserviceenterspeople’slife——onlinereservations.Inviewoftheexistingproblemsandcombiningthelatestachievementsofthedevelopmentofmoderntechnology,Ihaveconceivedasetofthemostappropriatepatternofdiliveryservicefortherestaurantindustry.
ThisdesignisaonlinereservationssystembasedontheAndroidmobilephones,whichadoptsC/Smode.Itcanprovideservicesforclientstochoosedishesintroductionfreely,andtoordermealactively.Besides,itcanalsoofferaserviceplatformformanagertoregulatetheuserinformationsandcustomerorders,soastoimprovethequalityoftheirservices.Inthisarticle,I’dliketointroducethewholedevelopmentprocessofthissoftwareindetailsfromthesystemrequirements,systemrealization,codeimplementationandsomeotheraspects.ThissystemusesJAVA,SQLServerdatabase,inaddition,MyEclipse、TOMCAT、AndroidSDK、ADT、AVD、DDMSandotherdevelopmentenvironmentsordevelopmenttoolsarealsousedinit.
Keywords:
Android;Java;MyEclipse;SQLite;SQLServer2005
第一章引言
1.1工程背景
伴随着我国市场经济的高度开展,企业越来越依赖于市场和客户,这种依赖关系已经开场逐步提升到关乎企业生存的高度。
如何获得更多客流量,如何通过小的代价而使商家获得更大的知名度,这是使企业得以生存、开展、壮大的关键。
年销售过亿的众多电子商务案例让人们看到了更多的商机。
与应用场景相当有限的PC〔个人电脑〕相比,生而具备便携属性的手机给了电商们更大的想象空间。
移动电子商务由此产生了。
移动电子商务就是利用手机、PDA及掌上电脑等无线终端进展的B2B、B2C或C2C的电子商务。
它将因特网、移动通信技术、短距离通信技术及其它信息处理技术完美的结合,使人们可以在任何时间、任何地点进展各种商贸活动,实现随时随地、线上线下的购物与交易、在线电子支付以及各种交易活动、商务活动、金融活动和相关的综合效劳活动等。
而Android操作系统凭借着自己开放的平台允许任何移动终端厂商参加到Android联盟中,从而使得越来越多的用户倾向于选择操作系统为Android的手机品牌。
选择设计基于Android平台的软件,毫无疑问能覆盖更多的群众,餐饮业在电子商务中还处于形成的初期,传统的餐饮业中,大都是以实际门面形式来进展宣传和交流。
作为网络普及化的社会,这还缺少了一些更为现代化的元素。
餐饮业是一个个性化、多样化的效劳业,而电子商务那么最能表达个性化、多样化效劳的方式。
而且现在大局部电子商务都表达为向大企业效劳,结合餐饮这个行业的特点,最终还开展为同小区小店效劳的模式。
以最贴切的方式,最灵便的效劳进入个个网络社区,进入人们的生活。
1.2工程目的
如今宅男宅女日益增加,很多餐饮店都提供外卖效劳,传统的外卖效劳需要客户给商家打并报出地址,商家那边也需要记录下客户的信息,才能将外卖准确的送达,但在这之间都是人在操作,难免会出现偏差和遗漏为客户或者商家带来损失。
如今3G网络覆盖围越来越广,Android手机也占领了手机行业的大头,那么我们可以考虑做一个Android的应用来方便商家和客户,让出错率到达最低。
用户要点餐的时候只需手机上网点一下菜单就能吃到自己喜欢吃的菜品,这里面蕴含了很大的商机,完全能够有效的提高商家的营业额,基于以上因素,所以提出了这样一个基于Android的网上订餐系统。
本工程的目的是开发一个可以让用户在手机上操作的客户端,然后与效劳器连接进展数据交互,来实现网上订餐的流程。
客户端需要实现浏览菜品,点菜,下订单,搜索等功能。
效劳器端需实现添加、删除、修改菜品、对订单的处理,以及对会员的管理等功能。
本工程是一款基于Android手机平台的订餐系统,使拥有Android手机的用户生活更加方便快捷,使得手机显得更生动灵活化,与人们更为接近,让手机主人随时随地都能吃到自己喜欢的菜品。
使人们的生活更加多样化。
也使设计者更加熟练Android的技术和其他在市场上的特点。
1.3主要容
通过对实际情况的调研,本系统大致可分为三个局部,即手机客户端、电脑效劳器端和图形化界面工具。
系统采用协议来进展数据传输。
采用C/S构造,客户端为基于Android操作系统平台的智能手机,主要的业务逻辑那么效劳器端来实现,数据存储在数据库效劳器。
客户端主要实现位置效劳,商品展示,会员注册及登录,购物车,商品搜索和个人信息等功能,效劳器端主要是完成数据交互和数据逻辑处理,而图形界面化工具那么是负责商品、订单等的增删改查。
为了一步步实现确定的功能,本论文主要容安排如下:
第一章:
引言〔介绍课题研究的背景和目的〕
第二章:
系统理论与技术〔在本工程中设计到的技术简介〕
第三章:
系统分析与设计〔需求分析,数据库的分析与设计以及系统构造的设计〕
第四章:
系统实现〔根据需求分析来实现系统的各个模块功能,使客户端与效劳器,效劳器与数据库能正常数据交互。
这局部主要搭建开发环境,编写代码,测试,运行〕
第五章:
完毕语〔对本工程做一个工程总结〕
第二章系统理论与技术
2.1Android
2.1.1Android简介
Android一词的本义指“机器人〞,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。
Android是基于Linux核的软件平台和操作系统,早期由Google开发〔在华注册商标名为“安致〞〕,后由开放手机联盟〔OpenHandsetAlliance〕开发。
它采用了软件堆层〔softwarestack,又名以软件叠层〕的架构,主要分为三局部。
低层以Linux核工作为根底,只提供根本功能;其他的应用软件那么由各公司自行开发,以Java作为编写程序的一局部。
另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。
Android在未公开之前常被传闻为Google或gPhone。
大多传闻认为Google开发的是自己的手机产品,而不是一套软件平台。
到了2010年1月,Google开场发表自家品牌手机的NexusOne,目前最新SDK版本为Android4.0.3。
2.1.2AndroidFeatures特性
Android系统有如下的几大特性[1]:
·应用程序框架支持组件的重用与替换
·Dalvik虚拟机专门为移动设备做了优化
·部集成浏览器该浏览器基于开源的WebKit引擎
·优化的图形库包括2D和3D图形库,3D图形库基于OpenGLES
·SQLite用作构造化的数据存储
·多媒体支持包括常见的音频、视频和静态印象文件格式〔如MPEG4,MP3,AAC,AMR,JPG,PNG〕
·GSM〔依赖于硬件〕
·蓝牙Bluetooth,EDGE,3G,andWiFi〔依赖于硬件〕
·照相机,GPS,指南针,和加速度计〔依赖于硬件〕
·丰富的开发环境包括设备模拟器,调试工具,存及性能分析图表,和Eclipse集成开发环境插件
2.1.3Android根本框架〔AndroidArchitecture〕
图2.1AndroidArchitecture
2.1.4Android系统的四大组件
在Android系统中,为我们提供了四大根本组件,每个组件是一个视图,但是有些是可见的,有些是不可见的视图,像Activity,ContentProvider是可见的视图,Service和BroadcastReceiver是不可见的,它们只在系统的后台运行。
下面分别介绍四大组件[3]:
〔1〕Activity简介
在Android系统中Activity提供可视化的用户界面,一个Android应用通常由多个Activity组成。
多个Activity组成了Activity栈〔Stack〕,当前活动的Activity处于栈顶。
Activity有自己的生命周期,由Android系统来控制。
〔2〕Service简介
顾名思义Service就是运行在后台的一种效劳程序,一般很少和用户交互,因此没有可视化界面定义一个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的目标却不仅限于此。
Eclipse还包括插件开发环境〔Plug-inDevelopmentEnvironment,PDE〕,这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。
由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
这种平等和一致性并不仅限于Java开发工具。
尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言;例如,支持诸如C/C++和COBOL等编程语言的插件已经可用,或预计将会推出。
Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的根底,比方容管理系统。
基于Eclipse的应用程序的一个突出例子是IBMRationalSoftwareArchitect,它构成了IBMJava开发工具系列的根底[7]。
2.3SQLServer2005和SQLite数据库
SQLServer是一个关系数据库管理系统。
它最初是由MicrosoftSybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本。
在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了,Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本。
Sybase那么较专注于SQLServer在UNIX操作系统上的应SQLServer安装界面用。
SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的存就够了。
它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比方Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。
SQLite第一个Alpha版本诞生于2000年5月.至今已经有10个年头,SQLite也迎来了一个版本SQLite3已经发布。
2.4C/S模式
在网络连接模式中,除对等网外,还有另一种形式的网络,即客户机/效劳器网,Client/Server。
在客户机/效劳器网络中,效劳器是网络的核心,而客户机是网络的根底,客户机依靠效劳器获得所需要的网络资源,而效劳器为客户机提供网络必须的资源。
这里客户和效劳器都是指通信中所涉及的两个应用进程〔软件〕。
使用计算机的人是计算机的“用户〞〔user〕而不是“客户〞〔client〕。
但在许多国外文献中,也经常把运行客户程序的机器称为client〔这种情况下也可把client译为“客户机〞〕,把运行效劳器程序的机器称为server。
所以有时要根据上下文判断client与server是指软件还是硬件。
它是软件系统体系构造,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。
目前大多数应用软件系统都是Client/Server形式的两层构造,由于现在的软件应用系统正在向分布式的Web应用开展,Web和Client/Server应用都可以进展同样的业务处理,应用不同的模块共享逻辑组件;因此,部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。
这也就是目前应用系统的开展方向。
C/S架构软件的优势和劣势[9]:
应用效劳器运行数据负荷较轻。
最简单的C/S体系构造的数据库应用由两局部组成,即客户应用程序和数据库效劳器程序。
二者可分别称为前台程序与后台程序。
运行数据库效劳器程序的机器,也称为应用效劳器。
一旦效劳器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库效劳器,可称为客户电脑,当需要对数据库中的数据进展任何操作时,客户程序就自动地寻找效劳器程序,并向其发出请求,效劳器程序根据预定的规那么作出应答,送回结果,应用效劳器运行数据负荷较轻。
数据的储存管理功能较为透明。
在数据库应用中,数据的储存管理功能,是由效劳器程序和客户应用程序分别独立进展的,前台应用可以违反的规那么,并且通常把那些不同的〔不管是还是未知的〕运行数据,在效劳器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规那么。
所有这些,对于工作在前台程序上的最终用户,是“透明〞的,他们无须过问〔通常也无法干预〕背后的过程,就可以完成自己的一切工作。
在客户效劳器架构的应用中,前台程序不是非常“瘦小〞,麻烦的事情都交给了效劳器和网络。
在C/S体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。
C/S架构的劣势是高昂的维护本钱且投资大。
首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一〞,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时〞的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库效劳器在线运行,网络管理工作人员既要对效劳器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护本钱很高,维护任务量大。
〔4〕传统的C/S构造的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。
在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。
第三章系统分析与设计
3.1功能需求
随着3G时代的到来,手机应用越来越普遍,加之国民手机持有量更是爆炸式增长。
为了方便Android手机用户能随时随地点到自己喜欢的菜品,提出一种操作简便,功能齐全,占用资源少,能为用户节约流量的的网上订餐应用,于是提出本系统的主要功能。
需求界面如下:
客户端:
1、登陆、注册界面
2、显示菜品界面
3、搜索菜品界面〔按菜品名称、种类、店铺名称进展搜索〕
4、购物车界面
5、个人信息界面
6、菜品详情界面
效劳器端:
1、登陆界面
2、订单管理、菜品管理、会员管理界面
需现功能如下:
客户端:
1、实现客户端与效劳器之间的连接
2、实现登陆、注册功能
3、实现登陆后能浏览到效劳器数据,并对数据进展一系列的操作
4、能把菜品参加到购物车,并结算生成订单
5、把生成的订单信息传回效劳器端
效劳器端:
1、实现管理员登陆
2、实现添加、删除、修改菜品信息
3、实现对客户端传过来的订单进展处理
4、实现添加、删除会员列表
功能模块图如3.1所示:
图3.1系统功能模块图
3.2模块构造与流程
3.2.1客户端
表3.1客户端概要设计表
客户端模块
简要说明
登陆模块
在连接上效劳器的前提下登陆成功
注册模块
在连接上效劳器的前提下注册成功
浏览菜品模块
从效劳器中读取数据,并把数据封装显示在菜品列表中
菜品详情模块
点击菜品进入到菜品的详细介绍和订餐效劳页面
搜索模块
按照用户选择的条件从手机数据库中搜索菜品
购物车模块
当用户定了菜品之后,所有订单信息都显示在这个模块中,并且点击结算按钮生成订单传