基于Android客户端的食堂订餐系统的毕业设计.docx

上传人:b****0 文档编号:9017604 上传时间:2023-05-16 格式:DOCX 页数:52 大小:70.03KB
下载 相关 举报
基于Android客户端的食堂订餐系统的毕业设计.docx_第1页
第1页 / 共52页
基于Android客户端的食堂订餐系统的毕业设计.docx_第2页
第2页 / 共52页
基于Android客户端的食堂订餐系统的毕业设计.docx_第3页
第3页 / 共52页
基于Android客户端的食堂订餐系统的毕业设计.docx_第4页
第4页 / 共52页
基于Android客户端的食堂订餐系统的毕业设计.docx_第5页
第5页 / 共52页
基于Android客户端的食堂订餐系统的毕业设计.docx_第6页
第6页 / 共52页
基于Android客户端的食堂订餐系统的毕业设计.docx_第7页
第7页 / 共52页
基于Android客户端的食堂订餐系统的毕业设计.docx_第8页
第8页 / 共52页
基于Android客户端的食堂订餐系统的毕业设计.docx_第9页
第9页 / 共52页
基于Android客户端的食堂订餐系统的毕业设计.docx_第10页
第10页 / 共52页
基于Android客户端的食堂订餐系统的毕业设计.docx_第11页
第11页 / 共52页
基于Android客户端的食堂订餐系统的毕业设计.docx_第12页
第12页 / 共52页
基于Android客户端的食堂订餐系统的毕业设计.docx_第13页
第13页 / 共52页
基于Android客户端的食堂订餐系统的毕业设计.docx_第14页
第14页 / 共52页
基于Android客户端的食堂订餐系统的毕业设计.docx_第15页
第15页 / 共52页
基于Android客户端的食堂订餐系统的毕业设计.docx_第16页
第16页 / 共52页
基于Android客户端的食堂订餐系统的毕业设计.docx_第17页
第17页 / 共52页
基于Android客户端的食堂订餐系统的毕业设计.docx_第18页
第18页 / 共52页
基于Android客户端的食堂订餐系统的毕业设计.docx_第19页
第19页 / 共52页
基于Android客户端的食堂订餐系统的毕业设计.docx_第20页
第20页 / 共52页
亲,该文档总共52页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于Android客户端的食堂订餐系统的毕业设计.docx

《基于Android客户端的食堂订餐系统的毕业设计.docx》由会员分享,可在线阅读,更多相关《基于Android客户端的食堂订餐系统的毕业设计.docx(52页珍藏版)》请在冰点文库上搜索。

基于Android客户端的食堂订餐系统的毕业设计.docx

基于Android客户端的食堂订餐系统的毕业设计

基于Android客户端的食堂订餐系统的毕业设计

基于Android客户端的食堂订餐系统的设计与实现

摘要:

在网络技术快速发展的今天,原先普通的预定餐厅已经不能满足的功能需求。

网络越来越贴近生活,本产品通过网络订餐方便商家客户互动。

用户通过注册登陆的方式能及时看到餐饮商家更新的信息,包括餐厅环境,菜肴信息,菜价等,反馈饭菜的好吃与否。

商家可及时更新信息,处理订单,通知客户订单确认。

系统管理员可以维护更新发布消息,还可以推荐食品(根据反馈),菜谱管理等一些辅助功能。

关键词:

Android;客户端;订餐

一、引言

(一)开发背景

在网络技术快速发展的今天,原先普通的预定餐厅已经不能满足的功能需求。

网络越来越贴近生活,本产品通过网络订餐方便商家客户互动。

用户通过注册登陆的方式能及时看到餐饮商家更新的信息,包括餐厅环境,菜肴信息,菜价等,反馈饭菜的好吃与否。

商家可及时更新信息,处理订单,通知客户订单确认。

系统管理员可以维护更新发布消息,还可以推荐食品(根据反馈),菜谱管理等一些辅助功能。

(二)面向对象

学校的学生,教师

(三)开发工具的介绍

以下是对食物信息管理系统的开发环境进行阐述:

操作系统:

WindowsXP

数据库:

Mysql8.2

开发工具:

Eclipse

二、需求分析

1 用户注册

用户使用android APP进行注册或登录。

若未注册可选择注册,只有注册用户方可点餐。

未注册用户:

