点餐系统设计_第1页
点餐系统设计_第2页
点餐系统设计_第3页
点餐系统设计_第4页
点餐系统设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

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

2、:支持使用者在Android 上选座位;我的订单:支持使能够查看自己已经下单的数据,能够删掉自己的订单;人工效劳:客户端可以呼叫效劳员;效劳端功能分析:登录模块:治理员登录使用系统;菜谱治理:治理员能够查看当前界面的数据,能够添加、修改或者删除一个菜谱数据;用户治理:治理员能够查看到当前系统已经存在的用户信息,能够删掉一个用户信息;原材料治理:治理员可以查看当前系统的原材料信息,可以添加、修改或者删除一个原材料信息,原材料库存较低时会警报;订单治理:治理员可以查看到当前的所有订单信息,可以修改订单状态,例如把一个进行中的订单修改为已经完成具体的系统功能全部作用如下列图:点餐系统2、目标可行性分

3、析智能 的出现减少了很多方面的限制,具有很多优势,人们可以随时随地的传递信息,订购商品,不管时间不管地点,正是这个优点使得智能 能够受到越来越多人是喜爱,比方,用户智能 点餐速度迅速比传统的点餐要快的多,大大提升了效率.1 .经济可行性由于世界经济水平的突飞猛进,科技水平得到了前所未有的巨大开展,社会正步入一个崭新的网路信息时期.由于社会持续开展的生活与工作水平,人们的非物质需求正在逐渐增加,伴随出现的就是网络技术的持续进步,当代社会网络应用变得愈加广泛,人们之间的相互沟通日趋广泛、交流也愈加简便,所有这些,使得人们的生产生活方式发生了巨大转变.是故,由于网络技术的进步,电商领域逐渐开展,极大

4、程度上改变了人们的购物方式.在如今这个年代,几乎所有计算机使用者都能够进行网上购物的操作,而且往往乐此不疲.从长久的角度来想,安卓点餐系统的开发与应用还是存在很大的经济前景.2 .技术可行性技术可行性一般是由于现在已经存在的的技术因素而限制的,比方,是否可以进行平稳的功能开发,软、硬件功能会不会到达系统所规定的条件.如今这个时代,是网络资源化的时代,网络资源爆发式增长,这引起了所有其他相关技术的进步,所以对于技术条件来说是能够实现的.本系统单个用java语言,使用ssh技术与MySQ激据库进行开发,上述技术在现在已经很广泛且很成熟,已经无数次被应用于软件与系统研究中,所有,这个系统对科学水平来

5、说是能够实现的.3、系统流程分析为了使得完成的软件能够平稳运行,完善了系统流程的所有环节.对每个流程要用到的关键技术也做了充分准备,如下列图:4、总体设计4.1 系统设计原那么系统设计和系统编码是一个统一的整体,每一局部都不可缺少.在系统设计中制定良好的编码标准和开发流程,能够保证无二义性,使得开发顺利进行,这也能提升开发这的开发效率.止匕外,在进行系统设计过程中,还应该遵循的主要原那么如下.1、适用性原那么好的系统开发出来首先要能够完成根本的功能,即满足用户的要求,这是软件开发的首要目的.如果开发出来的软件不能满足用户的需求,那么此软件注定是失败的开发.在此根底上还要考虑软件的的操作性,要能

6、保证软件在运行环境下没有bug,能让用户操作起来简单,明了,还要功能全面易用化.不应该只考虑软件的收益,否那么必将面临很大的问题.2、可靠性平安性原那么随着计算机网络的开展,网络除了带人人们便利之外也带开了很多平安隐患,如,隐私平安、个人财产平安等等,虽然此次开发的系统简单,但是平安问题是每个系统都必须考虑的问题.网上订餐系统中既要保护用户个人信息的平安,保证不被泄露,还要保证他们的财产平安.只有具备平安举措的系统才能够让用户放心.3、可扩展性原那么现在的科技开展速度之快,不仅是研发的快,更新换代的速度也令人惊讶,科技技术不断退陈旧新,因此,为了适应时代的开展速度,系统的可扩展水平也是开发过程

