基于安卓技术的点餐系统的设计与实现_第1页
基于安卓技术的点餐系统的设计与实现_第2页
基于安卓技术的点餐系统的设计与实现_第3页
基于安卓技术的点餐系统的设计与实现_第4页
基于安卓技术的点餐系统的设计与实现_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

基于安卓技术的点餐系统的设计与实现摘要随着科学技术和社会经济的不断提高,人们对效劳的快捷、便利性要求也越来越高,从而对智能上的应用软件提出了更高的要求。一个基于安卓技术的点餐系统能够为用户提供一个方便日常操作的便捷点餐功能,它能够满足广阔用户的订餐需要,为需求双方提供了一个共赢的平台。本系统正是为了实现网上订餐而设计,所包含到的有关技术有:Android平台、MySQL技术、Java语言等技术。能够实现订餐、选择座位、我的订餐、人工效劳、菜单管理、用户管理等作用。用户注册后,登陆客户端即可完成订餐、浏览菜谱等功能。运行测试说明:该系统功能完善、运行顺畅稳定,具有一定的商业实用价值。设计开发过程中,分析并解决了假设干技术问题,稳固并深化了本科阶段所学的知识。关键词:Android;MySQL;Java;测试TheDesignandImplementationofMealOrderingSystemBasedonAndroidTechnologyAbstractWiththeconstantimprovementofscienceandtechnologyandsocialeconomy,peoplealsohaveincreasinglyhighrequirementsfortheefficiencyandconvenienceofservice,thusproposingahigherrequirementfortheapplicationsoftwareonsmartphone.AmealorderingsystembasedonAndroidtechnology,whichcanprovideafastandeasyorderingfunctionconvenientfordailyoperation,canmeetnumerouscellphoneusers’demandforfoodorderingandprovideawin-winplatformforbothdemandsides.Thissystemisexactlydesignedforachievingonlinemealorderingoncellphone,andinvolvesthefollowingrelevanttechnologies:Androidplatform,MySQLtechnology,Javalanguage.Itmainlyachievesfunctionsoffoodordering,seatselection,myorder,manualservice,menumanagement,andusermanagement.Afterregistration,theuserscanfulfillthefunctionsoffoodorderingandmenubrowsingbyloggingintheclient.Theoperationaltestindicatesthat:thissystemiscompleteinfunctionandsmoothandsteadyinoperation,andhascertainvalueofcommercialutility.Intheprocessofdesignanddevelopment,severaltechnologicalproblemsareanalyzedandsolved,whichconsolidatesanddeepenstheknowledgelearnedduringundergraduatestudy.Keywords:Android;MySQL;Java;test目录论文总页数:34页1绪论11.1课题研究背景和意义11.2课题可行性分析12系统分析22.1概述2系统分析的原那么2系统分析的方法22.2系统需求分析22.3系统流程分析42.4系统用例图52.5开发环境平台的选择63总体设计73.1系统设计原那么73.2系统设计目标73.3系统总体结构设计84数据库设计84.1效劳端数据库设计84.2数据库ER图105系统详细设计与实现115.1登录模块的实现115.2菜谱模块的实现155.3在线下单模块的实现185.4用户订单模块的实现215.5效劳端模块的实现24人工效劳模块的实现25菜谱管理模块的实现26用户管理模块的实现26订单管理模块的实现285系统测试295.1测试方法295.2测试内容295.3测试结果30总结31参考文献32致谢33声明341绪论1.1课题研究背景和意义由于智能和软件愈加广泛的开展和运用,目前“app〞已经成为广受社会关注的焦点,应用逐渐变成人们进行信息交流的主要工具。在目前各种品牌争相斗艳的时期,谷歌与2023年开始开发出一款广受大家关注的移动操作系统-Android。这一移动操作系统借助其极高的开放性与较好的优化程度,获得了生产厂家与适用人群越来越多的重视。如今科技突飞猛进、人们的生活节奏也逐渐加快,由于移动终端技术的日趋成熟,社会对于设备的功能需求变得愈来愈大,已逐渐从以往的技术需求转变为功能需求,所以,移动软件系统的需求也提高了很多。本设计是以Android操作系统为根底的“基于android技术的点餐系统〞软件的设计与实现。为了方便用户可以随时随地查看点餐信息,一种高效的方法就是将点餐做成应用程序拓展到用户的终端设备上,并且提供一些辅助功能。所以这次毕设的目标就致力于开发出一款基于Android平台的点餐系统,来满足用户的需求。现在社会上的的工作压力很大并有增加的趋势,人们已经离不开有网络的生活,网络逐渐变成大家人生的重要组成。网上订餐是专门为工作较忙以及经常不出门的“宅人〞设计的,不需要离家、不需要诳街就可以便捷购置到想要的食物的专业程序。此款系统可以不阻碍使用者的生活轨迹,又可以增添使用者生活乐趣、简化购物程序,同时为许多商家提供了更多契机。1.2课题可行性分析智能的出现减少了很多方面的限制,具有很多优势,人们可以随时随地的传递信息,订购商品,不管时间不管地点,正是这个优点使得智能能够受到越来越多人是喜爱,比方,用户智能点餐速度迅速比传统的点餐要快的多,大大提高了效率。1.经济可行性由于世界经济水平的突飞猛进,科技水平得到了前所未有的巨大开展,社会正步入一个崭新的网路信息时期。因为社会持续开展的生活与工作水平,人们的非物质需求正在逐渐增加,伴随出现的就是网络技术的持续进步,当代社会网络应用变得愈加广泛,人们之间的相互沟通日趋广泛、交流也愈加简便,所有这些,使得人们的生产生活方式发生了巨大转变。是故,由于网络技术的进步,电商领域逐渐开展,极大程度上改变了人们的购物方式。在如今这个年代,几乎所有计算机使用者都能够进行网上购物的操作,而且往往乐此不疲。从长久的角度来想,安卓点餐系统的开发与应用还是存在很大的经济前景。2.技术可行性技术可行性一般是因为现在已经存在的的技术因素而控制的,比方,是否可以进行平稳的功能开发,软、硬件功能会不会到达系统所规定的条件。如今这个时代,是网络资源化的时代,网络资源爆发式增长,这引起了所有其他相关技术的进步,所以对于技术条件来说是能够实现的。本系统单个用java语言,使用ssh技术与MySQL数据库进行开发,上述技术在现在已经很广泛且很成熟,已经无数次被应用于软件与系统研究中,所有,这个系统对科学水平来说是能够实现的。2系统分析重点介绍了基于Android技术的点餐系统的可行性分析,这属于本系统开发工作中的关键构成。简单的介绍系统分析的重要性和方法,针对本系统,详细介绍系统的需求和系统流程。2.1概述系统分析简单的就是分析系统的需求和功能,确认系统的功能的业务逻辑,将系统分成不同的模块仔细的研究。包括系统流程,于总体设计的引导下,确定新系统逻辑功能。本着为用户负责的规定,分析系统的过程。系统分析的原那么做好系统分析工作很重要,系统分析能为软件开发除去很多困难,减轻很多麻烦,当然系统分析不是简单的分析系统的完成功能,系统分析要遵循一定的原那么,这样才能保证分析工作能够顺利进行,系统分析的原那么有:1.设计标准原那么2.面向用户的原那么3.结构化分析的原那么在系统研究之前,分析以Android技术为根底的点餐结构应该到达的作用和实现的目标。首先从大的方面来讲,它应该能够完成点餐功能,从小的方面来说系统应该具有用户退订的功能。除了功能之外,同时系统也要包含一定扩展能力。系统分析的方法结构化的系统分析方法经典不变,它的精髓也可以用“自顶向下的逐层分解,逐步细分,逐步求精“几个字来概括。因此,本系统也做到由抽象到具体,由大到小的措施实现结构化分析。在完成整个系统的开发的始终的过程中,人们往往将大量的精力放在编码上,以为在规定的时间内完成编码,实现功能就算是完成软件的开发了,而忽略了编码之前的系统设计。其实系统设计和系统编码是一个统一的整体,每一局部都不可缺少。在系统设计中制定良好的编码标准和开发流程,能够确保无二义性,使得开发顺利进行,这也能提高开发这的开发效率。2.2系统需求分析客户端功能需求分析:登录、注册:使用者想要运行系统必须登录,如果未申请账号能够通过注册模块申请;菜谱查询:查询目前餐厅店菜单列表数据;详情查询:可以查询一个菜的全部数据,有价格、介绍和数量;在线点餐:支持用户在线下单点餐;选择座位:支持使用者在Android上选座位;我的订单:支持使能够查看自己已经下单的数据,能够删掉自己的订单;人工效劳:客户端可以呼叫效劳员;效劳端功能分析:登录模块:管理员登录使用系统;菜谱管理:管理员能够查看当前界面的数据,能够添加、修改或者删除一个菜谱数据;用户管理:管理员能够查看到当前系统已经存在的用户信息,能够删掉一个用户信息;原材料管理:管理员可以查看当前系统的原材料信息,可以添加、修改或者删除一个原材料信息,原材料库存较低时会警报;订单管理:管理员可以查看到当前的所有订单信息,可以修改订单状态,例如把一个进行中的订单修改为已经完成;具体的系统全部作用如图1:点餐系统点餐系统后台局部前台局部点餐个人信息我的订单人工效劳登录注册人工效劳管理菜谱管理订单管理用户信息管理原材料管理登录退出图1系统功能框架图2.3系统流程分析为了使得完成的软件能够平稳运行,完善了系统流程的所有环节。对每个流程要用到的关键技术也做了充分准备。首先本系统用户在使用系统前都必须经过用户登录验证,只有验证通过的用户才能进入系统,用户流程图和管理员流程图如图2和图3所示。图2用户流程图图3管理员流程图2.4系统用例图用户用例图:图4用户用例图本系统包含两个构成局部即使用者与管理员。图4为用户用例图。普通用户有登录、注册、浏览菜谱、点餐、我的订单、人工效劳、个人信息七个一级用例。管理员用例图:图5管理员用例图图5为管理员用例图。管理员有后台登录管理、人工效劳、菜谱管理、用户管理、订单管理、原材料管理6个一级用例。2.5开发环境平台的选择以Eclipse为开发工具,Tomcat为Web应用效劳器,采用MySql数据库存储数据。Eclipse是一个企业级工作平台,利用它可以在数据库和JavaEE的开发、发布以及效劳器的整合等方面极大的提高工作效率。Tomcat是一个小型的轻量级应用效劳器,它技术先进、性能稳定、占用资源小、扩展性好、使用简便而且开源。MySql是一个开放源码的小型关联式数据库管理系统,被广泛的应用在中小型网站中。它具有体积小、速度快、总体本钱低、开放源码等特点。任何事物要运行,都要有它的环境,Android也要有它的环境才能够运行,下面介绍Android的开发环境配置。搭建开发环境需要的软件:操作系统:windowXP或linux软件包:AndroidSDK(SoftwareDevelopmentkitJavaDevelopmentkit)、ADT(AndroidDeveloopmentTool〕IDE环境:EclipseIDE+ADTEclipse3.3以上JDK:JavaRuntimeEnvironment虚拟机、(JDK)JavaDevelopmentkit3总体设计3.1系统设计原那么系统设计和系统编码是一个统一的整体,每一局部都不可缺少。在系统设计中制定良好的编码标准和开发流程,能够确保无二义性,使得开发顺利进行,这也能提高开发这的开发效率。此外,在进行系统设计过程中,还应该遵循的主要原那么如下。1、适用性原那么好的系统开发出来首先要能够完成根本的功能,即满足用户的要求,这是软件开发的首要目的。如果开发出来的软件不能满足用户的需求,那么此软件注定是失败的开发。在此根底上还要考虑软件的的操作性,要能保证软件在运行环境下没有bug,能让用户操作起来简单,明了,还要功能全面易用化。不应该只考虑软件的收益,否那么必将面临很大的问题。2、可靠性平安性原那么随着计算机网络的开展,网络除了带人人们便利之外也带开了很多平安隐患,如,隐私平安、个人财产平安等等,虽然此次开发的系统简单,但是平安问题是每个系统都必须考虑的问题。网上订餐系统中既要保护用户个人信息的平安,保证不被泄露,还要保证他们的财产平安。只有具备平安措施的系统才能够让用户放心。3、可扩展性原那么现在的科技开展速度之快,不仅是研发的快,更新换代的速度也令人惊讶,科技技术不断退陈旧新,因此,为了适应时代的开展速度,系统的可扩展能力也是开发过程中要考虑的事情。那么如何提高系统的可扩展性呢?这里就充分表达了设计在开发中的重要作用。在软件设计的过程中,将网上订餐系统划分成不同的功能模块,并降低模块之间的耦合度来提高系统的扩展性。3.2系统设计目标在系统开发之前要对系统进行需求分析,功能概括,难点解析等等的工作,之后对于系统大概要完成什么目标,系统的界面和设计等问题的思考来满足用户的要求。系统设计过程中将系统分解为很多不同的小的系统,然后对分成的小的系统的功能、技术进行分析讨论,制定规定,在之后的开发中,先开发小的系统之后进行整合,逐步完成开发。本系统是设计目标是建立一个基于Android技术的点餐系统,可以满足用户对订餐的需求。根据需求分析还有自己的生活体会,在线点餐系统一定要有以下根本的要求。〔1〕界面看着新颖活力、大方美观,吸引用户。〔2〕具有易调试性和没有bug性。〔3〕用户能够方便的查看所有的食品信息和单个用户的详细信息内容。〔4〕具有操作方便、功能完善的管理功能。3.3系统总体结构设计系统的总体结构设计是在软件开发之前必须要做好的一件根本工作,作为一个优秀的程序员不仅要有很强的编码能力,对于系统的总体结构的设计也要很精通。做好系统的总体结构设计会让系统开发顺利进行,做到事半功倍。在此次系统的总体结构设计过程中,系统分为客户端和效劳端,客户端是可以在安卓智能上使用的,效劳端采用Servlet提供效劳,持久化层采用MySQL,因为MySQL的安装和配置都适合小型的系统。在进行系统的总体设计之后紧接着就是数据库的需求设计。系统整体框架采用C/S模式,即客户端/效劳器模式,其中客户端一方面与用户交互,提供良好的用户界面,另一方面与效劳器端进行数据交换。效劳器端向客户端提供数据。管理员可以对数据进行增,删,改,查等操作。图6系统C/S图4数据库设计4.1效劳端数据库设计E-R图属于一类概念模型,其本质是由真实社会过渡至虚拟世界的过度点。概念模型表示虚拟世界的局部,它表示真实社会过渡至虚拟世界的第一层抽象,极大的促进了数据库设计者参与数据库设计的进程,存在完善的语义表述功能,可以便捷完善的描述用众的所有语义概念,此外,其还应当合理、清晰和方便使用者理解。在开发系统的时候,要考虑数据库的设计,第一要考虑的就是数据持久层要用的工具,由于本系统要包好的数据库表并不多,一个小型的数据库工具就足以符合本系统的需求,所以本系统的数据库采用了MySQL。本设计一共使用了5个数据库表,每个表的详细设计结构:管理员表〔admins〕管理员表中包含这管理员的相关数据,其表结构详见表1:表1管理员表序号列名数据类型长度标识主键允许空说明1idint11是是否auto_increment2loginidvarchar255是3passwordsvarchar255是菜谱表〔dishes〕菜谱表中存储着菜谱相关信息,其表结构详见表2:表2菜谱表序号列名数据类型长度标识主键允许空说明1idint11是是否auto_increment2titletext是标题3shopidint11是类型ID4typenametext是类型名称5introtext是详细介绍6img_urlvarchar255是图片7pricedouble11是价格8amountdouble11是数量9burdennamesvarchar原材料10burdensvarchar原材料ID订单表〔orders〕 订单表中存储着订单的所有数据,其表结构详见表3:表3订单表序号列名数据类型标识主键允许空说明1idint是是否auto_increment2useridint是3usernametext是下单人5statusint是6dishesidint是7pricedouble是8amountdouble是9createtimevarchar是下单时间食物分类表〔shops〕食物分类表中存储着食物分类的相关信息,其表结构如表4所示:表4食物分类表序号列名数据类型长度标识主键允许空说明1idint11是是否auto_increment2nametext是类型名称用户表〔users〕 用户表中存储着用户的相关数据,其表结构详见表5:表5用户表序号列名数据类型长度标识主键允许空说明1idint11是是否auto_increment2loginidvarchar255是登录账号3nametext是姓名4passwordsvarchar255是密码4.2数据库ER图E-R图是DOA(DataOrienteerApproach)的一种主要的设计方法,它的作用是处理对象的业务领域和系统的理想化样式,从概念数据模型到E-RApproach,根据实际的报表做出E-R图。E-R图有实体及其间的对应关系组成。E-R图亦称为实体-联系图(EntityRelationshipDiagram),提供了表示实体型、属性和联系的方法,能够表示现实世界的概念模型。安卓点餐系统的E-R图详见7:图7系统E-R图安卓点餐系统的物理数据详见图8:图8物理数据模型图5系统详细设计与实现5.1登录模块的实现本系统使用前用户需要登录验证,在登录界面中,通过继承一个Activity来实现,界面上的控件用到了EditText、Button和CheckBox等等组件,EditText主要用来实现用户帐号和密码的输入。登录过程中用户需要输入账号与密码,并且经由登录按钮来表达登录意图,意图表达完成,系统会经由的过程将帐号与密码发送到效劳器端验证,并返回效劳端的验证结果,如果验证正确那么提示使用者登录完成,然后自行转入主界面;如果错误,那么提示使用者登录失败。该界面具有保存密码成功,假设使用者在登录时勾选了“保存密码〞复选框,那么下次再进入到本界面用户将不需要再次输入密码,而只需要点击登录按钮即可实现登录操作,记住密码的过程是通过Android平台提供的SharedPreferences来实现的。当然如果用户还没有登录账号,那么能够通过“注册〞选项链接到用户注册界面,从而注册一个新号码;使用者登录过程图详见图9,展示了使用者登录功能的操作过程和系统处理过程。图9登录界面流程图具体的实现效果如图9所示:图9登录界面实现的核心代码如下:loginActivity的doInBackground的方法发起url请求,发送用户名,密码protectedStringdoInBackground(String...params){StringurlString=AppConstant.getUrl(getApplicationContext())+"ServletService?Action=login";urlString+="&loginid="+etLoginID.getText()+"&passwords="+etPassword.getText(); Stringjson=Helper.Request(urlString); returnjson;}loginActivity的onPostExecute的方法获取效劳器返回json,验证密码是否正确loginActivity的dealLogin是当密码验证成功后跳转到DishesListActivityOnLineUsermodel=newOnLineUser();//设置登陆成功的用户属性 model.setId(jsonObject.getInt("id")); model.setLoginid(etLoginID.getText().toString()); model.setName(jsonObject.getString("name")); application.setLoginUser(model);//弹出提示框 toastUtil.show(model.getName()+",登录成功");//跳转到登陆成功页面 intent=newIntent(LoginActivity.this,DishesListActivity.class); startActivity(intent);5.2菜谱模块的实现用户成功登陆进入系统之后可以查看到当前系统所有菜谱信息,包括菜谱的图片、名称、单价和详细介绍信息,系统用了一个ListView组件来显示系统的菜谱信息,同时用户也可以通过界面左上角的搜索按钮来搜索菜谱信息,用户点击一条信息之后可以查看一个菜谱的详细介绍。菜谱模块作用流程图详见图10,展示了订餐模块的用户操作过程和系统处理过程。图10菜谱功能流程图具体的实现效果如图11和12所示:图11菜谱大全界面图12菜谱分类界面实现的核心代码如下://请求获取列表数据的代码@Override protectedStringdoInBackground(String...params){ Stringjson=null; serverUrl=AppConstant.getUrl(getApplicationContext())+"ServletService?Action=getdisheslist&shopid=" +shopid; BaseUtil.LogII(serverUrl); json=Helper.Request(serverUrl); returnjson; }//解析列表数据,并设置适配器的代码list=newArrayList<dishes>();if(!TextUtils.isEmpty(result.trim())){ list=gson.fromJson(result,newTypeToken<List<dishes>>(){}.getType());}else{ toastUtil.show("没有数据");}adapter=newDishesAdapter(DishesListActivity.this,list);listview1.setAdapter(adapter);点击listview中的一项,会跳转到详情页面,这其中会根据id去调用webservice查询数据库获取到详情数据//界面点击跳转的代码listview1.setOnItemClickListener(newOnItemClickListener(){ @Override publicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){ intent=newIntent(DishesListActivity.this,GoodDetailActivity.class); intent.putExtra("id",list.get(position).getId()); startActivity(intent); }});menu的实现,设置menu按键的弹出事件 publicbooleanonCreateOptionsMenu(Menumenu){ super.onCreateOptionsMenu(menu); menu.add(0,99,0,"人工效劳").setIcon(R.drawable.icon_application); menu.add(0,100,0,"注销登录").setIcon(R.drawable.icon_application); menu.add(0,101,0,"个人信息").setIcon(R.drawable.icon_application); menu.add(0,106,0,"我的订单").setIcon(R.drawable.icon_application); menu.add(0,102,0,"退出").setIcon(R.drawable.icon_application); returntrue; }menu选中触发的事件参考onOptionsItemSelected方法选中人工效劳按钮后,会执行humanServices方法 privatevoidhumanServices(){ finalString[]arg=newString[6]; for(inti=0;i<arg.length;i++){ arg[i]=(i+1)+"号桌"; } newAlertDialog.Builder(this).setTitle("选择效劳桌号").setItems(arg,newDialogInterface.OnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich){ newloadhumanServicesAsyncTask().execute(arg[which]); } }).show(); }分类按钮点击的代码处理,使用AlertDialog弹出框实现tvTopTitleRight.setOnClickListener(newOnClickListener(){ @Override publicvoidonClick(Viewv){ newAlertDialog.Builder(DishesListActivity.this).setTitle("选择分类") .setSingleChoiceItems(s,curIndex,newDialogInterface.OnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich){ curIndex=which; dialog.dismiss(); shopid=listShop.get(curIndex).getId(); newloadAsyncTask().execute(); } }).setNegativeButton("取消",null).show(); } });5.3在线下单模块的实现用户在餐厅菜谱列表当中点击一个Item可以进入到详细的介绍页面,该页面详细描述了所选择的的餐厅菜式信息,包括图片、介绍和价格等信息。同时用户可以在该界面进行下单,下单前需要输入数量,然后点击“提交〞按钮来提交订单;在线下单模块功能流程图如图13所示,展示了在线下单的用户操作过程和系统处理过程。图13在线下单流程图具体的实现效果如图14所示:图14在线下单界面实现的核心代码如下://通过url请求获取详情数据protectedStringdoInBackground(String...params){ StringurlString=AppConstant.getUrl(getApplicationContext())+"ServletService?Action=getOneRow"; urlString=urlString+"&ID="+params[0]+"&Table=dishes"; Stringjson=Helper.Request(urlString); returnjson; }//解析返回的json字符串,把数据展示到界面上protectedvoidonPostExecute(Stringresult){ super.onPostExecute(result); dialog.dismiss(); if(result.trim().length()>0){ try{ jsonArray=newJSONArray(result); jsonObject=jsonArray.getJSONObject(0); ((TextView)findViewById(R.id.tvTopTitleCenter)).setText(jsonObject.getString("title")); ((TextView)findViewById(R.id.tvTopTitleCenter)).setTextSize(16); if(!TextUtils.isEmpty(jsonObject.getString("img_url"))){ asyncImageLoader.loadBitmap(serverUrl+"UploadFile/"+jsonObject.getString("img_url"), imageView1); } Stringintro="单价:¥"+jsonObject.getString("price")+"\n"; intro+="数量:"+jsonObject.getString("amount")+"\n"; intro+="简介:"+jsonObject.getString("intro")+"\n配料:"+jsonObject.getString("burdennames"); tvIntro.setText(intro); }catch(JSONExceptione){ e.printStackTrace(); } } }下单操作使用post请求,提交数据,实现代码如下//提交订单的代码protectedStringdoInBackground(String...params){ StringurlString=AppConstant.getUrl(getApplicationContext())+"ServletService"; Map<String,Object>map=newHashMap<String,Object>(); map.put("Action","createorder"); map.put("dishesid",id); map.put("userid",user.getId()); map.put("username",user.getName()); map.put("amount",etAmount.getText()); Stringresult=Helper.Post(urlString,map); returnresult; }//判断订单提交后,webservice的返回值,提示订单是否提交成功protectedvoidonPostExecute(Stringresult){ super.onPostExecute(result); dialog.dismiss(); if(result!=null&&result.trim().equals("1")){ toastUtil.show("下单成功"); }elseif(result.trim().equals("-1")){ toastUtil.show("原料缺乏,下单失败"); }else{ toastUtil.show("下单失败"); } }5.4用户订单模块的实现用户的下单信息将会被记录到效劳端中,用户可以随时通过智能菜单键来翻开查看自己已经下过的订单信息,包括菜式信息、下单数量、选择的座位、下单时间和当前的订单状态,同时用户也可以长按一条订单信息来弹出删除菜单,用户可以删除一条订单信息。我的订单模块作用流程图详见图15,展示了我的订单模块用户的操作过程和系统处理过程。图15我的订单流程图具体的实现效果如图16所示:图16我的订单界面实现的核心代码如下://通过url请求获取我的订单数据protectedStringdoInBackground(String...params){ Stringjson=null; serverUrl=AppConstant.getUrl(getApplicationContext())+"ServletService?Action=getmyorderslist&userid=" +user.getId(); json=Helper.Request(serverUrl); returnjson; }//解析返回的json字符串,把数据展示到界面上jsonArray=newJSONArray(result);for(inti=0;i<jsonArray.length();i++){ jsonObject=jsonArray.getJSONObject(i); ordersmodel=neworders(); model.setId(jsonObject.getInt("id")); model.setAmount(jsonObject.getDouble("amount")); model.setCreatetime(jsonObject.getString("createtime"));model.setPrice(jsonObject.getDouble("price")); model.setUsername(jsonObject.getString("title")); model.setImg_url(jsonObject.getString("img_url")); model.setStatus(jsonObject.getInt("status")); list.add(model);}//设置listview的适配器adapter=newOrdersAdapter(MyOrdersListActivity.this,list);listview1.setAdapter(adapter);取消订单界面,是通过弹出框实现,实现代码如下//设置弹出取消订单的提示框newAlertDialog.Builder(this).setTitle("选择操作").setItems(arg,newDialogInterface.OnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich){ switch(which){ case0://取消 newdeleteAsyncTask().execute(list.get(position).getId()+""); } } }).show();取消订单实现代码//发送取消订单的url请求 protectedStringdoInBackground(String...params){ serverUrl=AppConstant.getUrl(getApplicationContext())+"ServletService?Action=cancelOrders&ID=" +params[0]; Stringjson=Helper.Request(serverUrl); returnjson; }//判定webservice的返回值,提示是否取消成功protectedvoidonPostExecute(Stringresult){ super.onPostExecute(result); dialog.dismiss(); if(result!=null&&result.trim().length()>0){ toastUtil.show("取消成功"); newloadAsyncTask().execute(); }else{ toastUtil.show("取消失败"); } }5.5效劳端模块的实现效劳端模块具有两方面作用,其一是给客户端提供数据效劳接口,客户端调用效劳端的接口来得到数据库里面的菜谱、订单等所有数据,然后显示在客户端界面上。效劳端存在另外一个作用:保证信息的动态维护,比方菜谱信息维护、用户信息维护、订单信息维护以及菜谱类型信息维护。比方管理员能够于效劳端依据真实状况增加一个菜式数据、删除一个菜式数据等操作。图17效劳端模块人工效劳模块的实现使用者在前台呼叫人工效劳的操作不可以马上执行,需要管理员于后台进行信息管理审核以确认它的操作性,管理员单击后台界面中的“人工效劳〞进入用户人工效劳处理页面,该页面会显示近期所以的用户呼叫的人工效劳。人工效劳处理页面显示的是呼叫人,呼叫时间等信息。人工效劳主要通过从humanservices表中查询对应的用户信息并显示在页面中,管理员审核后再对效劳状态进行修改,系统会根据提交的操作更新数据表。流程图如图18所示。图18人工效劳模块流程图人工效劳信息页面如图19所示。图19人工效劳信息图菜谱管理模块的实现菜谱管理模块用来完成对菜谱信息的添加,修改,删除等功能,菜谱管理模块流程如图20所示,展示了管理员对菜谱的操作过程和系统处理过程。图20菜谱管理流程图运行情况如图21所示:图21菜谱管理信息图用户管理模块的实现用户管理模块用来完成对用户信息的修改,删除等功能,用户管理模块流程如图22所示,展示了管理员对用户信息的操作过程和系统处理过程。图22用户管理流程图运行情况如图23所示:图23用户管理信息图订单管理模块的实现订单管理模块主要完成对订单状态的修改和删除,订单管理模块作用流程详见图24。图24订单管理流程图运行情况如图

温馨提示

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

评论

0/150

提交评论