只能登陆查询餐厅菜肴信息,不能订餐;

注册用户:

注册提供用户名,密码,短号或其他联系方式,学号或工号。

可以查询信息,可以订餐。

2登陆

客户端登陆进行点餐,服务端登陆进行管理。

3 查看餐厅信息

显示餐厅的各种信息,包括餐厅名称,ID图片 文字说明。

用户找到自己喜欢的餐厅后,点击餐厅图片进入此餐厅信息页面,可同构点击菜肴信息进入订餐。

4 查看菜肴信息

用户再点击进入菜肴信息后,可以查看所有菜肴信息,包括名称、图片、价格、餐厅等,找到自己喜欢的菜肴可以点击确定,还可以根据就餐爱好,分类查询,动态搜索。

      

5 订餐确认 

用户在选择餐厅菜肴后,可点击确定,系统根据用户选择会自动生成订单信息,包括订单ID,用户名,学号或工号,餐厅ID,餐厅名称,菜肴ID,菜肴名称,菜式剩余数量,到餐时间,取货地点,联系方式等。

用户查看又不满意可以取消订单或者更换菜肴,直至满意。

然后点击订单确认,此订单生成,订单信息系统自动存储。

 

6 商家确认订单生成

在用户生成订单后,餐厅查看,并确认。

7 商家更新信息

商家根据实体店近期信息,可选择更新餐厅信息,包括菜肴信息及优惠信息等。

更新菜肴信息:

包括名称、口味、图片、编号、价格等,更新优惠信息。

更新结束后,点击确认,信息生成并保存在服务端。

 

三、系统设计

(一)系统设计的体系结构

本系统的设计及开发采用了流行的B/S(浏览器/服务器)模式的数据库体系,用户端主要负责人机交互,包括一些与数据和应用关系的图形和界面运用。

Web服务器主要负责对客户端应用程序的集中管理。

应用服务器主要负责应用系统的逻辑结构和数据关系,即事务处理。

应用服务器又可以根据其处理的具体业务不同而分为多个。

数据服务器则主要负责数据的存储和组织、分布式管理、备份和同步等等。

(二)系统流程图

根据食物设计的特点,将其分为两大模块:

前台用户模块和后台管理员模块。

1.前台模块流程图如图3-1所示:

图3-1前台模块流程图

2.后台模块流程图如图3-2所示:

图3-2后台模块流程图

(三)系统功能图

绘制系统结构图的过程,实际上就是对系统功能模块进行分解设计的过程,即合理地将数据流程图转变为所需要的系统结构图。

系统结构图将会使读者和用户能直观的了解系统的结构模式,理解系统的各个功能的结构,能很好地方便用户使用和理解整个系统。

根据上述分析,按照结构化程序设计的需求,得到系统模块图,如图3-3所示:

四、数据库表设计

(一)系统E-R图

E-R图由实体、实体的属性以及实体之间的关系三部分组成,实体是具有相同的性质并且彼此之间可以相互区分的现实世界对象的集合;属性是实体所具有的特征,它是描述实体或者关系的性质的数据项;实体之间的关系通常是指不同实体之间的关系。

图4-1E-R图

(二)系统数据表设计

数据库在物理设备上的存储结构与存取方法被称为数据库的物理结构,它依赖与给定的计算机系统。

为一个给定的逻辑数据模型选取一个最合适应用要求的物理结构。

根据上面的实体关系分析以及ER图,设计系统的数据库表。

1.管理员信息表(t_admin),用来记录管理员的及密码的信息。

表4-1管理员信息表

序号

列名

数据类型

标识

主键

允许空

说明

1

userId

Int

管理员编号

2

userName

varchar(50)

管理员

3

userPw

varchar(50)

管理员密码

2.站公告信息表(t_gonggao),主要记录了站公告的标题、容、日期和公告发布者,公告删除则是在数据库表中显示公告是否已被删除。

表4-2站公告信息表

序号

列名

数据类型

标识

主键

允许空

说明

1

gonggao_id

Int

公告编号

2

gonggao_title

varchar(50)

公告标题

3

gonggao_content

varchar(8000)

公告容

4

gonggao_data

varchar(50)

公告日期

5

gonggao_fabuzhe

Varchar(50)

发布者

6

gonggao_del

Varchar(50)

公告删除

