手机端网上外卖系统的设计与实现
2019-09-10李艳杰
摘 要:随着生活节奏的加快,对于年轻白领而言,为了节约更多的时间,外卖成了最方便的饮食方式。外卖可以给用户提供用户所需要的餐饮及服务,为用户省去了准备午饭或晚饭的麻烦,使其足不出户便可以享受便利的服务。同时,由于手机端网上外卖系统可以让用户随时浏览菜品和下单,可以大大提高商家的销售速度。本文简单地介绍了手机外卖系统的设计和实现过程,可以同时为商家和用户提供方便的服务。
关键词:外卖系統;Android;C/S结构
中图分类号:TP311.52 文献标识码:A 文章编号:2096-4706(2019)18-0064-03
Abstract:With the acceleration of the pace of life,for young white-collar workers,in order to have more free time,takeaway has become the most convenient way to eat. Takeaway can provide customers with the best and most needed catering and services,save a lot of unnecessary time and trouble for customers,and enjoy the convenience of life without leaving home. Mobile terminal online takeout system allows customers to browse dishes and order at any time,greatly improving the sales speed of businesses. This paper briefly introduces the design and implementation process of mobile phone takeout system,which can provide convenient services for both businesses and users.
Keywords:takeaway system;Android;C/S structure
0 引 言
本文设计的是一个基于Android手机的网上外卖系统,采用超文本传输协议使数据进行传输。采用客户端和服务器结构,基于Android操作系统平台的智能手机作为客户端,服务器端则是工作站。用户通过手机端浏览菜品并进行下单,后台识别到订单,准备外卖并派送,操作方便快捷。本文从可行性研究、需求分析、概要设计、详细设计、编码等几个方面介绍了整个软件的开发过程,在Android系统的基础上,采用Java开发语言和MySQL后台数据库设计完成。
1 Android简介
Android是基于Linux内核的软件平台和操作系统,目前,中国大部分手机的操作系统都使用Android系统。该平台的操作和计算机端是类似的,具有开源的特点,是方便学习和使用的系统。它是由三部分组成的软件堆层的架构。提供的基本功能主要以Linux内核工作为基础。
2 客户端/服务器模式简介
在系统实现的过程中,作为网络核心的服务器提供后台管理和数据存储功能,用户可以打开手机客户端,客户端的数据是向服务器发送请求,然后得到服务器的回复,从而取得的,在此过程中,服务器随时获取信号并予以回应。
客户端/服务器属于软件系统体系结构,这种体系结构利用硬件和卫星信号进行数据传输,服务器端主要用于计算和存储,目前很多用户在开发软件时使用此模式,因为它把客户端和服务器端分开来,每一个客户端软件的实例都可以向一个服务器发出请求,服务器端则根据客户端的要求,处理要求并传回结果。
3 系统分析与设计
目前,手机的应用已经非常普遍。只要能上网,打开外卖系统,用户便可以看到自己喜欢的菜品,因此要求客户端操作简便,但又功能齐全;所需资源少,可以为用户节约流量。由此考虑本系统的主要功能设计需要包括客户端和服务器端,例如登录与注册、用户的添加、修改、删除,菜单的添加、删除、修改,以及订单的管理等等。
3.1 功能模块图
系统的功能模块图如图1所示。系统开发的过程中,如果有需要增加或者删除的功能,还可以继续修改。
3.2 数据E-R图
E-R图即实体-联系图(Entity Relationship Dia-gram),它是一种概念模型。可以直观地描述现实生活中的实体与实体之间的联系,在本系统开发的过程中需要绘制很多E-R图,为了更加直观地了解图形,在此举一个案例,如图2所示。其中实体用矩形表示,实体的属性用椭圆表示,实体之间的连接用无向边实现;用菱形表示实体之间的联系。
3.3 部分数据库表及其结构
管理员表(管理员id,管理员name,管理员limit)。
订单表(订单id,订单describe,订单num)。
菜单表(菜单id,菜品price,菜品static,菜单discount,菜品describe)。
用户表(用户id,用户name,用户sex,用户telephone,用户address,用户points)。
Buyrecord表(订单id,详细id,菜品id,num)。
出售菜单表(菜单id,菜单name,菜单category,菜单price,菜单picture)。
3.4 客户端数据库的连接
ContentProvider是Android的内容提供商,利用MySQL数据库管理系统设计完数据库中的所有表之后,需要与前台客户端进行连接,程序中数据库类为IopenHelper extends SQLiteOpenHelper(继承关系),在此列出连接数据库的代码:
public class IopenHelper extends SQLiteOpenHelper {注释:生成用以记录购买过菜品的buyrecord表。
private static final String RECORD_TABLE = "create table Buyrecord (oid integer primary key, doidinteger,bidinteger,donum integer)";
注释:生成表用以存储上次购买过的菜品showgoods表。
private static final String GOODS_TABLE = "create table showgoods (bid integer primary key , bnamevarchar,bstylevarchar,bpricefloat,bpicturevarchar)";
3.5 环境搭建
搭建Android的开发环境:可以选择Windows 7及以上系统或Linux系统;必须有Android SDK(Software Development kit Java Development kit)、ADT(Android Development Tool)软件包;Eclipse IDE+ADT Eclipse5以上的IDE环境;JDK:Java Runtime Environment虚拟机、(JDK)Java Development kit;要注意配置环境变量,这样Android环境就已经搭建成功了,路径可以自己根据需要选择。
4 系统实现
在设计完成以上过程后,便可以设置界面编写代码进行系统实现了。在此对如下的系统注册和登录进行介绍。
注册界面用于用户第一次使用系统,必须先进行注册才能下订单,不注册则只能浏览菜品。注册完成后,用户所提交的内容会发给服务器,服务器经过处理,会把数据插入到数据库对应的表中。客户端实现注册代码如下:
BRegister.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(name.equals("")||password.equals ("") ||repassword.equals("")){
}else {
if (infoHashMap.get("password").equals(
infoHashMap.get("re password"))) {
data = "name " + infoHashMap.get("username") + ";"
+ "password " + infoHashMap.get("password") +";"
+ "sex " + infoHashMap.get ("sex") + ";" + "num"
+ infoHashMap.get("number") + ";" + "address "
+ infoHashMap.get("address");
Number=new Member(name,password,infoHashMap
.get("sex"),number,address);}
StocolHelper.setObject(member);
StocolHelper.setRequest(Ptocol Helper.REGISTER,
SrotocolHelper.INSERT, data);
response = StocolHelper.send Request();
if (response.equals("success")) }
}
登錄模块界面是显示一个登录窗口,需要在界面上加入许多控件,如文本输入框、文本显示框、单选按钮、复选按钮等,然后用一系列的布局将其有条理地放在这个窗口中。部分代码如下:
if (flag) {
注释:用户点击登录按钮即可登录到系统中。
Content intent = new Cotent(LoginActivity.this,
TSductListActivity.class);
startActivity(intent);
Cotent intent1 = new Intent(LoginActivity.this,
AlterdateService.class);
startService(intent1);
}
5 结 论
在系统实现的过程中,会遇到多种多样的问题,特别是代码的书写和调试过程,因为任何语言都有自己的语法规则,如果写错一个英文字符,则整个程序就会出错,所以要注意语法规则。本系统的实现,使人们通过手机网络就可以完成生活中必要的饮食问题,方便了人们的生活,提高了人们的生活效率。
参考文献:
[1] 姚尚朗,靳岩.Android开发入门与实践:第2版 [M].北京:人民邮电出版社,2013:59.
[2] 何光明,童爱红,王国全.C语言实用培训教程 [M].北京:人民邮电出版社,2003:102.
[3] 东方人华.Visual C#.NET Web应用程序设计入门与提高 [M].北京:清华大学出版社,2005:178.
作者简介:李艳杰(1978-),女,汉族,山东德州人,讲师,硕士,研究方向:数据挖掘技术。