点餐系统设计说明.doc

上传人:李司机 文档编号:1119976 上传时间:2022-06-27 格式:DOC 页数:18 大小:773.64KB
返回 下载 相关 举报
点餐系统设计说明.doc_第1页
第1页 / 共18页
点餐系统设计说明.doc_第2页
第2页 / 共18页
点餐系统设计说明.doc_第3页
第3页 / 共18页
点餐系统设计说明.doc_第4页
第4页 / 共18页
点餐系统设计说明.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《点餐系统设计说明.doc》由会员分享,可在线阅读,更多相关《点餐系统设计说明.doc(18页珍藏版)》请在三一办公上搜索。

1、 点餐系统的设计与实现1、系统需求分析客户端功能需求分析:登录、注册:使用者想要运行系统必须登录,如果未申请账号能够通过注册模块申请;菜谱查询:查询目前餐厅店菜单列表数据;详情查询:可以查询一个菜的全部数据,有价格、介绍和数量;在线点餐:支持用户在线下单点餐;选择座位:支持使用者在Android手机上选座位;我的订单:支持使能够查看自己已经下单的数据,能够删掉自己的订单;人工服务:客户端可以呼叫服务员;服务端功能分析:登录模块:管理员登录使用系统;菜谱管理:管理员能够查看当前界面的数据,能够添加、修改或者删除一个菜谱数据;用户管理:管理员能够查看到当前系统已经存在的用户信息,能够删掉一个用户信

2、息;原材料管理:管理员可以查看当前系统的原材料信息,可以添加、修改或者删除一个原材料信息,原材料库存较低时会警报;订单管理:管理员可以查看到当前的所有订单信息,可以修改订单状态,例如把一个进展中的订单修改为已经完成;具体的系统功能全部作用如下列图:点餐系统后台局部前台局部点餐个人信息我的订单人工服务登录注册人工服务管理菜谱管理订单管理用户信息管理原材料管理登录退出2、目标可行性分析智能手机的出现减少了很多方面的限制,具有很多优势,人们可以随时随地的传递信息,订购商品,不论时间不论地点,正是这个优点使得智能手机能够受到越来越多人是喜爱,比如,用户智能手机点餐速度迅速比传统的点餐要快的多,大大提高

3、了效率。1.经济可行性由于世界经济水平的突飞猛进,科技水平得到了前所未有的巨大开展,社会正步入一个崭新的网路信息时期。因为社会持续开展的生活与工作水平,人们的非物质需求正在逐渐增加,伴随出现的就是网络技术的持续进步,当代社会网络应用变得愈加广泛,人们之间的相互沟通日趋广泛、交流也愈加简便,所有这些,使得人们的生产生活方式发生了巨大转变。是故,由于网络技术的进步,电商领域逐渐开展,极大程度上改变了人们的购物方式。在如今这个年代,几乎所有计算机使用者都能够进展网上购物的操作,而且往往乐此不疲。从长久的角度来想,安卓点餐系统的开发与应用还是存在很大的经济前景。2.技术可行性技术可行性一般是因为现在已

4、经存在的的技术因素而控制的,比如,是否可以进展平稳的功能开发,软、硬件功能会不会达到系统所规定的条件。如今这个时代,是网络资源化的时代,网络资源爆发式增长,这引起了所有其他相关技术的进步,所以对于技术条件来说是能够实现的。本系统单个用java语言,使用ssh技术与MySQL数据库进展开发,上述技术在现在已经很广泛且很成熟,已经无数次被应用于软件与系统研究中,所有,这个系统对科学水平来说是能够实现的。3、系统流程分析为了使得完成的软件能够平稳运行,完善了系统流程的所有环节。对每个流程要用到的关键技术也做了充分准备,如下列图:4、总体设计4.1 系统设计原那么系统设计和系统编码是一个统一的整体,每

5、一局部都不可缺少。在系统设计中制定良好的编码规和开发流程,能够确保无二义性,使得开发顺利进展,这也能提高开发这的开发效率。此外,在进展系统设计过程中,还应该遵循的主要原那么如下。1、适用性原那么好的系统开发出来首先要能够完成根本的功能,即满足用户的要求,这是软件开发的首要目的。如果开发出来的软件不能满足用户的需求,那么此软件注定是失败的开发。在此根底上还要考虑软件的的操作性,要能保证软件在运行环境下没有bug,能让用户操作起来简单,明了,还要功能全面易用化。不应该只考虑软件的收益,否那么必将面临很大的问题。2、可靠性安全性原那么随着计算机网络的开展,网络除了带人人们便利之外也带开了很多安全隐患