7

gonggao_one1

varchar(50)

公告1

8

gonggao_one2

varchar(50)

公告2

9

gonggao_one3

varchar(50)

公告3

10

gonggao_one4

varchar(50)

公告4

11

gonggao_one5

datetime(0)

公告5

12

gonggao_one6

datetime(0)

公告6

13

gonggao_one7

Int(11)

公告7

14

gonggao_one8

Int(11)

公告8

3.食物信息表(t_Food),该表主要用来记录食物的名称、所在地址、食物价格和食物的详情,并且可以在数据库表中查看到食物信息是否被删除,其中食物编号是表中的外键。

表4-3食物信息表

序号

列名

数据类型

标识

主键

允许空

说明

1

Id

Int

食物编号

2

name

varchar(50)

食物名称

3

address

varchar(50)

地址

4

menpiao

Int

送餐

5

xiangqing

varchar(5000)

详情

6

del

char(10)

删除

4.订单信息表(t_jiudian),用来记录客人的名称、地址以及客人的、联系人和订餐的一些标准,其中食物编号是信息表中的外键。

表4-4酒店信息表

序号

列名

数据类型

标识

主键

允许空

说明

1

Id

Int

食堂编号

2

name

varchar(50)

食物名称

3

address

char(10)

送餐地址

4

tel

char(10)

送餐

5

lianxiren

char(10)

联系人

6

biaozhun

char(10)

标准

7

Food_id

int

食物编号

8

del

char(10)

删除

表4-5食物信息表

序号

列名

数据类型

标识

主键

允许空

说明

1

Id

Int

食物编号

2

name

varchar(50)

食物名称

3

address

varchar(5000)

4

tel

varchar(50)

联系方式

5

lianxiren

varchar(50)

联系人

6

jianjie

varchar(50)

简介

7

del

varchar(50)

删除

6.订餐信息表(t_foods),用来记录订餐的标、容以及订餐的日期。

表4-6订餐信息表

序号

列名

数据类型

标识

主键

允许空

说明

1

foods_id

Int

订餐编号

2

foods_title

varchar(50)

订餐标题

3

foods_content

varchar(5000)

订餐容

4

foods_date

varchar(50)

订餐日期

5

foods_one1

varchar(50)

订餐1

6

foods_one2

varchar(50)

订餐2

7

foods_one3

varchar(50)

订餐3

8

foods_one4

varchar(50)

订餐4

9

foods_one5

Int

订餐5

7.网友投票信息表t_toupiao),通过投票的方式得知用户是如何评价每一种食物的,该表记录了投票的名称和投票的日期。

表4-7网友投票信息表

序号

列名

数据类型

标识

主键

允许空

说明

1

toupiao_id

Int

投票编号

2

toupiao_name

varchar(50)

投票名称

3

toupiao_date

varchar(5000)

投票日期

8.用户信息表(t_user),用来记录用户名、密码、用户类型、用户的真实及用户的地址、性别、用户的联系方式、和QQ。

表4-8用户信息表

序号

列名

数据类型

标识

主键

允许空

说明

1

user_id

Int

用户编号

2

user_name

varchar(50)

用户名

3

user_pw

varchar(5000)

用户密码

4

user_type

Int

用户类型

5

user_realname

varchar(50)

用户真实

6

user_address

varchar(50)

用户住址

7

user_sex

varchar(50)

性别

8

user_tel

varchar(50)

用户联系方式

9

user_email

varchar(50)

用户

10

user_qq

varchar(50)

用户QQ

五、系统功能的具体实现

(一)首页

在食物资源管理首页可查看发布的订餐资讯、发布的食物公告信息、可按关键字查询食物信息、可进行投票调查等功能,用户登录之后即可进入首页,首页如下图5-1所示:

图5-1首页图

主要代码如下:

packagefood.test.zqz.util;

importjava.io.InputStream;

import.HttpURLConnection;

import.URL;

importjava.util.ArrayList;

importjava.util.HashMap;

importjava.util.List;

importjava.util.Map;

importorg.apache.http.HttpResponse;

importorg.apache.http.NameValuePair;

importorg.apache.http.client.entity.UrlEncodedFormEntity;

importorg.apache.http.client.methods.HttpPost;

importorg.apache.http.impl.client.DefaultHttpClient;