7、中要考虑的事情.那么如何提升系统的可扩展性呢这里就充分表达了设计在开发中的重要作用.在软件设计的过程中,将网上订餐系统划分成不同的功能模块,并降低模块之间的耦合度来提升系统的扩展性.4.2 系统设计目标在系统开发之前要对系统进行需求分析,功能概括,难点解析等等的工作,之后对于系统大概要完成什么目标,系统的界面和设计等问题的思考来满足用户的要求.系统设计过程中将系统分解为很多不同的小的系统,然后对分成的小的系统的功能、技术进行分析讨论,制定规定,在之后的开发中,先开发小的系统之后进行整合,逐步完成开发.本系统是设计目标是建立一个基于Android技术的点餐系统,可以满足用户对 订餐的需求.根据需

8、求分析还有自己的生活体会,在线点餐系统一定要有以下根本的要求.(1)界面看着新奇活力、大方美观,吸引用户.(2)具有易调试性和没有bug性.(3)用户能够方便的查看所有的食品信息和单个用户的详细信息内容.(4)具有操作方便、功能完善的治理功能.4.3 系统总体结构设计系统的总体结构设计是在软件开发之前必须要做好的一件根本工作,作为一个优秀的程序员不仅要有很强的编码水平,对于系统的总体结构的设计也要很精通.做好系统的总体结构设计会让系统开发顺利进行,做到事半功倍.在此次系统的总体结构设计过程中,系统分为客户端和效劳端,客户端是可以在安卓智能 上使用的,效劳端采用Servlet提供效劳,持久化层采

9、用MySQL由于MySQL勺安装和配置都适合小型的系统.在进行系统的总体设计之后紧接着就是数据库的需求设计.系统整体框架采用C/S模式,即客户端/效劳器模式,其中客户端一方面与用户交互,提供良好的用户界面,另一方面与效劳器端进行数据交换.效劳器端向客户端提供数据.治理员可以对数据进行增,删,改,查等操作.操作$小界面客户端请求数据新数据治理员5、系统详细设计与实现5.1 登模块的实现本系统使用前用户需要登录验证,在登录界面中,通过继承一个Activity来实现,界面上的控件用到了EditText、Button和CheckBox等等组件,EditText主要用来实现用户帐号和密码的输入.登录过程

10、中用户需要输入账号与密码,并且经由登录按钮来表达登录意图,意图表达完成,系统会经由 的过程将帐号与密码发送到效劳器端验证,并返回效劳端的验证结果,如果验证正确那么提示使用者登录完成,然后自行转入主界面;如果错误,那么提示使用者登录失败.该界面具有保存密码成功,假设使用者在登录时勾选了“保存密码复选框,那么下次再进入到本界面用户将不需要再次输入密码,而只需要点击登录按钮即可实现登录操作,记住密码的过程是通过Android平台提供的SharedPreferences来实现的.当然如果用户还没有登录账号,那么能够通过“注册选项链接到用户注册界面,从而注册一个新号;具体的实现效果如下图:实现的核心代码

