基于Android的网上订餐系统的设计与实现Word文件下载.docx

上传人:b****5 文档编号:17464320 上传时间:2022-12-01 格式:DOCX 页数:31 大小:2.25MB
下载 相关 举报
基于Android的网上订餐系统的设计与实现Word文件下载.docx_第1页
第1页 / 共31页
基于Android的网上订餐系统的设计与实现Word文件下载.docx_第2页
第2页 / 共31页
基于Android的网上订餐系统的设计与实现Word文件下载.docx_第3页
第3页 / 共31页
基于Android的网上订餐系统的设计与实现Word文件下载.docx_第4页
第4页 / 共31页
基于Android的网上订餐系统的设计与实现Word文件下载.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

基于Android的网上订餐系统的设计与实现Word文件下载.docx

《基于Android的网上订餐系统的设计与实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于Android的网上订餐系统的设计与实现Word文件下载.docx(31页珍藏版)》请在冰豆网上搜索。

基于Android的网上订餐系统的设计与实现Word文件下载.docx

用户登录;

订单展示。

关键词:

java;

Android;

网上订餐系统;

MyEclipse;

Tomcat

DesignandImplementationofOnlineOrderingSystemBasedonAndroid

ABSTRACT

Now,thepaceoflifeisgettingfasterandfaster,andpeople’srequirementofcateringisalsobecominghigherandhigher.Thecateringnotmerelyneedstobedelicious,niceandtasty,butalsohasthehigherdemandintimeandwayofordering.therapiddevelopmentofnetworkhasimpactonpeopleineveryregard.Anincreasingnumberofpeoplerareusedtodealwithalltheissuesthroughthenetwork.Androidhasbecomeaglobalinfluenceonawiderangeofoperatingsystems.TheOnlineOrderSystemBasedonAndroidisaonlineordersystembasedonAndroidmobileplatform,itcanmeettheneedsandrequirementsofthemodernbusiness.Itenablestoenhancetheserviceeffectivenessaswellasdecreasethelatencytimeofservices,letpeopleawayfromthecrowded.

Thesystemusesjavalanguagedevelopment,anduseMyEclipse,Tomcat,AndroidStudioandotherdevelopmentenvironmentordevelopmenttools.UsingtheMVParchitecturemodel,theuseofDagger2layerandlayersegmentationbetweenthecodetoreducethecoupling,theuseofthecurrentmorepopularRetorfitnetworkrequest,Gsondataanalysis,picassoonthepicturedisplay,andfinallytheuseofthreeShareSDKplatformtoverifytheuserloginverificationSMS.

Android-basedonlineorderingsystemisdividedintoserverandmobilemobileclient;

server-sideismainlyresponsibleforprovidingtheinterfacetoreturndatatotheclient,whilereceivingtheclienttoreturnthedataforprocessingandsave;

clienttoachievethemainfeaturesincludethefollowing:

Shopinformationdisplay;

commodityinformationdisplay;

shopping;

settlement;

submitorders;

userlogin;

orderdisplay.

Keywords:

java;

android;

TheOnlineOrderingSystem;

目 录

1 绪 论

1.1 课题的选题背景和研究意义

随着互联网的高速发展,越来越多的企业开始了电子商务;

日前,XX外卖,饿了么,美团等大型网上订餐平台应运而生,这些网上订餐平台不仅提供了餐馆的详细菜单等信息,还拥有丰富的商家资源,给用户提供了更多的选择。

网上订餐可使餐饮企业提高效率,节约成本。

通过计算机对订单的汇总,处理,实时无延迟,大大提高了速度。

同时,网上订餐为客户提供的是最方便的饮食方式,以快速,便捷的送货上门为客户提供最好的,最需要的餐饮和服务,为客户省去了很多不必要的时间和麻烦,给商家带来更多的利润[1]。

电子商务则是最能凸显个性化、多样化服务的商务方式。

随着网络技术的发展和普及,方便、快捷、个性化的网上订餐正在进入人们的生活。

正因如此,基于Android的点餐模式应运而生。

1.2 完成的任务与设计结果

1.2.1 完成的任务

本系统主要是分为两个部分,第一个部分是电脑服务器端,另一部分是Android客户端;

系统采用Http协议进行的数据传输,采用C/S结构,客户端为基于Android操作系统的智能手机,主要业务的逻辑有服务器完成,客户端主要实现商品的展示,购物车,结算中心,订单处理,用户的登录注册以及个人信息的展示等功能,服务端主要是处理客户端发送过来的请求处理相应的业务逻辑。