importorg.apache.http.message.BasicNameValuePair;

importorg.apache.http.protocol.HTTP;

importorg.apache.http.util.EntityUtils;

importandroid.graphics.Bitmap;

importandroid.graphics.BitmapFactory;

importandroid.util.Log;

importandroid.widget.ImageView;

importfood.test.domain.Food;

/**

*

*authorzhuqiuzhu从服务器获取有关主界面的所有数据

*

*/

publicclassGetNetWorkData{

//菜品图片资源定位符

publicfinalstaticStringURL="10.0.2.2:

8080/DestineFoodServer/images";

publicfinalstaticStringURL_AllFood="10.0.2.2:

8080/DestineFoodServer/GetAllFoodServlet";

/**

*

*paramurl

*服务器端的URI地址

*paramparams

*发给服务端的请求参数,以键值对的形式封装名字和对应的值,

*

*其中params的名字键位应该跟服务端保持一致

*

*return

*/

publicfinalstaticStringBuffergetConnectionPost(Stringurl,

HashMapparams){

StringBuffersb=newStringBuffer();

HttpPostrequest=null;

HttpResponseresponse=null;

try{

if(url!

=null){

/*----------请求--------------------*/

request=newHttpPost(url);

Listlist=newArrayList();

for(Map.Entryentry:

params.entrySet()){

Stringname=entry.getKey();

Stringvalue=entry.getKey();

list.add(newBasicNameValuePair(name,value));

}

request.setEntity(newUrlEncodedFormEntity(list,HTTP.UTF_8));

/*-------------响应-------------------*/

response=newDefaultHttpClient().execute(request);

if(response.getStatusLine().getStatusCode()==){

Stringtemp=EntityUtils.toString(response.getEntity());

if(temp.trim().length()>0){

sb.append(temp);

}else{

sb.append("errorresponsedatalength");

}

}else{

sb.append("errorresponsecode:

").append(

response.getStatusLine().getStatusCode());

}

}else{

//url为空

returnnull;

}

}catch(Exceptione){

e.printStackTrace();

}

returnsb;

}//endofgetConnectionPost()

/**

*

*对服务器端的响应数据进行“解码”

*

*解码规则:

约定服务器端传送的数据为字符串类型,格式为

*"[name=value;name=value;...],[name=value;...]...",

*注意"="两端无空格,必须以"["开头,以"]"结束

*

*

*paramsb

*服务器端的响应数据

*return一个以键值对形式存储的服务端响应数据

*/

publicfinalstaticArrayListdecodeResponseData(Stringsb){

ArrayListresData=newArrayList();

StringitemStr="";

Stringname="";

Stringvalue="";

Foodfood;

do{

inta=sb.indexOf(',');

if(a==-1){

itemStr=sb;

//decode(resData,initResponse);

food=newFood();

//一个while语句对应一个Food对象,等等还要重构

while(true){

intn_last=itemStr.indexOf('=');

name=itemStr.substring(1,n_last);

System.out.println(name);

intv_first=itemStr.indexOf('=');

itemStr=itemStr.substring(v_first);

intv_last=itemStr.indexOf(';');

if(v_last==-1){

v_last=itemStr.indexOf(']');

}

value=itemStr.substring(1,v_last);

System.out.println(value);

if(name.equals("foodId")&&name!

=null){

food.foodId=Integer.parseInt(value);

}elseif(name.equals("foodPrice")&&name!

=null){

food.foodPrice=Float.parseFloat(value);

}elseif(name.equals("foodType")&&name!

=null){

food.foodType=Integer.parseInt(value);

}elseif(name.equals("foodDescri")&&name!

=null){

food.foodDescri=value;

}elseif(name.equals("foodImage")&&name!

=null){

food.foodImage=value;

}elseif(name.equals("foodName")&&name!

=null){

food.foodName=value;

}else{

Log.e("-----","errorparams");

}

itemStr=itemStr.substring(v_last);

if(itemStr.trim().startsWith("]")

||itemStr.trim().length()<=2){

break;

}

}//endofwhile

resData.add(food);

break;

}

itemStr=sb.substring(0,a);

//decode(resData,itemStr);

food=newFood();

while(true){

intn_last=itemStr.indexOf('=');

name=itemStr.substring(1,n_last);

System.out.println(name);

intv_first=itemSt

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2