11、如下:loginActivity的doInBackground的方法发起url请求,发送用户名,密码protectedStringdoInBackground(String.params)StringurlString=AppConstant.getUrl(getApplicationContext()+ServletService?Action=login;urlString+=&loginid=+etLoginID.getText()+&passwords=+etPassword.getText();Stringjson= Helper. Request(urlString);return

12、json;loginActivity的onPostExecute的方法获取效劳器返回json,验证密码是否正确loginActivity的dealLogin是当密码验证成功后跳转到DishesListActivityOnLineUsermodel=newOnLineUser();/设置登陆成功的用户属性model.setId(jsonObject.getInt(id);model.setLoginid(etLoginID.getText().toString();model.setName(jsonObject.getString(name);application.setLoginUser(

13、model);/弹出提示框toastUtil.show(model.getName()+,登录成功);/跳转到登陆成功页面intent=newIntent(LoginActivity.this,DishesListActivity.class);startActivity(intent);5.2 菜谱模块的实现用户成功登陆进入系统之后可以查看到当前系统所有菜谱信息,包括菜谱的图片、名称、单价和详细介绍信息,系统用了一个ListView组件来显示系统的菜谱信息,同时用户也可以通过界面左上角的搜索按钮来搜索菜谱信息,用户点击一条信息之后可以查看一个菜谱的详细介绍具体的实现效果如下图:实现的核心代码

14、如下:请求获取列表数据的代码OverrideprotectedStringdoInBackground(String.params)Stringjson=null;serverUrl=AppConstant.getUrl(getApplicationContext()+ServletService?Action=getdisheslist&shopid=+shopid;BaseUtil.LogII(serverUrl);json= Helper. Request(serverUrl);returnjson;/解析列表数据,并设置适配器的代码list=newArrayList();if(!Tex

15、tUtils.isEmpty(result.trim()list=gson.fromJson(result,newTypeTokenList().getType();elsetoastUtil.show(没有数据);adapter=newDishesAdapter(DishesListActivity.this,list);listview1.setAdapter(adapter);id去调用点击listview中的一项,会跳转到详情页面,这其中会根据webservice查询数据库获取到详情数据/界面点击跳转的代码listview1.setOnItemClickListener(newOnIt

16、emClickListener()OverridepublicvoidonItemClick(AdapterViewparent,Viewview,intposition,longid)intent=newIntent(DishesListActivity.this,GoodDetailActivity.class);intent.putExtra(id,list.get(position).getId();startActivity(intent););menu的实现,设置menu按键的弹出事件publicbooleanonCreateOptionsMenu(Menumenu)super.o

17、nCreateOptionsMenu(menu);menu.add(0,99,0,人工K务).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.drawa

18、ble.icon_application);returntrue;menu选中触发的事件参考onOptionsItemSelected方法选中人工效劳按钮后,会执行humanServices方法privatevoidhumanServices()finalString口arg=newString6;for(inti=0;i0)tryjsonArray=newJSONArray(result);jsonObject=jsonArray.getJSONObject(0);(TextView)findViewById(R.id.tvTopTitleCenter).setText(jsonObject

19、.getString(title);(TextView)findViewById(R.id.tvTopTitleCenter).setTextSize(16);if(!TextUtils.isEmpty(jsonObject.getString(img_url)asyncImageLoader.loadBitmap(serverUrlUploadFile/+jsonObject.getString(img_url),imageView1);Stringintro=单价:+jsonObject.getString(price)+n;intro+=数量:+jsonObject.getString(

20、amount)+n;intro+=简介:+jsonObject.getString(intro)+n酉己料:+jsonObject.getString(burdennames);tvIntro.setText(intro);catch(JSONExceptione)e.printStackTrace();下单操作使用post请求,提交数据,实现代码如下/提交订单的代码protectedStringdoInBackground(String.params)StringurlStringAppConstant.getUrl(getApplicationContext()+ServletServic

21、e;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(urlString,map);returnresult;/判断订单提交后,webservice的返回值,提示订单是否提交成功protectedvoidonPostExecute(Stringresult)super.

22、onPostExecute(result);dialog.dismiss();if(result!=null&result.trim().equals(1)toastUtil.show(下单成功);elseif(result.trim().equals(-1)toastUtil.show(原料不定,下单失败);elsetoastUtil.show(下单失败);5.4 用户订单模块的实现用户的下单信息将会被记录到效劳端中,用户可以随时通过智能 菜单键来翻开查看自己已经下过的订单信息,包括菜式信息、下单数量、选择的座位、下单时间和当前的订单状态,同时用户也可以长按一条订单信息来弹出删除菜单,用户可

23、以删除一条订单信息.奶豆腐秋;1,0单价5554;412*我的订单下单时间2021-061323:07.52订单状态:已经完成实现的核心代码如下:/通过url请求获取我的订单数据protectedStringdoInBackground(String.params)Stringjson=null;serverUrl=AppConstant.getUrl(getApplicationContext()ServletService?Action=getmyorderslist&userid=+user.getId();json= Helper. Request(serverUrl);returnj

24、son;/解析返回的json字符串,把数据展示到界面上jsonArray=newJSONArray(result);for(inti=0;i0)toastUtil.show(取消成功);newloadAsyncTask().execute();elsetoastUtil.show(取消失败);5.5 效劳端模块的实现效劳端模块具有两方面作用,其一是给客户端提供数据效劳接口,客户端调用效劳端的接口来得到数据库里面的菜谱、订单等所有数据,然后显示在客户端界面上.效劳端存在另外一个作用:保证信息的动态维护,比方菜谱信息维护、用户信息维护、订单信息维护以及菜谱类型信息维护.比方治理员能够于效劳端依据真

25、实状况增加一个菜式数据、删除一个菜式数据等操作.ttfi;膜重用向9强灯阜状击也为已完成黄力丽上1.QL1Q12.4己际应页上一天下一页艮页当前页聂宛门茂,具有I/记早5.5.1 人工效劳模块的实现使用者在前台呼叫人工效劳的操作不可以马上执行,需要治理员于后台进行信息治理审核以确认它的操作性,治理员单击后台界面中的“人工效劳进入用户人工效劳处理页面,该页面会显示近期所以的用户呼叫的人工效劳.人工效劳处理页面显示的是呼叫人,呼叫时间等信息.人工效劳主要通过从humanservices表中查询对应的用户信息并显示在页面中,治理员审核后再对效劳状态进行修改,系统会根据提交的操作更新数据表.人工效劳信

26、息页面如下图.拄如糟素SfBlA戢点号FFHIMS假设状嬴般为H郭*在路上唐卓却gZ5M的:北已婚造理为资玄路上*京3Ql3-&M5(Mk4S:43未用弩为己腹假设翼在寤上1号一20214H-I323*7:32走.服药一为已服势*百页上一页下一页尾页与前页是卓L】页.共有,条记M5.5.2 菜谱治理模块的实现菜谱治理模块用来完成对菜谱信息的添加,修改,删除等功能,菜谱治理模块流程如图20所示,展示了治理员对菜谱的操作过程和系统处理过程.查询畋据库EL示信flLIr-4值如住改1H效46报交修改成功运行情况如下图:标地3匚瓯一1EH片标恒胃外鼠科目单价剩余数里除广式埼广理揶95力渡解M用唱酬1工

27、.99山甫*_-3_tut费古啻斯呼岂12.0如.篁中心虺U01叫.北JI皤巴的苛三兵匐联GB嫡=亮110强.国翼首页上一页不一页尾页当首页是明口贡.弊声$条记录5.5.3 用户治理模块的实现用户治理模块用来完成对用户信息的修改,删除等功能,用户治理模块流程如下图,展示了治理员对用户信息的操作过程和系统处理过程.电询放审冷工嘉示信鼎I-侑患悔疏_*_数据提交OCTT二鼓福是否普海Anr修改应功运行情况如下图:姓寻盘承廉招拄名击玛揖覆嚼律krifdta小明1111113茂zhaflsin虻mmRX存路J.mm0餐白页二一再下一百星直当用页是宾11页共有:祭记录5.5.4 订单治理模块的实现订单治理模块主要完成对订单状态的修改和删除,订单治理模块作用流程如下.显示宝WiiT单招息雁赚谪Sff.Jffi折此底喊口里知:运行情况如下图:立=m不用户所选集式款里单不总悬订单秋毒设为已最成受沌己也消删除在踣上硒】力12.4110遴行中设为已取消X在路上廊1012.0INQ已麻成设为曰克皮设为日取消筌在路上广武境鸭.ft12.4110已经戈咸计为已取消X在路上明日席1力12.0I3.Q已焰芸戒设为E三区设为曰取消裁

温馨提示

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

评论

0/150

提交评论