'西安电子科技大学计算机学院综合工程设计报告计算机学院综合工程设计报告题目:基于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">订单管理