• 516.00 KB
  • 26页

网络方向综合工程设计报告

  • 26页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'西安电子科技大学计算机学院综合工程设计报告计算机学院综合工程设计报告题目:基于android平台的无线点菜系统负责人:张正学号:03111383专业:计算机科学与技术指导老师:沈玉龙起止时间:2014年12月至2015年1月计算机学院网络工程系2013年1月25 西安电子科技大学计算机学院综合工程设计报告设计题目基于android平台的无线订餐系统完成人(小组)姓名学号性别专业班级手机E-mail张正03111383男031114131933441481915607213@qq.com况洋03111377男031114158297103872446457796@qq.com詹涵03111382男031114182205773478796436@qq.com指导老师姓名沈玉龙性别男职称副教授研究领域无线网络组网、安全及优化;车辆网络所属系网络工程系E-mailylshen@mail.xidian.edu.cn一、设计目标与任务1、原理:无线点餐系统的基本功能和基于Android平台的软件开发、数据库的设计方法。设计最终达成了用户登录、点菜管理、送餐管理,收费管理,等点餐系统的基本功能。并且系统能够正常运行,各个页面交互性较好。在整个设计中基本运用基础的Android进行功能编程,也运用到了一些前端控件来控制输入信息,对输入信息进行验证,通过JDBC连接数据库。在系统规划中先后用数据流程图、系统功能结构图分析了系统所需的各种数据,详细的展现了系统的各个功能模块并给出了主要功能运行界面图。该点餐系统目前已有比较完善的管理与使用功能。开发点餐系统是为了满足酒店管理的需要,以现代化的创新思维模式去工作。无线点餐系统主要用到的采用模型-视图-控制器MVC架构的设计模式。MVC架构是"Model-View-Controller",中文意思是"模型-视图-控制器"。MVC应用程序总是由这三个部分组成。25 西安电子科技大学计算机学院综合工程设计报告MVC架构是一种架构,其实需要其他东西帮助它来完成操作。在J2EE模式目录中,通常采用servicetoworker模式实现,但是servicetoworker模式可以通过集中控制器模式,派遣器模式和PageHelper模式这三样结合而成。而Struts只是描述了MVC的View和Controller两个部分,Model部分需要我们这些开发的人们来自己操作,Struts提出了抽象类Action使开发者能将Model应用于Struts框架中。2、目的:首先系统地研究了无线点餐系统的背景和意义,分析了当今点餐系统的特点和共性,从而得出设计本系统的思路和方法。接着介绍了实现系统开发的Android平台环境,数据库用MySQL实现。同时简要介绍了以上工具的功能和方法。概要设计分成后台数据库管理操作设计和客户端操作设计,同时介绍了数据库的建立和维护。详细设计主要阐述了点菜管理、送餐管理、查询管理,付款管理等以及后台管理功能的实现,并给出了系统的部分设计代码。最后,对每个功能模块和整个系统进行了测试,测试结果表明:系统基本具备了的功能以及快速的响应速度。25 西安电子科技大学计算机学院综合工程设计报告二、主要功能介绍1、登录:用户登录2、开始点菜:根据菜单点菜3、确认:确认点菜数量4、送餐:根据提供的信息把点的菜食送抵目的地5、更新信息:获取最新菜谱6、设置:进行普通设置7、结账:在顾客就餐完毕后,计费付帐而设定的功能,使客人能够一目了然,不用担心有什么算错的问题三、设计思路与实现方法(可加页)3.1数据库的设计与实现本系统采用java语言编写,使用jdbc连接Mysql数据库,所以要用到java中的connection对象和mysql驱动连接到数据库。其实现代码如下所示。Stringdriver=com.mysql.jdbc.DriverStringurl=jdbc:mysql://localhost:3360/wireless_db?useUnicode=true&characterEvcoding=utf-8Stringusername=rootStringpassword=Connectionconn;Class.forName(driver);Conn=DriverManager.getConnection(url,username,password)25 西安电子科技大学计算机学院综合工程设计报告只有成功连接到了数据库才能进行其他操作,否则就无法开展以下的设计与实现工作了。可见,连接数据库是一个很关键的步骤。3.2客户端设计与实现移动终端是用户基础最直接的东西,包括是用户是否能够简单轻松的使用,操作响应时间、主机连接时间、图片综合质量、首页布局质量、首页信息类型等。一般来说,界面的组成主要由三个因素:(1)文字:传达信息的主要部分就是文字元素。界面中主要包括文字链接、标题、信息几种主要形式的文字。标题传达的信息与传统的基本一致,主要是对内容的简要概述,一般说明醒目。文字是页面里最为重要的元素,而且是信息的重要的载体,页面的整体设计就在于它的字体、大小、颜色和排布。(2)图形:图形在界面中具有重要作用。合理的运用图形,会使设计主题变得更加生动形象。网页中一般图片为jpg和gif的格式。(3)界面版式:界面设计十分重要的部分就是版式,它组合配置文字、图形等元素,使得整个页面十分的美观,并且使阅读更加方便,使信息的传达,达到最佳效果。设计终端系统的界面也是将了文字,图形等元素综合在一起。使每一个功能的描述都有图片与文字,通过最简单的看图就能知道键的含义,最终的目的还是为了使用者能够快速上手,不至于因为操作的不得当而放弃此系统。3.3主菜单界面3.3.1功能描述主菜单界面包含开始点菜,选择数量,配送地址,设置,退出,结账等6个25 西安电子科技大学计算机学院综合工程设计报告功能模块。每个功能模块提供一种服务,包含一组功能操作,界面简单明了方便服务人员操作。3.3.2登录界面的设计登录界面主要是由服务人员来操作的,所以要简单明了易操作。利用数据库对用户信息进行核对,核对正确后利用界面跳转到主菜单界面。每一位服务人员有自己单独的一个账号密码用来登录,这样可以责任到人,不至于出现混乱,否则出现错误都不知道是哪个环节的问题。3.3.3功能描述服务人员可通过用户名和密码进入移动终端首界面来为顾客服务。而服务人员的账号密码是提前在服务器数据库中设置的,每个服务人员都有自己单独的唯一的一个账号密码用来登录,这样可以达到责任到人。3.3.4功能实现单独建立一个Activity用来控制用户的登录,再用户输入账号与密码时,系统先判断用户账号密码是否为空,为空则跳出一个对话框给用户提示;如果不为空则再从EditView中取的账号密码与服务器中的账号密码进行匹配,如果匹配成功则利用Intent语句跳转到下一个主菜单界面。3.3.5关键代码loginBtn.setOnClickListener(newOnClickListener(){@Overridepubli25 西安电子科技大学计算机学院综合工程设计报告cvoidonClick(Viewv){if(validate()){//通过validate()判断账号密码是否为空if(login()){//通过login()连接数据库核对是否一致Intentintent=newIntent(LoginActivity.this,MainMenuActivity.class);startActivity(intent);//启动Activity传递intent来跳转页面}Else{showDialog("用户名称或者密码错误,请重新输入!");}}}});}对登录按钮添加监听事件,在服务人员输入账号密码后点击登录后,终端会先判断是否满足validate()方法,此方法是防止账号密码为空时的登录提示,如果为空会跳出一对话框进行提示账号密码是必填项,如果不空,则再判断是否满足login()方法,login()方法是用来与数据库进行连接比较核对是否一致,一致则顺利登录跳转到下一个Activity即主菜单界面,否则出现账号密码错误的提示,登录失败;privatevoidsaveUserMsg(Stringmsg){//将用户信息保存到配置文件Stringid="";//用户编号25 西安电子科技大学计算机学院综合工程设计报告Stringname="";//用户名称String[]msgs=msg.split(";");//获得信息数组intidx=msgs[0].indexOf("=");//以“=”为分隔符id=msgs[0].substring(idx+1);//获取id号idx=msgs[1].indexOf("=");name=msgs[1].substring(idx+1);//获取名称SharedPreferencespre=getSharedPreferences("user_msg",MODE_WORLD_WRITEABLE);//共享信息,运用本地数据库SQLiteSharedPreferences.Editoreditor=pre.edit();editor.putString("id",id);editor.putString("name",name);editor.commit();}此方法是在login()方法中再与后台数据库查询成功后调用的,也将登录用户信息保存在终端系统的本地数据库中,存储方便快捷。这也正是基于Android平台的优点,拥有自己独立的数据库SQLite,它是一套轻量级的数据库引擎,可供其他应用程序调用。3.4点菜界面3.4.1功能描述此功能按键主要是为了让顾客能够方便的点菜,填写下顾客的各种信息25 西安电子科技大学计算机学院综合工程设计报告,然后把顾客点的菜品配送到指定地址。3.4.2关键代码privateInteger[]mThumbIds={R.drawable.shopping,R.drawable.cart,R.drawable.orders};privateString[]menuString={"菜单","购物车","订单"};//构造方法publicImageAdapter(Contextc){mContext=c;inflater=LayoutInflater.from(mContext);}//组件个数publicintgetCount(){returnmThumbIds.length;}//当前组件publicObjectgetItem(intposition){returnnull;}25 西安电子科技大学计算机学院综合工程设计报告//当前组件idpubliclonggetItemId(intposition){return0;}//获得当前视图publicViewgetView(intposition,ViewconvertView,ViewGroupparent){Viewview=inflater.inflate(R.layout.gv_item,null);TextViewtv=(TextView)view.findViewById(R.id.gv_item_appname);ImageViewiv=(ImageView)view.findViewById(R.id.gv_item_icon);//tv.setText(packageInfos.get(position).packageName);tv.setText(menuString[position]);iv.setImageResource(mThumbIds[position]);switch(position){case0://添加点餐监听器view.setOnClickListener(shoppingLinstener);break;25 西安电子科技大学计算机学院综合工程设计报告case1://并台监听器view.setOnClickListener(cartLinstener);break;case2://添加转台监听器view.setOnClickListener(ordersLinstener);break;default:break;}3.5更新界面3.5.1功能描述此功能按键主要是为了更新最新的菜单。让顾客实时保持本店菜品的新颖程度。3.5.2功能实现更新功能其实就是要保持终端系统中的数据库与服务器中的数据库随时保持一致。调用updateMenu()和updateTable()这两个方法来保持数据一致。两个方法代码大致相同,不过一个是保持菜单表的一致,一个是保持桌号表的一致。25 西安电子科技大学计算机学院综合工程设计报告3.5.3关键代码基本操作
  • /admin/index/sysPro.jsp"target="main">系统属性
  • /admin/userinfo/userPw.jsp"target="main">密码修改
  • 客户管理25 西安电子科技大学计算机学院综合工程设计报告
  • /admin/stu/stuMana.jsp"target="main">客户管理
  • /admin/stu/stuAdd.jsp"target="main">客户录入
  • 商品管理
  • /admin/goods/goodsMana.jsp"target="main">菜品管理
  • /admin/goods/goodsAdd.jsp"target="main">菜品录入
  • 25 西安电子科技大学计算机学院综合工程设计报告订单管理
  • /admin/order/orderMana.jsp"target="main">订单管理
  • 3.6结账界面3.6.1功能描述结账界面:点击结账按钮以后会跳转到下一个界面用来总计消费金额及详细款项,一目了然,方便顾客查账。3.6.2界面设计25 西安电子科技大学计算机学院综合工程设计报告输入联系方式和送达地址以及选择支付的方式25 西安电子科技大学计算机学院综合工程设计报告图4-5查看订单3.6.3功能实现结账实现的主要代码:从服务器获得订单编号,显示总计消费金额,再点击结算按钮以后,通过payBtn.setEnabled(false)方法就会是结算按钮失效,不能再次点击生效,这也是为了是否结算更加明了,不易让顾客和酒店服务员出现多次结账的错误。也是人性化设计的一方面。3.6.4关键代码OnClickListenerpayListener=newOnClickListener(){//结算监听器25 西安电子科技大学计算机学院综合工程设计报告publicvoidonClick(Viewv){StringorderId=orderIdEt.getText().toString();//获得订单编号Stringurl=HttpUtil.BASE_URL+"servlet/PayMoneyServlet?id="+orderId;//请求服务器urlStringresult=HttpUtil.queryStringForPost(url);//获得查询结果Toast.makeText(PayActivity.this,result,//显示结算结果Toast.LENGTH_LONG).show();payBtn.setEnabled(false);//使结算按钮失效}};四、开发与运行环境(1)EclipseEclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。Eclipse最初是由IBM公司开发的替代商业软件VisualAgeforJava的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(EclipseFoundation)管理。2003年,Eclipse3.0选择OSGi服务平台规范为运行时架构。2007年6月,稳定版3.3发布。2008年6月发布代号为Ganymede的3.4版。2009年7月发布代号为GALILEO的3.5版。25 西安电子科技大学计算机学院综合工程设计报告Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。Eclipse的本身只是一个框架平台,Eclipse因为众多插件的支持比固定的IDE软件更加具有灵活性。许多软件开发商IDE都是以eclipse框架来开发的。Eclipse是一个源代码开放的软件开发项目,因为高度集成的工具所以开发创建一个功能全的、具有商业品质的平台。它的组成包括Eclipse项目、Eclipse工具项目和Eclipse技术项目,主要由以下几个部分组成——EclipsePlatform、JDT、CDT和PDE.Java开发的支持是JDT、C开发的支持是CDT、插件开发的支持是PDE,EclipsePlatform则是一个开放的可扩展IDE,拥有一个通用的开发平台。它也是建造块和构造并运行集成软件的开发工具的基础。EclipsePlatform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨这个工具功什么时候结束,另外一个工具功能什么时候开始。EclipseSDK是合并了EclipsePlatform、JDT和PDE的组件,这些可以一起下载。开发环境因为它们具有了更加丰富的特性,从而使开发者更加有效地建造可以无缝集成到EclipsePlatform中的工具。EclipseSDK由Eclipse项目生产的工具和来自其它开放源代码的第三方软件组合而成。Eclipse项目生产的软件以GPL发布,第三方组件有各自自身的许可协议。(2)Tomcat服务器Tomcat很受大部分程序员的欢迎,因为它运行时不怎么占用系统资源,并且具有良好的扩展性,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在努力完善中,只要程序员感兴趣就更改它或在其中加入新的功能。Tomcat25 西安电子科技大学计算机学院综合工程设计报告是一个小型的轻量级应用服务器,普遍使用在中小型系统和并发访问用户不是很多的场合,所以是开发和调试JSP程序的第一选择。对于一个刚刚起步的人来说,可以这样认为,当机器上配置好Apache服务器,它可以使HTML页面的访问请求得到相应。实际上Tomcat部分只是是Apache服务器扩展的一部分,但它并不具有依赖性,因此当你运行tomcat,它实际上是单独运行的。问题的关键是,当正确的配置时,Apache为HTML页面服务,而Tomcat实际上运行JSP页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,同样可以处理HTML页面,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML却没有Apache服务器好。(3)常用功能的配置方法 a)启动内存参数的配置tomcat/bin/catalina.bat如果是linux就是catalina.sh在rem的后面增加如下参数setJAVA_OPTS=-Xms256m-Xmx256m-XX:MaxPermSize=64mb)修改Tomcat的JDK目录打开tomcat/bin/catalina.bat在最后一个rem后面增加setJAVA_HOME=C:ProgramFilesJavajdk1.6.0c)增加虚拟目录/tomcat/conf/server.xml第一行是以前默认存在的,第二行是新增的25 西安电子科技大学计算机学院综合工程设计报告a)GET方式URL乱码问题解决打开tomcat/conf/server.xml查找下面这部分,在最后增加一段代码就可以了。其中的UTF-8请根据你的需要自己修改,比如GBKb)虚拟主机配置文件tomcat/conf/server.xml...25 西安电子科技大学计算机学院综合工程设计报告五、软件截图用户登录图点菜选菜图25 西安电子科技大学计算机学院综合工程设计报告选择菜品数量生成订单25 西安电子科技大学计算机学院综合工程设计报告输入联系方式和送达地址以及选择支付的方式查看订单25 西安电子科技大学计算机学院综合工程设计报告六、总结与说明经过近几个星期的代码及论文书写,课程设计也随之进入收尾阶段,点餐系统的基本功能也逐个完成。在这次课程设计中,通过学习与思考并实践,对GoogleAndroid开发及Java等相关的技术初步了解,同时,由于本文做的是一套无线订餐系统,从起初资料的查询,在有限的时间内丰富了对无线开发的认知,积累了理论上的知识。需求分析,可行性分析,再到后来的Java配置环境,书写代码及其调试,让本文作为一个用户对该类系统的需求和软件运行的环境有了一定了解。将之前学过的数据库知识跟Java技术结合在一起,理论联系实际,在实践中锻炼了分析处理问题的能力并激发了这方面的兴趣。经过这几个月来的课程设计和对相关资料的收集,清楚的感到随着网络的不断发展和网络的广泛应用,使我们的生活离不开它了。网络它以自己的独特的优点征服了我们。随着用户方便的需求越来越高,订餐系统方面的工作量将会越来越大,并且其工作是一件十分烦琐和容易出错的事情。在这样的情况下有一个运行良好的无线点餐系统是有其必然性的,如果能做出一个完善的系统就使各类人员的工作量减少很多。这次课程设计的过程中,还巩固了并加深了对软件工程这门学科的认识,尤其在使用工程流程的各个阶段有了进一步的了解,并相对独立地完成各个阶段的任务。通过这次设计还明白了需求分析和总体设计是系统真正开发的关键,它规划出系统的大致模块和业务接口,流程转换以及模块之间的关系。如果总体设计规划不科学,将会导致之后的详细设计工作出现冗余,目标不明确甚至失去方向。虽然在开发过程中受水平和时间所限,在设计中还有些欠缺或考虑不周全的地方,但这次毕业设计的经历将对今后的学习和工作产生重大意义。25 西安电子科技大学计算机学院综合工程设计报告25'