6、,如,隐私安全、个人财产安全等等,虽然此次开发的系统简单,但是安全问题是每个系统都必须考虑的问题。网上订餐系统中既要保护用户个人信息的安全,保证不被泄露,还要保证他们的财产安全。只有具备安全措施的系统才能够让用户放心。3、可扩展性原那么现在的科技开展速度之快,不仅是研发的快,更新换代的速度也令人惊讶,科技技术不断退旧新,因此,为了适应时代的开展速度,系统的可扩展能力也是开发过程中要考虑的事情。那么如何提高系统的可扩展性呢?这里就充分表达了设计在开发中的重要作用。在软件设计的过程中,将网上订餐系统划分成不同的功能模块,并降低模块之间的耦合度来提高系统的扩展性。4.2 系统设计目标在系统开发之前要

7、对系统进展需求分析,功能概括,难点解析等等的工作,之后对于系统大概要完成什么目标,系统的界面和设计等问题的思考来满足用户的要求。系统设计过程中将系统分解为很多不同的小的系统,然后对分成的小的系统的功能、技术进展分析讨论,制定规定,在之后的开发中,先开发小的系统之后进展整合,逐步完成开发。本系统是设计目标是建立一个基于Android技术的点餐系统,可以满足用户对手机订餐的需求。根据需求分析还有自己的生活体会,在线点餐系统一定要有以下根本的要求。1界面看着新颖活力、大方美观,吸引用户。2具有易调试性和没有bug性。3用户能够方便的查看所有的食品信息和单个用户的详细信息容。 4具有操作方便、功能完善

8、的管理功能。4.3 系统总体结构设计系统的总体结构设计是在软件开发之前必须要做好的一件根本工作,作为一个优秀的程序员不仅要有很强的编码能力,对于系统的总体结构的设计也要很精通。做好系统的总体结构设计会让系统开发顺利进展,做到事半功倍。在此次系统的总体结构设计过程中,系统分为客户端和服务端,客户端是可以在安卓智能手机上使用的,服务端采用Servlet提供服务,持久化层采用MySQL,因为MySQL的安装和配置都适合小型的系统。在进展系统的总体设计之后紧接着就是数据库的需求设计。系统整体框架采用C/S模式,即客户端/服务器模式,其中客户端一方面与用户交互,提供良好的用户界面,另一方面与服务器端进展

9、数据交换。服务器端向客户端提供数据。管理员可以对数据进展增,删,改,查等操作。5、系统详细设计与实现5.1登模块的实现本系统使用前用户需要登录验证,在登录界面中,通过继承一个Activity来实现,界面上的控件用到了EditText、Button和CheckBox等等组件, EditText主要用来实现用户和密码的输入。登录过程中用户需要输入账号与密码,并且经由登录按钮来表达登录意图,意图表达完成,系统会经由的过程将与密码发送到服务器端验证,并返回服务端的验证结果,如果验证正确那么提示使用者登录完成,然后自行转入主界面;如果错误,那么提示使用者登录失败。该界面具有保存密码成功,假设使用者在登录

10、时勾选了“保存密码复选框,那么下次再进入到本界面用户将不需要再次输入密码,而只需要点击登录按钮即可实现登录操作,记住密码的过程是通过Android平台提供的SharedPreferences来实现的。当然如果用户还没有登录账号,那么能够通过“注册选项到用户注册界面,从而注册一个新;具体的实现效果如下图:实现的核心代码如下:loginActivity 的 doInBackground 的方法发起url请求,发送用户名,密码protected String doInBackground(String. params) String urlString = AppConstant.getUrl(ge

11、tApplicationContext() + ServletService?Action=login; urlString += &loginid= + etLoginID.getText() + &passwords= + etPassword.getText();String json = Helper.Request(urlString);return json;loginActivity 的 onPostExecute 的方法 获取服务器返回json,验证密码是否正确loginActivity 的 dealLogin 是当密码验证成功后 跳转到DishesListActivityOn

12、LineUser 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, Dis

13、hesListActivity.class);startActivity(intent);5.2菜谱模块的实现用户成功登陆进入系统之后可以查看到当前系统所有菜谱信息,包括菜谱的图片、名称、单价和详细介绍信息,系统用了一个ListView组件来显示系统的菜谱信息,同时用户也可以通过界面左上角的搜索按钮来搜索菜谱信息,用户点击一条信息之后可以查看一个菜谱的详细介绍。具体的实现效果如下图:实现的核心代码如下:/请求获取列表数据的代码Overrideprotected String doInBackground(String. params) String json = null;serverUrl

