nt 是 是 否 食堂编号 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网站首页图
主要代码如下:package food.test.zqz.util;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;
import android.widget.ImageView;
import food.test.domain.Food;
/**
*
* @author zhuqiuzhu 从服务器获取有关主界面的所有数据
*
*/
public class GetNetWorkData {
//菜品图片资源定位符
public final static String URL = "10.0.2.2:8080/DestineFoodServer/images";
public final static String URL_AllFood = "10.0.2.2:8080/DestineFoodServer/GetAllFoodServlet";
/**
*
* @param url
* 服务器端的URI地址
* @param params
* 发给服务端的请求参数,以键值对的形式封装名字和对应的值,
*
* 其中params的名字键位应该跟服务端保持一致
*
* @return
*/
public final static StringBuffer getConnectionPost(String url,
HashMap
params) {
StringBuffer sb = new StringBuffer();
HttpPost request = null;
HttpResponse response = null;
try {
if (url != null) {
/*----------请求--------------------*/
request = new HttpPost(url);
List list = new ArrayList();
for (Map.Entry entry : params.entrySet()) {
String name = entry.getKey();
String value = entry.getKey();
list.add(new BasicNameValuePair(name, value));
}
request.setEntity(new UrlEncodedFormEntity(list, HTTP.UTF_8));
/*-------------响应-------------------*/
response = new DefaultHttpClient().execute(request);
if (response.getStatusLine().getStatusCode() == 200) {
String temp = EntityUtils.toString(response.getEntity());
if (temp.trim().length() > 0) {
sb.append(temp);
} else {
sb.append("error response data length");
}
} else {
sb.append("error response code:").append(
response.getStatusLine().getStatusCode());
}
} else {
// url为空
return null;
}
} catch (Exception e) {
e.printStackTrace();
}
return sb;
}// end of getConnectionPost()
/**
*
* 对服务器端的响应数据进行"解码"
*
* 解码规则:约定服务器端传送的数据为字符串类型,格式为
* "[name=value;name=value;...],[name=value;...]...",
* 注意"="两端无空格,必须以"["开头,以"]"结束
*
*
* @param sb
* 服务器端的响应数据
* @return 一个以键值对形式存储的服务端响应数据
*/
public final static ArrayList decodeResponseData(String sb) {
ArrayList resData = new ArrayList();
String itemStr = "";
String name = "";
String value = "";
Food food;
do {
int a = sb.indexOf(',');
if (a == -1) {
itemStr = sb;
// decode(resData,initResponse);
food = new Food();
// 一个while语句对应一个Food对象,等等还要重构
while (true) {
int n_last = itemStr.indexOf('=');
name = itemStr.substring(1, n_last);
System.out.println(name);
int v_first = itemStr.indexOf('=');
itemStr = itemStr.substring(v_first);
int v_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);
} else if (name.equals("foodPrice") && name != null) {
food.foodPrice = Float.parseFloat(value);
} else if (name.equals("foodType") && name != null) {
food.foodType = Integer.parseInt(value);
} else if (name.equals("foodDescri") && name != null) {
food.foodDescri = value;
} else if (name.equals("foodImage") && name != null) {
food.foodImage = value;
} else if (name.equals("foodName") && name != null) {
food.foodName = value;
} else {
Log.e
上一篇:基于IOS系统的新闻一周见手机APP设计
下一篇:试论APP广告在手机中的应用