首页 点餐系统设计与实现

点餐系统设计与实现

举报
开通vip

点餐系统设计与实现PAGE/NUMPAGES题目:点餐系统的设计与实现负责内容:大部分代码编写〔含关键部分〕〔30%〕专业:15信管一班负责内容:需求分析以及总体设计负责内容:详细设计以及小部分代码编写论文完成日期:二Ο一七年六月四日1、系统需求分析客户端功能需求分析:登录、注册:使用者想要运行系统必须登录,如果未申请账号能够通过注册模块申请;菜谱查询:查询目前餐厅店菜单列表数据;详情查询:可以查询一个菜的全部数据,有价格、介绍和数量;在线点餐:支持用户在线下单点餐;选择座位:支持使用者在Android手机上选座位;我的...

点餐系统设计与实现
PAGE/NUMPAGES题目:点餐系统的设计与实现负责 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 :大部分代码编写〔含关键部分〕〔30%〕专业:15信管一班负责内容:需求分析以及总体设计负责内容:详细设计以及小部分代码编写论文完成日期:二Ο一七年六月四日1、系统需求分析客户端功能需求分析:登录、注册:使用者想要运行系统必须登录,如果未申请账号能够通过注册模块申请;菜谱查询:查询目前餐厅店菜单列 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 数据;详情查询:可以查询一个菜的全部数据,有价格、介绍和数量;在线点餐:支持用户在线下单点餐;选择座位:支持使用者在Android手机上选座位;我的订单:支持使能够查看自己已经下单的数据,能够删掉自己的订单;人工服务:客户端可以呼叫服务员;服务端功能分析:登录模块:管理员登录使用系统;菜谱管理:管理员能够查看当前界面的数据,能够添加、修改或者删除一个菜谱数据;用户管理:管理员能够查看到当前系统已经存在的用户信息,能够删掉一个用户信息;原 材料 关于××同志的政审材料调查表环保先进个人材料国家普通话测试材料农民专业合作社注销四查四问剖析材料 管理:管理员可以查看当前系统的原材料信息,可以添加、修改或者删除一个原材料信息,原材料库存较低时会警报;订单管理:管理员可以查看到当前的所有订单信息,可以修改订单状态,例如把一个进行中的订单修改为已经完成;具体的系统功能全部作用如下图:点餐系统后台部分前台部分点餐个人信息我的订单人工服务登录注册人工服务管理菜谱管理订单管理用户信息管理原材料管理登录退出2、目标可行性分析智能手机的出现减少了很多方面的限制,具有很多优势,人们可以随时随地的传递信息,订购商品,不论时间不论地点,正是这个优点使得智能手机能够受到越来越多人是喜爱,比如,用户智能手机点餐速度迅速比传统的点餐要快的多,大大提高了效率。由于世界经济水平的突飞猛进,科技水平得到了前所未有的巨大发展,社会正步入一个崭新的网路信息时期。因为社会持续发展的生活与工作水平,人们的非物质需求正在逐渐增加,伴随出现的就是网络技术的持续进步,当代社会网络应用变得愈加广泛,人们之间的相互沟通日趋广泛、交流也愈加简便,所有这些,使得人们的生产生活方式发生了巨大转变。是故,由于网络技术的进步,电商领域逐渐发展,极大程度上改变了人们的购物方式。在如今这个年代,几乎所有计算机使用者都能够进行网上购物的操作,而且往往乐此不疲。从长久的角度来想,安卓点餐系统的开发与应用还是存在很大的经济前景。技术可行性一般是因为现在已经存在的的技术因素而控制的,比如,是否可以进行平稳的功能开发,软、硬件功能会不会达到系统所规定的条件。如今这个时代,是网络资源化的时代,网络资源爆发式增长,这引起了所有其他相关技术的进步,所以对于技术条件来说是能够实现的。本系统单个用java语言,使用ssh技术与MySQL数据库进行开发,上述技术在现在已经很广泛且很成熟,已经无数次被应用于软件与系统研究中,所有,这个系统对科学水平来说是能够实现的。3、系统 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 分析为了使得完成的软件能够平稳运行,完善了系统流程的所有环节。对每个流程要用到的关键技术也做了充分准备,如下图:4、总体设计4.1系统设计原则系统设计和系统编码是一个统一的整体,每一部分都不可缺少。在系统设计中制定良好的编码规范和开发流程,能够确保无二义性,使得开发顺利进行,这也能提高开发这的开发效率。此外,在进行系统设计过程中,还应该遵循的主要原则如下。1、适用性原则好的系统开发出来首先要能够完成基本的功能,即满足用户的要求,这是软件开发的首要目的。如果开发出来的软件不能满足用户的需求,则此软件注定是失败的开发。在此基础上还要考虑软件的的操作性,要能保证软件在运行环境下没有bug,能让用户操作起来简单,明了,还要功能全面易用化。不应该只考虑软件的收益,否则必将面临很大的问题。2、可靠性安全性原则随着计算机网络的发展,网络除了带人人们便利之外也带开了很多安全隐患,如,隐私安全、个人财产安全等等,虽然此次开发的系统简单,但是安全问题是每个系统都必须考虑的问题。网上订餐系统中既要保护用户个人信息的安全,保证不被泄露,还要保证他们的财产安全。只有具备安全措施的系统才能够让用户放心。3、可扩展性原则现在的科技发展速度之快,不仅是研发的快,更新换代的速度也令人惊讶,科技技术不断退陈旧新,因此,为了适应时代的发展速度,系统的可扩展能力也是开发过程中要考虑的事情。则如何提高系统的可扩展性呢?这里就充分体现了设计在开发中的重要作用。在软件设计的过程中,将网上订餐系统划分成不同的功能模块,并降低模块之间的耦合度来提高系统的扩展性。4.2系统设计目标在系统开发之前要对系统进行需求分析,功能概括,难点解析等等的工作,之后对于系统大概要完成什么目标,系统的界面和设计等问题的思考来满足用户的要求。系统设计过程中将系统分解为很多不同的小的系统,然后对分成的小的系统的功能、技术进行分析讨论,制定规定,在之后的开发中,先开发小的系统之后进行整合,逐步完成开发。本系统是设计目标是建立一个基于Android技术的点餐系统,可以满足用户对手机订餐的需求。根据需求分析还有自己的生活体会,在线点餐系统一定要有以下基本的要求。〔1〕界面看着新颖活力、大方美观,吸引用户。〔2〕具有易调试性和没有bug性。〔3〕用户能够方便的查看所有的食品信息和单个用户的详细信息内容。〔4〕具有操作方便、功能完善的管理功能。4.3系统总体结构设计系统的总体结构设计是在软件开发之前必须要做好的一件基本工作,作为一个优秀的程序员不仅要有很强的编码能力,对于系统的总体结构的设计也要很精通。做好系统的总体结构设计会让系统开发顺利进行,做到事半功倍。在此次系统的总体结构设计过程中,系统分为客户端和服务端,客户端是可以在安卓智能手机上使用的,服务端采用Servlet提供服务,持久化层采用MySQL,因为MySQL的安装和配置都适合小型的系统。在进行系统的总体设计之后紧接着就是数据库的需求设计。系统整体框架采用C/S模式,即客户端/服务器模式,其中客户端一方面与用户交互,提供良好的用户界面,另一方面与服务器端进行数据交换。服务器端向客户端提供数据。管理员可以对数据进行增,删,改,查等操作。5、系统详细设计与实现本系统使用前用户需要登录验证,在登录界面中,通过继承一个Activity来实现,界面上的控件用到了EditText、Button和CheckBox等等组件,EditText主要用来实现用户##和密码的输入。登录过程中用户需要输入账号与密码,并且经由登录按钮来表达登录意图,意图表达完成,系统会经由的过程将##与密码发送到服务器端验证,并返回服务端的验证结果,如果验证正确则提示使用者登录完成,然后自行转入主界面;如果错误,则提示使用者登录失败。该界面具有保存密码成功,假如使用者在登录时勾选了"保存密码"复选框,则下次再进入到本界面用户将不需要再次输入密码,而只需要点击登录按钮即可实现登录操作,记住密码的过程是通过Android平台提供的SharedPreferences来实现的。当然如果用户还没有登录账号,则能够通过"注册"选项到用户注册界面,从而注册一个新;具体的实现效果如图所示:实现的核心代码如下:loginActivity的doInBackground的方法发起url请求,发送用户名,密码protectedStringdoInBackground{StringurlString=AppConstant.getUrl>+"ServletService?Action=login";urlString+="&loginid="+etLoginID.getText<>+"&passwords="+etPassword.getText<>;Stringjson=Helper.Request;returnjson;}loginActivity的onPostExecute的方法获取服务器返回json,验证密码是否正确loginActivity的dealLogin是当密码验证成功后跳转到DishesListActivityOnLineUsermodel=newOnLineUser<>;//设置登陆成功的用户属性model.setId>;model.setLoginid.toString<>>;model.setName>;application.setLoginUser;//弹出提示框toastUtil.show+",登录成功">;//跳转到登陆成功页面intent=newIntent;startActivity;用户成功登陆进入系统之后可以查看到当前系统所有菜谱信息,包括菜谱的图片、名称、单价和详细介绍信息,系统用了一个ListView组件来显示系统的菜谱信息,同时用户也可以通过界面左上角的搜索按钮来搜索菜谱信息,用户点击一条信息之后可以查看一个菜谱的详细介绍。具体的实现效果如图所示:实现的核心代码如下://请求获取列表数据的代码OverrideprotectedStringdoInBackground{Stringjson=null;serverUrl=AppConstant.getUrl>+"ServletService?Action=getdisheslist&shopid="+shopid;BaseUtil.LogII;json=Helper.Request;returnjson;}//解析列表数据,并设置适配器的代码list=newArrayList<>;if>>{list=gson.fromJson><>{}.getType<>>;}else{toastUtil.show<"没有数据">;}adapter=newDishesAdapter;listview1.setAdapter;点击listview中的一项,会跳转到详情页面,这其中会根据id去调用webservice查询数据库获取到详情数据//界面点击跳转的代码listview1.setOnItemClickListener{OverridepublicvoidonItemClickparent,Viewview,intposition,longid>{intent=newIntent;intent.putExtra<"id",list.get.getId<>>;startActivity;}}>;menu的实现,设置menu按键的弹出事件publicbooleanonCreateOptionsMenu{super.onCreateOptionsMenu;menu.add<0,99,0,"人工服务">.setIcon;menu.add<0,100,0,"注销登录">.setIcon;menu.add<0,101,0,"个人信息">.setIcon;menu.add<0,106,0,"我的订单">.setIcon;menu.add<0,102,0,"退出">.setIcon;returntrue;}menu选中触发的事件参考onOptionsItemSelected方法选中人工服务按钮后,会执行humanServices方法privatevoidhumanServices<>{finalString[]arg=newString[6];for{arg[i]=+"号桌";}newAlertDialog.Builder.setTitle<"选择服务桌号">.setItems{OverridepublicvoidonClick{newloadhumanServicesAsyncTask<>.execute;}}>.show<>;}分类按钮点击的代码处理,使用AlertDialog弹出框实现tvTopTitleRight.setOnClickListener{OverridepublicvoidonClick{newAlertDialog.Builder.setTitle<"选择分类">.setSingleChoiceItems{OverridepublicvoidonClick{curIndex=which;dialog.dismiss<>;shopid=listShop.get.getId<>;newloadAsyncTask<>.execute<>;}}>.setNegativeButton<"取消",null>.show<>;}}>;用户在餐厅菜谱列表当中点击一个Item可以进入到详细的介绍页面,该页面详细描述了所选择的的餐厅菜式信息,包括图片、介绍和价格等信息。同时用户可以在该界面进行下单,下单前需要输入数量,然后点击"提交"按钮来提交订单;具体的实现效果如图所示:图14在线下单界面实现的核心代码如下://通过url请求获取详情数据protectedStringdoInBackground{StringurlString=AppConstant.getUrl>+"ServletService?Action=getOneRow";urlString=urlString+"&ID="+params[0]+"&Table=dishes";Stringjson=Helper.Request;returnjson;}//解析返回的json字符串,把数据展示到界面上protectedvoidonPostExecute{super.onPostExecute;dialog.dismiss<>;if.length<>>0>{try{jsonArray=newJSONArray;jsonObject=jsonArray.getJSONObject<0>;<findViewById>.setText>;<findViewById>.setTextSize<16>;if>>{asyncImageLoader.loadBitmap,imageView1>;}Stringintro="单价:¥"+jsonObject.getString<"price">+"\n";intro+="数量:"+jsonObject.getString<"amount">+"\n";intro+="简介:"+jsonObject.getString<"intro">+"\n配料:"+jsonObject.getString<"burdennames">;tvIntro.setText;}catch{e.printStackTrace<>;}}}下单操作使用post请求,提交数据,实现代码如下//提交订单的代码protectedStringdoInBackground{StringurlString=AppConstant.getUrl>+"ServletService";Mapmap=newHashMap<>;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;returnresult;}//判断订单提交后,webservice的返回值,提示订单是否提交成功protectedvoidonPostExecute{super.onPostExecute;dialog.dismiss<>;if.equals<"1">>{toastUtil.show<"下单成功">;}elseif.equals<"-1">>{toastUtil.show<"原料不足,下单失败">;}else{toastUtil.show<"下单失败">;}}用户的下单信息将会被记录到服务端中,用户可以随时通过智能手机菜单键来打开查看自己已经下过的订单信息,包括菜式信息、下单数量、选择的座位、下单时间和当前的订单状态,同时用户也可以长按一条订单信息来弹出删除菜单,用户可以删除一条订单信息。实现的核心代码如下://通过url请求获取我的订单数据protectedStringdoInBackground{Stringjson=null;serverUrl=AppConstant.getUrl>+"ServletService?Action=getmyorderslist&userid="+user.getId<>;json=Helper.Request;returnjson;}//解析返回的json字符串,把数据展示到界面上jsonArray=newJSONArray;for;i++>{jsonObject=jsonArray.getJSONObject;ordersmodel=neworders<>;model.setId>;model.setAmount>;model.setCreatetime>;model.setPrice>;model.setUsername>;model.setImg_url>;model.setStatus>;list.add;}//设置listview的适配器adapter=newOrdersAdapter;listview1.setAdapter;取消订单界面,是通过弹出框实现,实现代码如下//设置弹出取消订单的提示框newAlertDialog.Builder.setTitle<"选择操作">.setItems{OverridepublicvoidonClick{switch{case0取消newdeleteAsyncTask<>.execute.getId<>+"">;}}}>.show<>;取消订单实现代码//发送取消订单的url请求protectedStringdoInBackground{serverUrl=AppConstant.getUrl>+"ServletService?Action=cancelOrders&ID="+params[0];Stringjson=Helper.Request;returnjson;}//判定webservice的返回值,提示是否取消成功protectedvoidonPostExecute{super.onPostExecute;dialog.dismiss<>;if.length<>>0>{toastUtil.show<"取消成功">;newloadAsyncTask<>.execute<>;}else{toastUtil.show<"取消失败">;}}服务端模块具有两方面作用,其一是给客户端提供数据服务接口,客户端调用服务端的接口来得到数据库里面的菜谱、订单等所有数据,然后显示在客户端界面上。服务端存在另外一个作用:保证信息的动态维护,比如菜谱信息维护、用户信息维护、订单信息维护以及菜谱类型信息维护。比如管理员能够于服务端依据真实状况增加一个菜式数据、删除一个菜式数据等操作。使用者在前台呼叫人工服务的操作不可以马上执行,需要管理员于后台进行信息管理审核以确认它的操作性,管理员单击后台界面中的"人工服务"进入用户人工服务处理页面,该页面会显示近期所以的用户呼叫的人工服务。人工服务处理页面显示的是呼叫人,呼叫时间等信息。人工服务主要通过从humanservices表中查询对应的用户信息并显示在页面中,管理员审核后再对服务状态进行修改,系统会根据提交的操作更新数据表。人工服务信息页面如图所示。菜谱管理模块用来完成对菜谱信息的添加,修改,删除等功能,菜谱管理模块流程如图20所示,展示了管理员对菜谱的操作过程和系统处理过程。运行情况如图所示:用户管理模块用来完成对用户信息的修改,删除等功能,用户管理模块流程如图所示,展示了管理员对用户信息的操作过程和系统处理过程。运行情况如图所示:订单管理模块主要完成对订单状态的修改和删除,订单管理模块作用流程如下。运行情况如图所示:6、系统测试测试内容"登录测试"用例与结果如下表:"登录测试"测试系统安卓点餐系统版本功能模块名登录模块对应开发人员巩金明,楼轩宇,郭新波用例编号Test1用例设计者巩金明,楼轩宇,郭新波测试人员巩金明,楼轩宇,郭新波测试日期2017.5.29功能特性验证登录密码测试目的验证登陆用户的密码的是否正确前置条件运行程序测试步骤1、输入正确密码2、输入错误密码3、不输入密码期望结果1、登陆成功。2、登录失败3、登陆失败实际结果与期望结果一致结论登录模块功能正确"我的订单"测试用例与结果如下表:"我的订单"测试系统安卓点餐系统版本功能模块名我的订单对应开发人员巩金明,楼轩宇,郭新波用例编号Test2用例设计者巩金明,楼轩宇,郭新波测试人员巩金明,楼轩宇,郭新波测试日期2017.5.29功能特性查看相关信息测试目的验证输入和显示是否正确前置条件登录成功,通过主界面进入到我的订单界面测试步骤1、登录2、点餐3、查看我的订单期望结果1、新增订单数据添加成功2、订单状态显示已完成或未完成3、没有订单实际结果与期望结果一致"用户管理"测试用例与测试结果如下表:"用户管理"测试系统安卓点餐系统版本功能模块名用户管理对应开发人员巩金明,楼轩宇,郭新波用例编号Test3用例设计者巩金明,楼轩宇,郭新波测试人员巩金明,楼轩宇,郭新波测试日期2017.5.29功能特性测试相关功能测试目的验证对用户资料的修改,删除,搜索前置条件登录后台,进入管理员界面测试步骤1、搜索用户名字2、修改用户资料3、删除用户资料期望结果1、搜索用户成功2、修改用户资料成功3、删除用户资料成功实际结果与期望结果一致6.2测试结果通过对安卓点餐系统的测试,登录功能,我的订单功能,用户管理功能,对菜单和用户资料修改的基本功能都能成功实现。当添加订单成功后,数据库表中就增加一行,否则添加订单信息失败。通过测试,安卓订单系统的功能基本符合需求分析的要求,该子系统的功能以及逻辑基本也符合要求。__15信管1班组长:巩金明〔40%〕20151221034组员:郭新波〔30%〕20151221035
本文档为【点餐系统设计与实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
is_529050
暂无简介~
格式:doc
大小:966KB
软件:Word
页数:17
分类:其他高等教育
上传时间:2022-04-30
浏览量:3