基于Android的无线点餐系统文档格式.docx
- 文档编号:21175252
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:28
- 大小:38.67KB
基于Android的无线点餐系统文档格式.docx
《基于Android的无线点餐系统文档格式.docx》由会员分享,可在线阅读,更多相关《基于Android的无线点餐系统文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
1.2课题研究的主要内容
本课题主要是研究无线点餐系统的Android端,会配合本地服务器配置以及本地数据库服务器,实现手机端点餐的功能。
会详细介绍Android平台、myeclipse、数据库服务器MySQL的搭建。
Android端的相关功能如登陆模块、点餐、查台、并台、注销、帮助等都会进行详细描述以及界面图片,并会给出重要部分的详细代码描述。
1.3课题的研究思路
本课题分为服务端和客户端,服务端采用myeclipse进行开发。
下载jdk安装并配置环境变量,安装好软件并配置好tomcat服务器,创建好数据库文件作为后端;
手机端采用集成的eclipse开发,下载AndroidSDK以及genymotion手机模拟器。
开发环境定好后,则需要拟定一个通信协议,在这里是采用的http通信协议,交互的数据的格式为json,便于对数据进行解析。
服务器端还需要进行数据库的设计,即通过MySQL对数据库应用,对用户表的一个详细设计,以及菜谱分类表、餐桌表和订单表,而服务器和客户端的数据交互也主要是这些表格数据的交互。
2方案的设计与选择
2.1点餐系统的设计方案
点餐系统的设计模式可以根据餐饮店自身实际情况来确定,既是无线点餐系统,则有多少种无线传输模式就对应着多少种设计方案。
最常见的是通过网络通信让主控制器与客户机相连实现点餐,或者是利用嵌入式技术,通过选择所依托的硬件平台实现,下面将介绍能实现点餐的几种设计方案。
方案一:
ZigBee协议的通信方案设计。
ZigBee协议是一种低功耗、低速率、近距离、的复杂度、低成本的无线网络技术。
它的协议架构分为四层,分别为应用层、网络层、媒体访问层和物理层。
相对于常见的无线通讯标准协议来说,ZigBee协议套件紧凑而简单,具体实现的要求很低,硬件只需要八位的处理器,如广泛使用的80C51系列单片机就能做到,软件需要32KB的ROM。
方案二:
以移动互联网为基础的无线通信技术。
移动互联网是将移动通信和互联网二者结合,用户通过移动终端通过网络访问互联网的过程。
移动互联网的基础协议为移动IPv6协议,适合于在总控制器(服务端)ip不变的情况下,移动手机端与其进行网络通信。
方案三:
以蓝牙为基础的无线传输技术。
蓝牙传输是一种广泛使用的近距离传输技术,成本低、功耗低成为它的最大特点。
蓝牙的两端都可以作为连接端与被连接端,因此两端的数据可以互传。
在点餐系统的设计中,也是能够实现目标的。
2.2点餐系统方案的选择
下面先对以上提供的方案选择作一次优缺点的分析。
利用ZigBee协议进行通信,由于网络节点设备工作周期较短,收发信息功耗低,因此可避免频繁的更换电池或者充电,从而减轻了网络维护的负担。
但是其通信速率很低,而且又受到接口通信速率的限制,因此真正的数据发送量其实很低,不利于大范围的推广使用。
利用移动互联网进行通信,可以保证数据传输速率快而且不受客户端数量的限制,而且移动手机端目前已经普遍适用,不仅方便了操作,而且节约了财力,提高了餐饮公司的运转效率,并且服务端采用数据库存储数据,方便查询点餐信息以及即时更新菜谱等,非常高效。
但是以上过程全部建立在有网络的基础上,如果没有网络连接,一切操作都将不能进行。
利用蓝牙进行数据传输,优点是方便且成本低,适用于小型的自主型餐饮业。
但不利于大型餐饮业的使用,且传输距离受限制,不能保证数据传输的准确性,存在着数据丢失的危险。
这样来说,相对于传统的人工点餐,优势也就荡然无存。
因此通过综合性的考虑,决定使用第二种方案进行无线点餐设计。
这种方案不仅能在客户端开发的基础上进行二次开发进行改进,还能够在服务端编写jsp程序,进一步完善功能,实现用户在家能够自主订餐的过程,符合目前的发展现状,也是目前最有效的点餐方式。
3点餐系统实现原理及功能
3.1点餐系统原理
该系统是由网络服务器端作为控制核心,服务员以及结账台的Android客户端作为使用的发起点。
具体的实现方式为:
客户端手持机通过界面的按键操作与打开的服务端进行网络通信,以实现客户端的大致模块功能,如开桌点菜、查询桌台信息、结账等基本功能。
服务端数据库主要控制餐馆桌台和菜单信息的变化,以及控制登陆者的权限管理等。
通信时,两端之间通过http协议传送数据并通过json解析方式解析数据并显示,实现两端数据的同步。
该系统的启动会用到相应软件的支持,后续会有介绍。
该系统在整个大的方向上划分为两个模块,即后台的服务器模块和用户的客户端模块。
服务器端只是用来创建数据库,同时提供链接给客户端,响应数据操作;
客户端是服务员用来点菜的工具,以及收银员结账的时候使用。
从服务员和管理员两个部分进行设计。
服务员要进行的操作分别是登录、更新数据库资料、查询剩余桌号、为顾客点餐、为顾客换桌、结账、注销账号等;
管理员的操作有两个,分别时添加服务员帐号和添加菜谱。
功能具体介绍如下:
①登录:
服务员按照自己得到的帐号登录,为顾客服务做准备;
②开桌:
包括了点菜和下单等功能;
③换桌:
顾客另外选择自己的位置并将之前桌台的信息转移到换桌后的桌台上;
④查台:
服务员点餐之前,需要为顾客查询桌台的占有信息;
⑤更新:
数据库的更新。
主要包括餐桌信息的更新和菜单的更新。
⑥结账:
顾客用完餐后所进行的一步操作,所有账单信息在服务员的客户端里面一目了然,价格结算也不存在一点偏差,不用担心会出现计算错误或者心理录入错误等情况;
客户端系统大致要图如图3.1所示。
图3.1系统框架图
3.2系统目标以及编码原则
3.2.1系统能够完成的任务
点餐是面向众多的顾客,在本设计的思想上,不需要顾客自己安装app并点餐,只需要服务员用客户端记录下点餐情况即可,方便又快捷。
系统分为了两个部分,管理员和普通客户服务员。
管理员为客户服务员添加、修改或者删除信息,赋予服务员点餐的权利,除此之外,还可以添加菜单。
而服务员主要是给顾客提供服务,任务就是通过客户描述,添加相应的菜单到相应的位置,并提供点菜、查询餐桌使用情况、转换餐桌、注销、帮助系统、更新菜谱等功能。
3.2.2编码原则
为了提高编码的效率,因此必须对编写的代码做一次规范。
一般来说包含下列几点:
①找出所有在程序中并未使用的代码,并且删除。
不然会使后续的维护人员困惑,降低效率。
②对必要的代码添加注释。
比如一个类的开始,应该写上这个类的作用是什么,里面的关键代码和关键函数也应该添加注释,以便于后期的维护。
③有一个30秒原则。
意思大概就是在一个函数或者一段代码中,如果另外的开发人员无法在30秒的时间内明白这个函数到底是拿来干什么用的,那么就说明这样的程序维护的困难性,应该提前做好修改,继续提高代码的质量;
④一般情况下的函数代码是不超过一百行的,如果超过了,建议是应该对该程序进行拆分,且不改变原有的意思,也不影响正常使用;
⑤代码的总体设计应该具有重用性。
将公共方法写在一个公共类里面,直观且清晰,需要调用的时候则直接调用接口即可,而不用在每次都书写大量且麻烦的程序;
⑥命名上应该遵循通俗易懂的规则。
在新建一个类的时候,虽然会写上这个类的注释,但是为了让开发者更加一目了然,则需要在命名的时候写上其英文。
比如登录模块就应该写成LoginActivity.java,这样不仅节约了开发者的时间,也节约了维护者的时间,大大提高效率;
⑦应该保证每一段代码或者每一个函数只做一件事,避免引起调用函数时产生混乱;
⑧在运行的时候通常会有一些警告或者严重的时候会产生错误。
错误是一定要改正的,而通常也会出现一些异常,这个时候就需要知道的是,不能忽略异常。
虽然很多时候异常并不会对程序产生影响,但不排除杀死程序的可能性,因此发现异常情况要及时解决,比如空指针异常,堆栈异常等等。
⑨变量在命名的时候也应该遵循易懂的原则,直接翻译成英文作为变量即可;
⑩不要手动的去改变一些系统自己更改的字段。
比如R.java之类的,在定义函数或者变量的时候如果只是在本程序使用,应该定义为私有的,private;
公用的应该定义为public方便其他类调用。
3.3系统所具备的功能
3.3.1客户端的用户登录
为了统一用户的对应信息,在几乎多有的有关成员信息的网络软件开发中,都存在着用户的注册登录和确认注册信息是否正确的步骤。
而在这个课题当中,由于只是针对着较小的用户客户端,因此为了简便,便没有提供用户注册这一功能,服务员只需要获取到登录的信息直接登录即可操作。
因此在这里主要是服务员的登录,通过系统分发的帐号和密码进行登录。
3.3.2管理员权限
在所有的有关软件开发的项目当中,模式都是大同小异。
这里也一样,服务端会提供一个管理员来掌管所有有关客户端的操作以及服务端本身的资料的修正操作。
后台系统可以根据需求,增加或者删除服务员信息,即增删用户。
3.3.3服务员操作
客户端的操作是根据顾客的口述直接进行操作,是最细也是最重要的一步。
当登录进入操作界面后,服务员根据查台信息安排客户入座,客户点餐后只需要记住订单号即可。
最后上菜和结账都凭借着订单号一起完成。
3.3.4菜谱
菜谱也是根据数据库对应下来的菜单,上面不仅记载了文字,而且大多都配有适时图片供顾客查验,以服务尽可能细微周到为宗旨,做到让顾客满意为止。
管理员可以根据餐店自身情况,增加或者删除菜谱信息,可以让餐馆的菜谱信息做到对应同步。
3.4系统性能需求
3.4.1可靠性
系统需要首先确定内部资料的完整性和正确性,避免出现资料出错的情况。
在用户登录的时候,也必须对身份有严格的控制,并能根据不同情况更改用户信息。
管理员在各个模块的管理方面也要恰当,对于需要修改的信息,应该事先修改好。
3.4.2安全性
为了确定数据库的一致性和唯一性,只有后台服务的管理员才能对客户端的信息进行改动,包括对数据库的修改,用户本身不能对自身信息进行修改。
因此,管理员与客户端是相辅相成的,各自共同完成自己的任务,与此同时不需要去做太多无关紧要且麻烦的事情,各司其职,使问题得到最大简化。
3.4.3易操作性
产品最终的上线的最终目的还是要在能够方便大众的同时,尽量做到简便简洁,通俗易懂,最重要的就是界面。
因此在这个课题里面,界面设置非常简便,只有一个主操作界面,再配上细小的弹出框,很方便的就能把菜品展示在顾客眼前。
再加上图片的实例化,操作一目了然,省去了大多数复杂的细节,结果更容易达到效果。
3.5数据库的设计
由于该系统是服务端和客户端的交互运行,因此数据库在这里显得非常重要。
服务端的数据库采用的是mysql,而这刚好适合一些小型的数据库,性能也相对较好。
而这个数据库表的作用就是保存菜单的信息,也包括一些基本信息。
首先应该是以服务员作为表的主键的用户的信息表,其次,在点餐系统当中也应该存在以餐桌号为主键的桌号表,保存桌号订单信息,这样顾客就可以根据自己的爱好,选择酒店中的相应位置用餐。
其具体的E-R图设计如图3.3。
描述
ID编号
桌号
标识号
桌位
n
服务
1
服务人员
用户密码
用户名称
图3.2实体联系图
与之相对应的用户信息表如下图所示:
表3.1用户信息表
列名
数据类型
是否允许为空值
说明
id
Int(11)
否
序列号(主键)
name
Varchar(50)
是
用户名
password
密码
account
登录名
gender
Varchar(20)
性别
permission
权限(0和1)
remark
Varchar(2000)
备注
表3.2菜谱表
price
价格
typeID
类型
菜名
picture
Varchar(1000)
图片
表3.3餐桌表
序列号
number
订购数量
flag
标志
4点餐系统实现的软件基础
4.1Eclipse
4.1.1Eclipse简介
Eclipse是一个以JAVA为基础的,开源且可扩展的开发平台,对于本身而言只是一个框架和服务,而通过插件使其成为了一个开发性软件平台。
因此Eclipse不仅仅是一个只能开发JAVA的软件平台,它还能通过集成其他的插件以开发其他的软件,因此适用范围很广泛,是开发者理想的工具。
最常见的支持的插件有C/C++、COBOL、PHP、Android等。
它还能用来完成与软件开发无关的其他应用程序的开发,如内容管理系统等。
而在这个课题中,主要的插件是EclipseSDK。
4.1.2JDK安装
下载jdk并默认安装在C盘中,然后需要配置添加三个变量。
点开我的电脑中的环境变量配置,选择高级,新建JAVA_HOME,将jdk安装的目录复制在对应的框格下面;
然后新建CLASSPATH,在对应框中输入%JAVA_HOME%\lib以及%JAVA_HOME%\lib\tools.jar,中间用分号隔开;
最后新建path,对应框填入%JAVA_HOME%\bin即可,保存退出。
最后检查jdk是否安装成功,可以打开cmd命令框输入java-version,若显示出版本信息,则表示安装成功。
4.1.3Eclipse的安装
为了方便操作过程,这里下载的是Android集成版本,直接下载adt-bundle-windows-x86放在任意路径下,里面包含两个文件夹eclipse和jdk以及一个应用程序SDKManager.exe,直接运行应用程序,可以选择安装SDK版本。
集成版本的好处是,不用配置环境变量,缺点是一些接口文档描述得并不是很准确,比起官方文档有一些差距,但是总的来说并不影响开发。
4.1.4genymotion的安装
一般情况下,eclipse中会有自带的手机模拟器,但是在实际的开发中,自带的模拟器启动时需要耗费很多时间,而且所占内存空间大,不利于开发,这个时候就需要安装一个第三方的模拟器,即genymotion。
它拥有占内存小,开机速度快等优点,而且与真实的手机功能和使用方法都大致相同,模拟的情况也与实际手机相同,不会存在着在模拟器上能使用但在实际手机上无法使用的情况,避免了开发误差,是开发的理想模拟器选择。
首先应进入genymotion官网注册帐号,激活邮箱后,用户名即为你的邮箱名,登录即可免费下载。
但由于安装genymotion需要VirtualBox的支持,因此可以直接下载自带有VirtualBox版本的模拟器,好处是不用自己手动去安装虚拟机盒子。
安装好genymotion后,下一步就是要集成到eclipse中,首先需要打开eclipse,在help菜单下选择installnewsoftware,选择add选项,在Location栏上输入
4.2MyEclipse安装
MyEclipse主要是用于企业的功能强大的开发软件,它是建立在eclipse的基础上的,加入了自己的插件而构成的,主要用于j2ee的开发,即后台系统的开发,庆幸的是,这个强大的软件对各种开源的产品也都非常支持。
7.0版本以前的MyEclipse都需要配置tomcat服务器,但是自从7.0版本发布后,你做的就是仅仅需要安装好MyEclipse就好了,使用上也更加方便,集成了各个模块以方便开发。
在该课题的设计中,MyEclipse是用来开发web版本的,能够模拟后台的功能,使手机端能够正常运行。
4.3MySQL安装与配置
到官方网站上根据自己的电脑系统下载安装符合自己的mysql,然后解压到本地的文件夹下面。
接着配置环境变量,右键我的电脑,选择属性->
高级->
环境变量,新建MYSQL_HOME,对应填上安装位置,追加PATH,将bin目录添加到其中,各个不同路径用分号隔开。
在安装MYSQL过程中,可以自定义安装,也可以默认安装,但是一定要记住自己安装过程中设置的密码,这个密码会在启动的时候用到。
安装完成后,在cmd命令里面输入netstartmysql,如果弹出启动成功的标志,则说明安装成功。
4.4tomcat的配置
Tomcat是开发者最喜欢的工具之一,不仅因为它在运行的时候内存消耗较小、有良好的扩展性,而且他自身还在不断的完善和改进当中,开发者还可以根据自己的需求添加自己所需要的新功能或者更改他的功能,是非常人性化的开发工具。
Tomcat是一个轻量级的应用服务器,在开发小型系统中经常被使用到,是开发以及调试jsp程序最常用到的。
安装Tomcat的一个基础就是安装jdk,在之前的步骤已经做好了,因此现在只需要配置Tomcat的环境变量就可以了。
仿照上面步骤,新建变量CATALINA_HOME,输入Tomcat安装路径,新建CATALINA_BASE,输入Tomcat安装路径,打开PATH,将bin目录添加到其中。
启动Tomcat方式有两种,第一种为打开cmd,进入到Tomcat路径下,输入startup即可启动;
第二种方法是,双击运行bin目录下的startup.bat即可。
然后在浏览器中输入http:
//localhost:
8080,如果出现了Tomcat主页,说明Tomcat配置成功。
5系统框架和关键技术
5.1系统架构介绍
该课题的设计主要采用的是MVC架构模式。
MVC分别是model、view、controller的缩写,代表模型、视图和控制器。
而在实际的开发过程中,几乎所有的应用程序都采用了这种架构模式,比如.net,Java,PHP,Spring等等。
而出现这种现象的原因是因为MVC模式有着它自己独特的优势,因为它能实现代码M层和V层的分离,可以使一个应用程序有着不同的表现形式。
C层的作用是倾向一个全局的作用,当M层改变的时候,它能保证V层同步的改变,这就极大的提高了编程的效率,也使得后期代码维护的工作变得简单轻松的多了。
下面主要介绍关于Android的MVC模式。
M层代表模型层,它包含了应用程序的主体部分,所有的复杂的代码以及繁琐的逻辑代码都应该写在这个层次里面。
比如说数据库对数据的处理、网络链接的程序等,当然,对于业务计算等相关操作也必须放在这里面的。
V层代表视图层,顾名思义,这个层面包含的内容也就是关于界面的视图了。
对于Android应用程序来说,每个界面都对应一个xml文件,而这个界面就是用户能看到的内容。
因此,设计的时候,需要首先由UI设计出大致效果图,然后开发者根据效果图再逐一绘制控件到xml文件中,最后在类中应用。
这样做比较方便的是,能够随着UI界面的修改而方便的修改自己的代码,不管是开发和维护都比较方便。
C层代表控制层,而在Android中,控制层的重任都落在了activity上面。
因此不能再activity里面写代码,而要交给业务逻辑层去实现代码逻辑。
不然的话,会造成应用程序无响应,最终被回收掉。
总的来说,Android的MVC模式现在应用得还比较简单,但是即时在这样的情况下,还是能感受到如此的便捷,而且还在持续的发展中,以后一定会应用得更好,会出现一种更加便捷的开发方式。
5.2关键技术
5.2.1JDBC
JDBC定义为一种javaapi,主要用来执行sql语句,它是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Android 无线 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)