根据系统的设计,本论文主要内容安排如下:

第一章绪论,介绍项目的研究背景和研究意义。

第二章环境搭建及相关技术,介绍开发用到的工具以及开发中设计到的技术要点。

第三章需求分析和总体设计,对项目进行详细的需求分析,描述系统的总体目标,结构,概要,对系统总体进行设计

第四章详细设计,具体实现客户端与服务器的交互,以及对客户端的每个页面所实现的功能,用到的控件和技术做详细的说明。

第五章环境及测试,对完成的功能进行测试,发现问题立即进行判断,修改,并完善代码以及优化。

第六章总结,对本次的项目做整体的总结。

1.2.2 设计结果

该系统最终根据市面上的订餐系统、外卖系统等最为参考,实现了一些网上订餐的基本功能,其中包括首页显示店铺信息,用户根据自己的喜爱点击店铺进入菜单的详情页进行选购菜品加入到购物车,确定购物车的菜品之后进入结算中心,需要填写用户的收货地址,否则无法生成订单,最后确定订单之后提交订单进入支付中心,支付成功之后等待商家发货.最后项目打包完成之后在不同的Android系统版本的智能手机中进行测试,对测试的结果进行分析优化。

2 环境搭建及相关技术

2.1 系统开发工具

2.1.1 服务器搭建

为保证客户端的正常运行,必须保证服务器端配置完毕,并处于启动状态。

(1)JDK环境变量的配置

首先,在官网http:

//下载J2SDK并完成安装,本系统采用J2SDK1.7.0_45;

之后配置环境变量,我们采用的是Windows10的操作系统[2],所以在系统属性(如图2-1所示)的高级选项中单击环境变量进行环境变量的设置(如图2-2所示)

图2-1系统属性图2-2环境变量的配置

在图2-2中,配置JAVA_HOME和path环境变量,其内容设置如下:

JAVA_HOME=D:

\develop\java\jdk;

path=%JAVA_HOME%\bin;

完成以上设置后,检验其配置是否成功,打开Windowns的DOS窗口,输入java–version进行版本测试,出现如下图2-3即表示安装成功[3]。

图2-3检查java是否安装成功

(2)Tomcat简介及安装配置

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选[4];

Tomcat服务器最主要的功能就是充当JavaWeb应用的容器,它是基于Java的一个Servlet容器,它技术先进、性能稳定,而且免费,运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能,它和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,因而深受Java爱好者的喜爱并得到部分软件开发商的认可,成为目前比较流行的Web应用服务器,所以本系统将采用Tomcat作为应用服务器[5]。

Tomcat的安装配置:

本系统使用Tomcat的版本是:

7.0.53;

官网下载:

http:

//tomcat.apache.org/download-70.cgi,下载完成之后,解压,然后在测试tomcat,在解压包下的bin文件下找到startup.bat,双击运行启动,然后进入浏览器测试,输入http:

//localhost:

8080,出现如下图2-4表示Tomcat安装配置成功[6]。

图2-4检查Tomcat是否配置安装成功

(3)在MyEclipse中启动自定义的Tomcat

在MyEclipse6.0以上的版本中自带一个Tomcat,如果想要把我们安装的Tomcat集成在MyEclipse中将给开发带来极大的方便。

只需在MyEclipse中的首选项中的Tomcat设置为我们Tomcat的路径即可,如图2-5所示。

图2-5在MyEclipse中集成Tomcat

这样我们在MyEclipse中集成Tomcat之后,在MyEclipse中的Servers里就可以启动Tomcat,并且能在控制台看到其启动过程。

2.2.2 Android开发组件Androidstudio简介

随着科技快速发展,Android越来越受欢迎,它是由Google公司开发的基于Linux平台的开源手机操作系统,经过不断发展和完善,其功能越来越强大,需求量也越来越大,可说他是一个非常优秀的开源手机平台。

“工欲善其事,必先利其器”,在早期时候Android应用的开发工具使用Eclipse;

2013年5月,在I/O大会上,谷歌推出新的Android开发环境——AndroidStudio[7],并对开发者控制台进行了改进,相比Eclipse而言,它具有效率更高,运行速度更快,提示、补全更加智能,更加人性化,强大的UI编辑器等优点[8]。

本系统使用AndroidStudio2.1开发。

2.2 相关技术

2.2.1 MVP模型在Android中应用

MVP的全称是Model-View-Presenter;