14、= AppConstant.getUrl(getApplicationContext() + ServletService?Action=getdisheslist&shopid=+ shopid;BaseUtil.LogII(serverUrl);json = Helper.Request(serverUrl);return json;/解析列表数据,并设置适配器的代码list = new ArrayList();if (!TextUtils.isEmpty(result.trim() list = gson.fromJson(result, new TypeTokenList() .get

15、Type(); else toastUtil.show(没有数据);adapter = new DishesAdapter(DishesListActivity.this, list);listview1.setAdapter(adapter);点击listview中的一项,会跳转到详情页面,这其中会根据id去调用webservice查询数据库获取到详情数据/界面点击跳转的代码listview1.setOnItemClickListener(new OnItemClickListener() Overridepublic void onItemClick(AdapterView parent,

16、 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, 人工服务)

17、.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;

18、menu选中触发的事件参考onOptionsItemSelected 方法选中 人工服务 按钮后,会执行humanServices方法private void humanServices() final String arg = new String6;for (int i = 0; i 0) try jsonArray = new JSONArray(result);jsonObject = jsonArray.getJSONObject(0);(TextView) findViewById(R.id.tvTopTitleCenter).setText(jsonObject.getStrin

19、g(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

20、.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(getA

21、pplicationContext() + ServletService;Map map = new HashMap();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 = Helper.Post(urlString, map);return result;/判断订单提交后,webservice的返回值,提示订单是否提交成

22、功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用户订单模块的实现用户的下单信息将会被记录到服务端中,用户可以随时通过智能手机菜单键来打开查看自己已经下过

23、的订单信息,包括菜式信息、下单数量、选择的座位、下单时间和当前的订单状态,同时用户也可以长按一条订单信息来弹出删除菜单,用户可以删除一条订单信息。实现的核心代码如下:/通过url请求获取我的订单数据protected String doInBackground(String. params) String json = null;serverUrl = AppConstant.getUrl(getApplicationContext() + ServletService?Action=getmyorderslist&userid=+ user.getId();json = Helper.Req

24、uest(serverUrl);return json;/解析返回的json字符串,把数据展示到界面上jsonArray = new JSONArray(result);for (int i = 0; i 0) toastUtil.show(取消成功);new loadAsyncTask().execute(); else toastUtil.show(取消失败);5.5服务端模块的实现服务端模块具有两方面作用,其一是给客户端提供数据服务接口,客户端调用服务端的接口来得到数据库里面的菜谱、订单等所有数据,然后显示在客户端界面上。服务端存在另外一个作用:保证信息的动态维护,比如菜谱信息维护、用户

25、信息维护、订单信息维护以与菜谱类型信息维护。比如管理员能够于服务端依据真实状况增加一个菜式数据、删除一个菜式数据等操作。5.5.1人工服务模块的实现使用者在前台呼叫人工服务的操作不可以马上执行,需要管理员于后台进展信息管理审核以确认它的操作性,管理员单击后台界面中的“人工服务进入用户人工服务处理页面,该页面会显示近期所以的用户呼叫的人工服务。人工服务处理页面显示的是呼叫人,呼叫时间等信息。人工服务主要通过从humanservices表中查询对应的用户信息并显示在页面中,管理员审核后再对服务状态进展修改,系统会根据提交的操作更新数据表。人工服务信息页面如下图。5.5.2菜谱管理模块的实现菜谱管理

26、模块用来完成对菜谱信息的添加,修改,删除等功能,菜谱管理模块流程如图20所示,展示了管理员对菜谱的操作过程和系统处理过程。运行情况如下图:5.5.3用户管理模块的实现用户管理模块用来完成对用户信息的修改,删除等功能,用户管理模块流程如下图,展示了管理员对用户信息的操作过程和系统处理过程。运行情况如下图:5.5.4订单管理模块的实现订单管理模块主要完成对订单状态的修改和删除,订单管理模块作用流程如下。运行情况如下图:6、系统测试6.1 测试容“登录测试用例与结果如下表:“登录测试测试系统安卓点餐系统版本功能模块名登录模块对应开发人员用例编号Test1用例设计者测试人员测试日期2017.5.29功

27、能特性验证登录密码测试目的验证登陆用户的密码的是否正确前置条件运行程序测试步骤1、输入正确密码2、输入错误密码3、不输入密码期望结果1、登陆成功。2、登录失败3、登陆失败实际结果与期望结果一致结论登录模块功能正确“我的订单测试用例与结果如下表:“我的订单测试系统安卓点餐系统版本功能模块名我的订单对应开发人员用例编号Test2用例设计者测试人员测试日期2017.5.29功能特性查看相关信息测试目的验证输入和显示是否正确前置条件登录成功,通过主界面进入到我的订单界面测试步骤1、登录2、点餐3、查看我的订单期望结果1、新增订单数据添加成功2、订单状态显示已完成或未完成3、没有订单实际结果与期望结果一

28、致“用户管理测试用例与测试结果如下表:“用户管理测试系统安卓点餐系统版本功能模块名用户管理对应开发人员用例编号Test3用例设计者测试人员测试日期2017.5.29功能特性测试相关功能测试目的验证对用户资料的修改,删除,搜索前置条件登录后台,进入管理员界面测试步骤1、搜索用户名字2、修改用户资料3、删除用户资料期望结果1、搜索用户成功2、修改用户资料成功3、删除用户资料成功实际结果与期望结果一致6.2 测试结果通过对安卓点餐系统的测试,登录功能,我的订单功能,用户管理功能,对菜单和用户资料修改的根本功能都能成功实现。当添加订单成功后,数据库表中就增加一行,否那么添加订单信息失败。通过测试,安卓订单系统的功能根本符合需求分析的要求,该子系统的功能以与逻辑根本也符合要求。18 / 18

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号