基于安卓技术的点餐系统的设计与实现文档格式.docx
《基于安卓技术的点餐系统的设计与实现文档格式.docx》由会员分享,可在线阅读,更多相关《基于安卓技术的点餐系统的设计与实现文档格式.docx(42页珍藏版)》请在冰点文库上搜索。
由于智能手机和手机软件愈加广泛的发展和运用,目前“手机app”已经成为广受社会关注的焦点,手机应用逐渐变成人们进行信息交流的主要工具。
在目前各种品牌手机争相斗艳的时期,谷歌与2008年开始开发出一款广受大家关注的移动操作系统-Android。
这一移动操作系统借助其极高的开放性与较好的优化程度,获得了手机生产厂家与适用人群越来越多的重视。
如今科技突飞猛进、人们的生活节奏也逐渐加快,由于移动终端技术的日趋成熟,社会对于手机设备的功能需求变得愈来愈大,已逐渐从以往的技术需求转变为功能需求,所以,移动软件系统的需求也提高了很多。
本设计是以Android操作系统为基础的“基于android技术的点餐系统”软件的设计与实现。
为了方便用户可以随时随地查看点餐信息,一种高效的办法就是将点餐做成应用程序拓展到用户的终端设备上,并且提供一些辅助功能。
所以这次毕设的目标就致力于开发出一款基于Android手机平台的点餐系统,来满足用户的需求。
现在社会上的的工作压力很大并有增加的趋势,人们已经离不开有网络的生活,网络逐渐变成大家人生的重要组成。
网上订餐是专门为工作较忙以及经常不出门的“宅人”设计的,不需要离家、不需要诳街就可以便捷购买到想要的食物的专业手机程序。
此款系统可以不妨碍使用者的生活轨迹,又可以增添使用者生活乐趣、简化购物程序,同时为许多商家提供了更多契机。
1.2课题可行性分析
智能手机的出现减少了很多方面的限制,具有很多优势,人们可以随时随地的传递信息,订购商品,不论时间不论地点,正是这个优点使得智能手机能够受到越来越多人是喜爱,比如,用户智能手机点餐速度迅速比传统的点餐要快的多,大大提高了效率。
1.经济可行性
由于世界经济水平的突飞猛进,科技水平得到了前所未有的巨大发展,社会正步入一个崭新的网路信息时期。
因为社会持续发展的生活与工作水平,人们的非物质需求正在逐渐增加,伴随出现的就是网络技术的持续进步,当代社会网络应用变得愈加广泛,人们之间的相互沟通日趋广泛、交流也愈加简便,所有这些,使得人们的生产生活方式发生了巨大转变。
是故,由于网络技术的进步,电商领域逐渐发展,极大程度上改变了人们的购物方式。
在如今这个年代,几乎所有计算机使用者都能够进行网上购物的操作,而且往往乐此不疲。
从长久的角度来想,安卓点餐系统的开发与应用还是存在很大的经济前景。
2.技术可行性
技术可行性一般是因为现在已经存在的的技术因素而控制的,比如,是否可以进行平稳的功能开发,软、硬件功能会不会达到系统所规定的条件。
如今这个时代,是网络资源化的时代,网络资源爆发式增长,这引起了所有其他相关技术的进步,所以对于技术条件来说是能够实现的。
本系统单个用java语言,使用ssh技术与MySQL数据库进行开发,上述技术在现在已经很广泛且很成熟,已经无数次被应用于软件与系统研究中,所有,这个系统对科学水平来说是能够实现的。
2系统分析
重点介绍了基于Android技术的点餐系统的可行性分析,这属于本系统开发工作中的关键构成。
简单的介绍系统分析的重要性和方法,针对本系统,详细介绍系统的需求和系统流程。
2.1概述
系统分析简单的就是分析系统的需求和功能,确认系统的功能的业务逻辑,将系统分成不同的模块仔细的研究。
包括系统流程,于总体设计的引导下,确定新系统逻辑功能。
本着为用户负责的规定,分析系统的过程。
2.1.1系统分析的原则
做好系统分析工作很重要,系统分析能为软件开发除去很多困难,减轻很多麻烦,当然系统分析不是简单的分析系统的完成功能,系统分析要遵循一定的原则,这样才能保证分析工作能够顺利进行,系统分析的原则有:
1.设计规范原则
2.面向用户的原则
3.结构化分析的原则
在系统研究之前,分析以Android技术为基础的点餐结构应该达到的作用和实现的目标。
首先从大的方面来讲,它应该能够完成点餐功能,从小的方面来说系统应该具有用户退订的功能。
除了功能之外,同时系统也要包含一定扩展能力。
2.1.2系统分析的方法
结构化的系统分析方法经典不变,它的精髓也可以用“自顶向下的逐层分解,逐步细分,逐步求精“几个字来概括。
因此,本系统也做到由抽象到具体,由大到小的措施实现结构化分析。
在完成整个系统的开发的始终的过程中,人们往往将大量的精力放在编码上,以为在规定的时间内完成编码,实现功能就算是完成软件的开发了,而忽略了编码之前的系统设计。
其实系统设计和系统编码是一个统一的整体,每一部分都不可缺少。
在系统设计中制定良好的编码规范和开发流程,能够确保无二义性,使得开发顺利进行,这也能提高开发这的开发效率。
2.2系统需求分析
客户端功能需求分析:
登录、注册:
使用者想要运行系统必须登录,如果未申请账号能够通过注册模块申请;
菜谱查询:
查询目前餐厅店菜单列表数据;
详情查询:
可以查询一个菜的全部数据,有价格、介绍和数量;
在线点餐:
支持用户在线下单点餐;
选择座位:
支持使用者在Android手机上选座位;
我的订单:
支持使能够查看自己已经下单的数据,能够删掉自己的订单;
人工服务:
客户端可以呼叫服务员;
服务端功能分析:
登录模块:
管理员登录使用系统;
菜谱管理:
管理员能够查看当前界面的数据,能够添加、修改或者删除一个菜谱数据;
用户管理:
管理员能够查看到当前系统已经存在的用户信息,能够删掉一个用户信息;
原材料管理:
管理员可以查看当前系统的原材料信息,可以添加、修改或者删除一个原材料信息,原材料库存较低时会警报;
订单管理:
管理员可以查看到当前的所有订单信息,可以修改订单状态,例如把一个进行中的订单修改为已经完成;
具体的系统全部作用如图1:
图1系统功能框架图
2.3系统流程分析
为了使得完成的软件能够平稳运行,完善了系统流程的所有环节。
对每个流程要用到的关键技术也做了充分准备。
首先本系统用户在使用系统前都必须经过用户登录验证,只有验证通过的用户才能进入系统,用户流程图和管理员流程图如图2和图3所示。
图2用户流程图
图3管理员流程图
2.4系统用例图
用户用例图:
图4用户用例图
本系统包含两个构成部分即使用者与管理员。
图4为用户用例图。
普通用户有登录、注册、浏览菜谱、点餐、我的订单、人工服务、个人信息七个一级用例。
管理员用例图:
图5管理员用例图
图5为管理员用例图。
管理员有后台登录管理、人工服务、菜谱管理、用户管理、订单管理、原材料管理6个一级用例。
2.5开发环境平台的选择
以Eclipse为开发工具,Tomcat为Web应用服务器,采用MySql数据库存储数据。
Eclipse是一个企业级工作平台,利用它可以在数据库和JavaEE的开发、发布以及服务器的整合等方面极大的提高工作效率。
Tomcat是一个小型的轻量级应用服务器,它技术先进、性能稳定、占用资源小、扩展性好、使用简便而且开源。
MySql是一个开放源码的小型关联式数据库管理系统,被广泛的应用在中小型网站中。
它具有体积小、速度快、总体成本低、开放源码等特点。
任何事物要运行,都要有它的环境,Android也要有它的环境才能够运行,下面介绍Android的开发环境配置。
搭建开发环境需要的软件:
操作系统:
windowXP或linux
软件包:
AndroidSDK(SoftwareDevelopmentkitJavaDevelopmentkit)、ADT(AndroidDeveloopmentTool)
IDE环境:
EclipseIDE+ADTEclipse3.3以上
JDK:
JavaRuntimeEnvironment虚拟机、(JDK)JavaDevelopmentkit
3总体设计
3.1系统设计原则
系统设计和系统编码是一个统一的整体,每一部分都不可缺少。
此外,在进行系统设计过程中,还应该遵循的主要原则如下。
1、适用性原则
好的系统开发出来首先要能够完成基本的功能,即满足用户的要求,这是软件开发的首要目的。
如果开发出来的软件不能满足用户的需求,那么此软件注定是失败的开发。
在此基础上还要考虑软件的的操作性,要能保证软件在运行环境下没有bug,能让用户操作起来简单,明了,还要功能全面易用化。
不应该只考虑软件的收益,否则必将面临很大的问题。
2、可靠性安全性原则
随着计算机网络的发展,网络除了带人人们便利之外也带开了很多安全隐患,如,隐私安全、个人财产安全等等,虽然此次开发的系统简单,但是安全问题是每个系统都必须考虑的问题。
网上订餐系统中既要保护用户个人信息的安全,保证不被泄露,还要保证他们的财产安全。
只有具备安全措施的系统才能够让用户放心。
3、可扩展性原则
现在的科技发展速度之快,不仅是研发的快,更新换代的速度也令人惊讶,科技技术不断退陈旧新,因此,为了适应时代的发展速度,系统的可扩展能力也是开发过程中要考虑的事情。
那么如何提高系统的可扩展性呢?
这里就充分体现了设计在开发中的重要作用。
在软件设计的过程中,将网上订餐系统划分成不同的功能模块,并降低模块之间的耦合度来提高系统的扩展性。
3.2系统设计目标
在系统开发之前要对系统进行需求分析,功能概括,难点解析等等的工作,之后对于系统大概要完成什么目标,系统的界面和设计等问题的思考来满足用户的要求。
系统设计过程中将系统分解为很多不同的小的系统,然后对分成的小的系统的功能、技术进行分析讨论,制定规定,在之后的开发中,先开发小的系统之后进行整合,逐步完成开发。
本系统是设计目标是建立一个基于Android技术的点餐系统,可以满足用户对手机订餐的需求。
根据需求分析还有自己的生活体会,在线点餐系统一定要有以下基本的要求。
(1)界面看着新颖活力、大方美观,吸引用户。
(2)具有易调试性和没有bug性。
(3)用户能够方便的查看所有的食品信息和单个用户的详细信息内容。
(4)具有操作方便、功能完善的管理功能。
3.3系统总体结构设计
系统的总体结构设计是在软件开发之前必须要做好的一件基本工作,作为一个优秀的程序员不仅要有很强的编码能力,对于系统的总体结构的设计也要很精通。
做好系统的总体结构设计会让系统开发顺利进行,做到事半功倍。
在此次系统的总体结构设计过程中,系统分为客户端和服务端,客户端是可以在安卓智能手机上使用的,服务端采用Servlet提供服务,持久化层采用MySQL,因为MySQL的安装和配置都适合小型的系统。
在进行系统的总体设计之后紧接着就是数据库的需求设计。
系统整体框架采用C/S模式,即客户端/服务器模式,其中客户端一方面与用户交互,提供良好的用户界面,另一方面与服务器端进行数据交换。
服务器端向客户端提供数据。
管理员可以对数据进行增,删,改,查等操作。
图6系统C/S图
4数据库设计
4.1服务端数据库设计
E-R图属于一类概念模型,其本质是由真实社会过渡至虚拟世界的过度点。
概念模型表示虚拟世界的部分,它表示真实社会过渡至虚拟世界的第一层抽象,极大的促进了数据库设计者参与数据库设计的进程,存在完善的语义表述功能,可以便捷完善的描述用众的所有语义概念,此外,其还应当合理、清晰和方便使用者理解。
在开发系统的时候,要考虑数据库的设计,第一要考虑的就是数据持久层要用的工具,由于本系统要包好的数据库表并不多,一个小型的数据库工具就足以符合本系统的需求,所以本系统的数据库采用了MySQL。
本设计一共使用了5个数据库表,每个表的详细设计结构:
管理员表(admins)
管理员表中包含这管理员的相关数据,其表结构详见表1:
表1管理员表
序号
列名
数据类型
长度
标识
主键
允许空
说明
1
id
int
11
是
否
auto_increment
2
loginid
varchar
255
3
passwords
菜谱表(dishes)
菜谱表中存储着菜谱相关信息,其表结构详见表2:
表2菜谱表
title
text
标题
shopid
类型ID
4
typename
类型名称
5
intro
详细介绍
6
img_url
图片
7
price
double
价格
8
amount
数量
9
burdennames
原材料
10
burdens
原材料ID
订单表(orders)
订单表中存储着订单的所有数据,其表结构详见表3:
表3订单表
userid
username
下单人
status
dishesid
createtime
下单时间
食物分类表(shops)
食物分类表中存储着食物分类的相关信息,其表结构如表4所示:
表4食物分类表
name
用户表(users)
用户表中存储着用户的相关数据,其表结构详见表5:
表5用户表
登录账号
姓名
密码
4.2数据库ER图
E-R图是DOA(DataOrienteerApproach)的一种主要的设计方法,它的作用是处理对象的业务领域和系统的理想化样式,从概念数据模型到E-RApproach,根据实际的报表做出E-R图。
E-R图有实体及其间的对应关系组成。
E-R图亦称为实体-联系图(EntityRelationshipDiagram),提供了表示实体型、属性和联系的方法,能够表示现实世界的概念模型。
安卓点餐系统的E-R图详见7:
图7系统E-R图
安卓点餐系统的物理数据详见图8:
图8物理数据模型图
5系统详细设计与实现
5.1登录模块的实现
本系统使用前用户需要登录验证,在登录界面中,通过继承一个Activity来实现,界面上的控件用到了EditText、Button和CheckBox等等组件,EditText主要用来实现用户帐号和密码的输入。
登录过程中用户需要输入账号与密码,并且经由登录按钮来表达登录意图,意图表达完成,系统会经由HTTP的过程将帐号与密码发送到服务器端验证,并返回服务端的验证结果,如果验证正确那么提示使用者登录完成,然后自行转入主界面;
如果错误,那么提示使用者登录失败。
该界面具有保存密码成功,假如使用者在登录时勾选了“保存密码”复选框,则下次再进入到本界面用户将不需要再次输入密码,而只需要点击登录按钮即可实现登录操作,记住密码的过程是通过Android平台提供的SharedPreferences来实现的。
当然如果用户还没有登录账号,则能够通过“注册”选项链接到用户注册界面,从而注册一个新号码;
使用者登录过程图详见图9,展示了使用者登录功能的操作过程和系统处理过程。
图9登录界面流程图
具体的实现效果如图9所示:
图9登录界面
实现的核心代码如下:
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是当密码验证成功后跳转到DishesListActivity
OnLineUsermodel=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组件来显示系统的菜谱信息,同时用户也可以通过界面左上角的搜索按钮来搜索菜谱信息,用户点击一条信息之后可以查看一个菜谱的详细介绍。
菜谱模块作用流程图详见图10,展示了订餐模块的用户操作过程和系统处理过程。
图10菜谱功能流程图
具体的实现效果如