欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    点餐系统设计.doc

    • 资源ID:5699450       资源大小:966.50KB        全文页数:19页
    • 资源格式: DOC        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    点餐系统设计.doc

    题目:点餐系统的设计与实现学 号 2015122103498 姓 名:巩金明(40%)专 业: 15信管一班 负责内容:大部分代码编写(含关键部分)学 号 2015122103523 姓 名:楼轩宇(30%) 专 业: 15信管一班 负责内容:需求分析以及总体设计 学 号 2015122103539 姓 名:郭新波(30%) 专 业: 15信管一班 负责内容:详细设计以及小部分代码编写论文完成日期:二一七年六月四日1、系统需求分析客户端功能需求分析:登录、注册:使用者想要运行系统必须登录,如果未申请账号能够通过注册模块申请;菜谱查询:查询目前餐厅店菜单列表数据;详情查询:可以查询一个菜的全部数据,有价格、介绍和数量;在线点餐:支持用户在线下单点餐;选择座位:支持使用者在Android手机上选座位;我的订单:支持使能够查看自己已经下单的数据,能够删掉自己的订单;人工服务:客户端可以呼叫服务员;服务端功能分析:登录模块:管理员登录使用系统;菜谱管理:管理员能够查看当前界面的数据,能够添加、修改或者删除一个菜谱数据;用户管理:管理员能够查看到当前系统已经存在的用户信息,能够删掉一个用户信息;原材料管理:管理员可以查看当前系统的原材料信息,可以添加、修改或者删除一个原材料信息,原材料库存较低时会警报;订单管理:管理员可以查看到当前的所有订单信息,可以修改订单状态,例如把一个进行中的订单修改为已经完成;具体的系统功能全部作用如下图:点餐系统后台部分前台部分点餐个人信息我的订单人工服务登录注册人工服务管理菜谱管理订单管理用户信息管理原材料管理登录退出2、目标可行性分析智能手机的出现减少了很多方面的限制,具有很多优势,人们可以随时随地的传递信息,订购商品,不论时间不论地点,正是这个优点使得智能手机能够受到越来越多人是喜爱,比如,用户智能手机点餐速度迅速比传统的点餐要快的多,大大提高了效率。1.经济可行性由于世界经济水平的突飞猛进,科技水平得到了前所未有的巨大发展,社会正步入一个崭新的网路信息时期。因为社会持续发展的生活与工作水平,人们的非物质需求正在逐渐增加,伴随出现的就是网络技术的持续进步,当代社会网络应用变得愈加广泛,人们之间的相互沟通日趋广泛、交流也愈加简便,所有这些,使得人们的生产生活方式发生了巨大转变。是故,由于网络技术的进步,电商领域逐渐发展,极大程度上改变了人们的购物方式。在如今这个年代,几乎所有计算机使用者都能够进行网上购物的操作,而且往往乐此不疲。从长久的角度来想,安卓点餐系统的开发与应用还是存在很大的经济前景。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、系统详细设计与实现5.1登模块的实现本系统使用前用户需要登录验证,在登录界面中,通过继承一个Activity来实现,界面上的控件用到了EditText、Button和CheckBox等等组件, EditText主要用来实现用户帐号和密码的输入。登录过程中用户需要输入账号与密码,并且经由登录按钮来表达登录意图,意图表达完成,系统会经由HTTP的过程将帐号与密码发送到服务器端验证,并返回服务端的验证结果,如果验证正确那么提示使用者登录完成,然后自行转入主界面;如果错误,那么提示使用者登录失败。该界面具有保存密码成功,假如使用者在登录时勾选了“保存密码”复选框,则下次再进入到本界面用户将不需要再次输入密码,而只需要点击登录按钮即可实现登录操作,记住密码的过程是通过Android平台提供的SharedPreferences来实现的。当然如果用户还没有登录账号,则能够通过“注册”选项链接到用户注册界面,从而注册一个新号码;具体的实现效果如图所示:实现的核心代码如下:loginActivity 的 doInBackground 的方法发起url请求,发送用户名,密码protected String doInBackground(String. params) String urlString = AppConstant.getUrl(getApplicationContext() + "ServletService?Action=login" urlString += "&loginid=" + etLoginID.getText() + "&passwords=" + etPassword.getText();String json = httpHelper.HttpRequest(urlString);return json;loginActivity 的 onPostExecute 的方法 获取服务器返回json,验证密码是否正确loginActivity 的 dealLogin 是当密码验证成功后 跳转到DishesListActivityOnLineUser model = new OnLineUser();/设置登陆成功的用户属性model.setId(jsonObject.getInt("id");model.setLoginid(etLoginID.getText().toString();model.setName(jsonObject.getString("name");application.setLoginUser(model);/弹出提示框toastUtil.show(model.getName() + ",登录成功");/跳转到登陆成功页面intent = new Intent(LoginActivity.this, DishesListActivity.class);startActivity(intent);5.2菜谱模块的实现用户成功登陆进入系统之后可以查看到当前系统所有菜谱信息,包括菜谱的图片、名称、单价和详细介绍信息,系统用了一个ListView组件来显示系统的菜谱信息,同时用户也可以通过界面左上角的搜索按钮来搜索菜谱信息,用户点击一条信息之后可以查看一个菜谱的详细介绍。具体的实现效果如图所示:实现的核心代码如下:/请求获取列表数据的代码Overrideprotected String doInBackground(String. params) String json = null;serverUrl = AppConstant.getUrl(getApplicationContext() + "ServletService?Action=getdisheslist&shopid="+ shopid;BaseUtil.LogII(serverUrl);json = httpHelper.HttpRequest(serverUrl);return json;/解析列表数据,并设置适配器的代码list = new ArrayList<dishes>();if (!TextUtils.isEmpty(result.trim() list = gson.fromJson(result, new TypeToken<List<dishes>>() .getType(); else toastUtil.show("没有数据");adapter = new DishesAdapter(DishesListActivity.this, list);listview1.setAdapter(adapter);点击listview中的一项,会跳转到详情页面,这其中会根据id去调用webservice查询数据库获取到详情数据/界面点击跳转的代码listview1.setOnItemClickListener(new OnItemClickListener() Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) intent = new Intent(DishesListActivity.this, GoodDetailActivity.class);intent.putExtra("id", list.get(position).getId();startActivity(intent););menu的实现,设置menu按键的弹出事件public boolean onCreateOptionsMenu(Menu menu) 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);return true;menu选中触发的事件参考onOptionsItemSelected 方法选中 人工服务 按钮后,会执行humanServices方法private void humanServices() final String arg = new String6;for (int i = 0; i < arg.length; i+) argi = (i + 1) + "号桌"new AlertDialog.Builder(this).setTitle("选择服务桌号").setItems(arg, new DialogInterface.OnClickListener() Overridepublic void onClick(DialogInterface dialog, int which) new loadhumanServicesAsyncTask().execute(argwhich);).show();分类按钮点击的代码处理,使用AlertDialog弹出框实现tvTopTitleRight.setOnClickListener(new OnClickListener() Overridepublic void onClick(View v) new AlertDialog.Builder(DishesListActivity.this).setTitle("选择分类").setSingleChoiceItems(s, curIndex, new DialogInterface.OnClickListener() Overridepublic void onClick(DialogInterface dialog, int which) curIndex = which;dialog.dismiss();shopid = listShop.get(curIndex).getId();new loadAsyncTask().execute();).setNegativeButton("取消", null).show(););5.3在线下单模块的实现用户在餐厅菜谱列表当中点击一个Item可以进入到详细的介绍页面,该页面详细描述了所选择的的餐厅菜式信息,包括图片、介绍和价格等信息。同时用户可以在该界面进行下单,下单前需要输入数量,然后点击“提交”按钮来提交订单;具体的实现效果如图所示:图14 在线下单界面实现的核心代码如下:/通过url请求获取详情数据protected String doInBackground(String. params) String urlString = AppConstant.getUrl(getApplicationContext() + "ServletService?Action=getOneRow"urlString = urlString + "&ID=" + params0 + "&Table=dishes"String json = httpHelper.HttpRequest(urlString);return json;/解析返回的json字符串,把数据展示到界面上protected void onPostExecute(String result) super.onPostExecute(result);dialog.dismiss();if (result.trim().length() > 0) try jsonArray = new JSONArray(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);String intro = "单价:¥" + jsonObject.getString("price") + "n"intro += "数量:" + jsonObject.getString("amount") + "n"intro += "简介:" + jsonObject.getString("intro") + "n配料:" + jsonObject.getString("burdennames");tvIntro.setText(intro); catch (JSONException e) e.printStackTrace();下单操作 使用post请求,提交数据,实现代码如下/提交订单的代码protected String doInBackground(String. params) String urlString = AppConstant.getUrl(getApplicationContext() + "ServletService"Map<String, Object> map = new HashMap<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();String result = httpHelper.HttpPost(urlString, map);return result;/判断订单提交后,webservice的返回值,提示订单是否提交成功protected void onPostExecute(String result) super.onPostExecute(result);dialog.dismiss();if (result != null && result.trim().equals("1") toastUtil.show("下单成功"); else if (result.trim().equals("-1") toastUtil.show("原料不足,下单失败"); else toastUtil.show("下单失败");5.4用户订单模块的实现用户的下单信息将会被记录到服务端中,用户可以随时通过智能手机菜单键来打开查看自己已经下过的订单信息,包括菜式信息、下单数量、选择的座位、下单时间和当前的订单状态,同时用户也可以长按一条订单信息来弹出删除菜单,用户可以删除一条订单信息。实现的核心代码如下:/通过url请求获取我的订单数据protected String doInBackground(String. params) String json = null;serverUrl = AppConstant.getUrl(getApplicationContext() + "ServletService?Action=getmyorderslist&userid="+ user.getId();json = httpHelper.HttpRequest(serverUrl);return json;/解析返回的json字符串,把数据展示到界面上jsonArray = new JSONArray(result);for (int i = 0; i < jsonArray.length(); i+) jsonObject = jsonArray.getJSONObject(i);orders model = new orders();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 = new OrdersAdapter(MyOrdersListActivity.this, list);listview1.setAdapter(adapter);取消订单界面,是通过弹出框实现,实现代码如下/设置弹出取消订单的提示框new AlertDialog.Builder(this).setTitle("选择操作").setItems(arg, new DialogInterface.OnClickListener() Overridepublic void onClick(DialogInterface dialog, int which) switch (which) case 0:/ 取消new deleteAsyncTask().execute(list.get(position).getId() + "");).show();取消订单实现代码/发送取消订单的url请求protected String doInBackground(String. params) serverUrl = AppConstant.getUrl(getApplicationContext() + "ServletService?Action=cancelOrders&ID="+ params0;String json = httpHelper.HttpRequest(serverUrl);return json;/判定webservice的返回值,提示是否取消成功protected void onPostExecute(String result) super.onPostExecute(result);dialog.dismiss();if (result != null && result.trim().length() > 0) toastUtil.show("取消成功");new loadAsyncTask().execute(); else toastUtil.show("取消失败");5.5服务端模块的实现服务端模块具有两方面作用,其一是给客户端提供数据服务接口,客户端调用服务端的接口来得到数据库里面的菜谱、订单等所有数据,然后显示在客户端界面上。服务端存在另外一个作用:保证信息的动态维护,比如菜谱信息维护、用户信息维护、订单信息维护以及菜谱类型信息维护。比如管理员能够于服务端依据真实状况增加一个菜式数据、删除一个菜式数据等操作。5.5.1人工服务模块的实现使用者在前台呼叫人工服务的操作不可以马上执行,需要管理员于后台进行信息管理审核以确认它的操作性,管理员单击后台界面中的“人工服务”进入用户人工服务处理页面,该页面会显示近期所以的用户呼叫的人工服务。人工服务处理页面显示的是呼叫人,呼叫时间等信息。人工服务主要通过从humanservices表中查询对应的用户信息并显示在页面中,管理员审核后再对服务状态进行修改,系统会根据提交的操作更新数据表。人工服务信息页面如图所示。5.5.2菜谱管理模块的实现菜谱管理模块用来完成对菜谱信息的添加,修改,删除等功能,菜谱管理模块流程如图20所示,展示了管理员对菜谱的操作过程和系统处理过程。运行情况如图所示:5.5.3用户管理模块的实现用户管理模块用来完成对用户信息的修改,删除等功能,用户管理模块流程如图所示,展示了管理员对用户信息的操作过程和系统处理过程。运行情况如图所示:5.5.4订单管理模块的实现订单管理模块主要完成对订单状态的修改和删除,订单管理模块作用流程如下。运行情况如图所示:6、系统测试6.1 测试内容“登录测试”用例与结果如下表:“登录测试”测试系统安卓点餐系统版本功能模块名登录模块对应开发人员巩金明,楼轩宇,郭新波用例编号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%) 2015122103523组员:郭新波(30%) 20151221035

    注意事项

    本文(点餐系统设计.doc)为本站会员(苏美尔)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开