点餐系统设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

题目:点餐系统的设计与实现学号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请求,发送用户名,密码protectedStringdoInBackground(String...params){StringurlString=AppConstant.getUrl(getApplicationContext())+ServletService?Action=login;urlString+=&loginid=+etLoginID.getText()+&passwords=+etPassword.getText();Stringjson=httpHelper.HttpRequest(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组件来显示系统的菜谱信息,同时用户也可以通过界面左上角的搜索按钮来搜索菜谱信息,用户点击一条信息之后可以查看一个菜谱的详细介绍。具体的实现效果如图所示:实现的核心代码如下://请求获取列表数据的代码@OverrideprotectedStringdoInBackground(String...params){Stringjson=null;serverUrl=AppConstant.getUrl(getApplicationContext())+ServletService?Action=getdisheslist&shopid=+shopid;BaseUtil.LogII(serverUrl);json=httpHelper.HttpRequest(serverUrl);returnjson;}//解析列表数据,并设置适配器的代码list=newArrayListdishes();if(!TextUtils.isEmpty(result.trim())){list=gson.fromJson(result,newTypeTokenListdishes(){}.getType());}else{toastUtil.show(没有数据);}adapter=newDishesAdapter(DishesListActivity.this,list);listview1.setAdapter(adapter);点击listview中的一项,会跳转到详情页面,这其中会根据id去调用webservice查询数据库获取到详情数据//界面点击跳转的代码listview1.setOnItemClickListener(newOnItemClickListener(){@OverridepublicvoidonItemClick(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);

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功