它是从经典的模式MVC演变而来,它们的基本思想有相通的地方比如:

Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示[9]。

MVP的很大的一个区别就在于:

在MVP中View层并不直接使用Model,它们之间是通过Presenter来通信的(图2-6),而MVC中View会直接从Model中读取(如图2-7所示)

图2-6MVP模型图2-7MVC模型

2.2.2 Dagger2解耦

Dagger是为Android和Java平台提供的在编译时进行依赖注入的框架[10]。

那么我们为什么要使用依赖注入?

因为对象是在一个独立、不耦合的地方初始化,所以当注入抽象方法的时候,我们只需要修改对象的实现方法,而不用大改代码库;

Dagger2解决了基于反射带来的开发和性能上的问题,于是在本项目中是用它隔离界面(View)和业务(Presenter)。

2.2.3 Retorfit进行网络请求

Retorfit是一个功能强大的联网工具。

可以看成是OKHttp+数据解析(json、xml等)的组合。

使用它可以简化我们网络操作的工作,提高效率和正确率。

3 需求分析和总体设计

3.1 需求分析

本项目是针对网上订餐设计与实现的一个APP,此款软件主要是解决用户就餐时面临的一系列问题,用户可以通过一个手机app就可以让就餐变得更加快捷。

该系统分为服务器端和移动客户端,服务器负责提供接口返回数据给客户端,客户端接收服务器返回数据展示给用户,具体有首页店铺查看,详情菜谱查看,购物下单,支付订单,查看订单等功能,用户可以足不出户就能买到自己想要的饭菜;

由于时间原因,还有诸多的细节功能比如评论,收藏等功能需要拓展开发。

各功能需求如下:

首页店铺需要上面轮播图展示最新的优惠信息,附近店铺展示所有商铺信息,其中在中间会有分割线,展示大家都在找信息。

详情菜谱需要左右列表联动,用户可以根据自己的喜爱点击左边条目信息,右边跳转到相对应的条目;

用户也可以滑动右边条目,左边条目跟随变动条目;

用户点击右边条目的“+”号添加菜品到购物车,点击购物车跳转至购物车界面。

购物车需要展示用户选购的菜品以及相关信息;

结算中心需要用户添加送货地址,展现店铺信息和购物信息,可以提交订单;

支付中心需要通过生成的订单号获取服务器信息,展示支付方式并由用户选择不同的支付方式;

订单列表需要展示所有用户订单信息;

我的界面需要提供登录入口和展示个人信息;

登录方式需要用户使用手机获取验证码登录。

3.2 总体设计

3.2.1 系统目标

根据需求分析和功能分析,系统的最终目的:

能够清晰的展示店铺信息以及详情菜谱信息;

提供基本的点餐,结算,支付等功能;

界面框架清晰,页面简单化;

网络请求响应迅速。

3.2.2 系统概要设计

该系统结构图如图3-1所示:

图3-1 系统结构图

客户端概要设计如表3-1所示:

表3-1 客户端概要设计

客户端模块

简要说明

首页店铺模块

从服务器获取数据,分条目展示店铺信息

详情菜品模块

从服务器获取数据,展示菜品信息,并实现左右联动

购物车模块

选定菜品,存放在单例集合里面,购物车界面从集合读取数据

结算中心模块

根据购物车的选择结算方式,添加送货地址,进行商品的结算

支付中心模块

提交订单编号,获取支付方式,进行订单的支付

订单模块

从服务器获取订单数据展示订单数据

我的模块

从服务器获取用户信息展示用户信息

登录模块

手机号验证登录,提交数据到服务器

整体流程图如图3-2所示:

图3-2 客户端流程图

3.2.3 系统结构

本系统采用Http协议来进行数据传输。

采用C/S结构,客户端为基于Android操作系统平台的智能手机,主要业务逻辑则由服务器来实现数据存储在数据库服务器。

客户端与服务器的数据通信都是借助Json或者Json数组完成。

客户端短链接的http协议进行通讯,提交方式为get或者post两种请求方式,服务器进行响应,从而得到需要的结果。

附录一给出了各模块的接口说明,客户端根据参数列表内容进行请求,然后根据返回参数和示例进行结果处理。

(1)服务端设计

使用传统的servlet动态开发web资源,使用fastJson框架将数据封装成字符串返回,为前端提供访问接口,包设计如图3-3所示:

图3-3服务器包结构图3-4客户端包结构示意图

(2)客户端设计

使用MVP模式,详细包结构如图3-4所示;

从上至下分为4层:

