2016~2017(1)
《Android程序设计》期末考查
设计、实现、使用文档
考查题目: 订餐外卖系统
一、 题目要求
本程序目的是设计一个校内的订餐系统,旨在方便大众。总所周知,外卖对于大学生快节奏生活必不可少,大学生通过订外卖可以增加时间的利用率,以及方便了大学生的生活。本系统具备的功能大体有:订餐、查询店家电话与地址、为店家打分等功能。
二、 本实验环境
前台:Myeclipse10、eclipse
服务器:tomcat6
数据库:mysql5.5
测试使用手机:酷派手机
适用ANDROID 4.2
三、 程序的设计
tb_admin表: 管理员信息表
序号 | 字段名称 | 字段类型 | 允许为空 | 最大长度 | 备注 |
1 | name | varchar | 否 | 20 | 主键 |
2 | password | varChar | 否 | 20 |
|
tb_food表: 食物表
序号 | 字段名称 | 字段类型 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 否 | 11 | 主键 |
2 | shopid | int | 否 | 11 |
|
3 | name | varchar | 否 | 50 |
|
4 | intro | varchar | 否 | 200 |
|
5 | price | Float | 否 | 50 |
|
6 | pic | varchar | 否 | 100 |
|
tb_member表:用户表
序号 | 字段名称 | 字段类型 | 允许为空 | 最大长度 | 备注 |
1 | name | varchar | 否 | 50 | 主键 |
2 | password | VarChar | 否 | 100 |
|
3 | phone | varchar | 否 | 50 |
|
tb_order表:订单表
序号 | 字段名称 | 字段类型 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 否 | 11 | 主键 |
2 | orderdate | VarChar | 否 | 50 |
|
3 | totalprice | float | 否 | (11,0) |
|
4 | username | VarChar | 否 | 50 |
|
5 | sendtime | VarChar | 否 | 50 |
|
6 | userphone | VarChar | 否 | 50 |
|
7 | useradress | VarChar | 否 | 50 |
|
8 | paymeans | VarChar | 否 | 50 |
|
9 | ordernote | VarChar | 否 | 100 |
|
10 | orderstate | VarChar | 否 | 11 |
|
11 | shopid | int | 否 | 11 |
|
12 | Score | Int | 否 | 11 | |
13 | foodid | Int | 否 | 11 | |
14 | ordernum | int | 否 | 11 | |
tb_orderdetail表:选菜表
序号 | 字段名称 | 字段类型 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 否 | 11 | 主键 |
2 | orderid | Int | 否 | 11 |
|
3 | foodid | int | 否 | 11 |
|
4 | ordernum | int | 否 | 11 |
|
5 | price | float | 否 | 11 |
|
tb_shop表:商家信息表
序号 | 字段名称 | 字段类型 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 否 | 11 |
|
2 | name | VarChar | 否 | 50 |
|
3 | intro | varchar | 否 | 500 |
|
4 | sendtime | VarChar | 否 | 50 |
|
5 | sendmoney | float | 否 | 11 |
|
6 | city | varchar | 否 | 50 |
|
7 | pic | varchar | 否 | 100 | |
8 | Phone | varchar | 否 | 50 | |
9 | Address | varchar | 否 | 100 | |
四、 程序的实现
(界面设计等将不具体给出过程,给出关键代码)
建立DB_Conn的一个类,其中包含数据库连接函数ConnectDB。
成员包括:
driverName //驱动程序名
userName //数据库用户名
userPassword//数据库用户密码
dbName="weborderdb"
url //数据库连接字符串
conn //数据库连接对象
sm //数据库语句对象
public void ConnectDB(){
try{
Class.forName(driverName).newInstance();//实例化
conn=DriverManager.getConnection(url,userName,userPassword);//获得数据库连接
sm=conn.createStatement();
System.out.println("connect success");
}
catch(Exception e){
e.printStackTrace();
out.print("数据库连接失败!");
}
}
创建HttpServlet响应客户端发来请求:
String username = request.getParameter("account");
String password = request.getParameter("password");
创建Dao来对mysql数据库进行更新操作:
String sql = "select * from tb_admin";
rs = db_conn.sm.executeQuery(sql);
数据传输相关:
通过用HttpUtil连结数据库,用queryStringForPost根据url获得HttpPost的对象,确认是否连接上服务器。然后向服务端发送请求,然后进行处理。
客户端主要的几个页面包括:用户登录界面、用户注册界面、主界面、订餐界面、点餐界面、订单界面、咨询界面、查询店家界面。
例如订餐界面,将向服务端请求的相关信息放入URL中,通过HttpUtil向服务端发送请求,向服务器请求相关数据,获取数据然后在客户端中呈现。
关键代码如下:
String url = HttpUtil.BASE_URL + "/servlet/AppOrderServlet?action=1&shopid=" + selShopId
+"&foodid=" + foodids
+"&num=" + nums
+"&sendtime=" + ordersendtime.getText().toString()
+"&address=" + orderaddress.getText().toString()
+"&phone=" + orderphone.getText().toString()
+"¬e=" + ordernote.getText().toString()
+"&paymeans=" + memo
+"&username=" + login_name
;
String result = HttpUtil.queryStringForGet(url);
例如在注册界面
首先是获取Text中的数据,然后注册按钮的动作是,通过HttpUtil向服务端发送请求,对数据库进行增添用户操作。
String queryString = "account=" + account + "&password=" + password + "&phone=" + phone;
// url
String url = HttpUtil.BASE_URL + "servlet/RegisterServlet?"
+ queryString;
ret = HttpUtil.queryStringForPost(url);
其他页面不再举例
五、 程序的结果(可通过文字和截图说明)
六、 总结与心得
我们通过这次课程设计,我们对Android编程产生了更加浓厚的兴趣,对Android中的常用类和接口有了进一步的认识。小组组员的相互合作,增加了团结合作的精神。同时让我们对编程有了一种新的看法,编程在我的学习中不再是那样的枯燥无味,而是时时刻刻充满惊喜。虽然这是一个挺小的项目但它对我们在编程方面起到了一种激励的作用。我们会在此基础上更加努力做出更好的程序。
本文来源:https://www.2haoxitong.net/k/doc/744a2048487302768e9951e79b89680202d86b53.html
文档为doc格式