第一层Dagger2主要负责层与层之间的隔离,在项目中主要处理V(视图层)和P(业务层)之间的隔离,主要针对Activity和Fragment中使用到的业务逻辑进行分离;

第二层为M(model模型)层,主要处理联网和数据库使用到Bean对象管理,命名约定为:

数据库实体使用Bean后缀;

第三层为P(presenter业务)层,主要处理业务操作,由于activity和fragment都可以扮演界面管理的角色,所以做两个方向的分支,base包可以省略,抽取一个界面业务管理的通用父类即可;

第四层为V(View视图)层,主要是处理界面相关内容。

3.2.4 数据库设计

该项目的数据库只有一个运行在服务端。

这种设计方式简单,便于开发。

但是用这种设计方式用户每次开启应用是都会将服务器的资源联网下载一遍,造成不必要的浪费。

另外,当网络数据不好时数据将无法显示,为此为了优化系统设计,会在客户端进行实现本地缓存。

(1)数据表字段设计

①用户表(用户ID,用户名,用户密码,电话,送餐地址)

②店铺表(店铺ID,店铺名称,店铺地址,订餐电话,店铺简介,店铺图片)

③详情菜谱表(食物ID,食物名称,店铺ID,类型ID,价格,食物简介,实物图片)

④支付方式表(支付ID,支付名称,支付图片)

⑤订单表(订单ID,用户ID,食物ID,数量,总价,送餐时间,支付方式)

(2)数据表结构设计

①用户表,存储的是订餐人的相关信息,主要是便于送餐的时候能够及时联系上订餐人,以及订餐地址。

同时用户ID贯穿整个项目应用中,比如下订单时会判断用户是否登录,以及订单的展示都是离不开用户ID的。

本表的字段如表3-2所示。

表3-2 用户表结构设计

字段名

字段类型

可否为空

字段含义

注释

USER_ID

NUMBER

用户ID

主键

USERNAME

VARCHAR

用户名

USERPASS

用户密码

MD5加密

MOBILENUM

电话

ADDRESS

送餐地址

COMMENT

备注

②店铺表,存储的是店铺信息,包括地址、订餐电话等店铺信息。

主要是保证订餐时用户可以及时的联系商家,而不需要额外的存储电话号码。

另外还有相关简介、图片和登记等信息,从而便于用户进行选择。

本表的字段如表3-3所示。

表3-3 店铺表结构设计

SHOP_ID

店铺ID

SHOPNAME

店铺名称

店铺地址

PHONENUM

订餐电话

INTRO

店铺简介

PIC

店铺图片

③详情菜谱表,存储所有相关的食物菜谱信息,便于用户进行选择。

该表直接将店铺表店铺ID作为外键使用。

本表的字段如表3-4所示。

表3-4 详情菜谱表结构设计

FOOD_ID

食物ID

FOODNAME

外键

TYPE_ID

类型ID

PRICE

价格

食物简介

食物图片

④支付方式表,主要是返回两种支付方式供用户选择。

本表的字段如表3-6所示。

表3-5 支付方式表结构设计

PAY_ID

支付ID

PAYNAME

支付名称

支付方式图片

⑤订单表,是一张关系表,存储的是用户和食物的购买关系。

为了简化开发,本项目的订餐功能从食物菜谱入手,一次订单中支持多种食物的购买。

本表的字段如表3-5所示。

表3-6 订单表结构设计

ORDER_ID

订单ID

NUM

数量

SUM

DOUBLE

总价

ORDERTIME

DATETIME

订单时间

PAY

支付方式

(3)数据库模型图

我们根据店铺表里面的店铺ID找到该店铺所有菜谱信息,然后每个菜谱表会有一个菜谱ID查询所有菜谱的详情信息,用户选餐之后会根据用户ID产生一个订单ID,而每一个订单有两种支付方式,根据支付ID可以查询该订单使用哪种支付方式。

所以表间关系如图3-5所示。

user_tab

PK

user_id

user_name

user_pass

user_address

user_moblinum

user_comment

order_tab

order_id

order_num

order_sum

order_time

order_pay

shop_tab

shop_id

shop_name

shop_address

shop_phone

shop_intro

shop_pic

food_tab

food_id

food_name

food_price

food_intro

food_pic

pay_tab

pay_id

pay_name

pay_pic

图3-5 数据库表间关系图

4 详细设计与实现

4.1 整体框架设计与实现

4.1.1 业务层联网操作

项目采用的联网框架Retorfit,由于服务器回复的是J

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1