一、期末作业题目
《校园失物/拾物APP》
二、实施目的
通过本实训,使受训者可以深入理解Android相关技术,并将所学知识应用到实际的中等规模的程序设计中。同时,通过本实训,受训者可以拓展Android相关的知识,提升受训者的能力。
三、实施要求
3.1、校园失物/拾物APP的场景
校园是大家生活的一个小社会环境,我们会经常发现把东西忘记在教室里,例如你的U盘,或者我们也经常将东西遗忘在食堂里,例如,你的书、背包等,更有甚者,把钱包遗失在我们也不记得的某个地方,好着急喔……。学校是一个纯净的地方:有人可能捡到你遗忘的东西,他/她也想能够尽快将你遗忘的东西送还给你……。
可以现在我们缺少这么一个能够尽快发布寻物启示或失物启示的地方。我们将开发这么一款APP:校园失物/拾物APP。通过这款APP,失物者或拾物者能够快速的达成他们急切的心愿。
3.2、程序基本需求
这是一款校园失物/拾物APP,因此,我们的APP应该具备如下基本功能:
1、拾物信息发布
拾物者能够使用该APP方便的发布拾物信息,包括:拾物者姓名、拾物者电话、拾物者微信号、拾物者联系地址、拾物地点、拾物时间、物品图片等。
2、失物信息发布
失物者能够使用该APP方便的发布失物信息,包括:物品名称、失物可能地点、失物者姓名、失物者电话、失物者微信号、失物描述等。
3、拾物信息浏览、查询和认领
失物者通过该APP能够方便的浏览所有拾物者发布的拾物信息,并可以通过一定的条件进行查询,包括:按拾物时间查询、拾物名称查询、拾物状态查询、拾物描述查询等。失物者通过该APP可对某个可能属于自己的失物物品进行认领。在可以认领之前,失物者必须在系统上进行注册并登陆。
4、失物信息浏览、查询和温馨提示
拾物者通过该APP能够方便的浏览所有失物者发布的拾物信息,并可以通过一定的条件进行查询,包括:按失物时间查询、失物名称查询、失物状态查询、失物描述查询等。拾物者可通过此APP给失物信息发布者发送认领温馨提示。
5、注册和登陆
需要认领失物的人只有在该APP上注册并登陆后方可对失物进行认领。注册信息包括:姓名、练习电话、微信号、通讯地址等。注册后即可登陆。
3.3、实训环境
手机端采用Android技术、服务器端采用JavaEE(数据库使用MySQL,Web 服务器采用Tomcat),在Eclipse或Android Studio开发环境下完成该项目。
Java Web部分发布到阿里云服务器(申请免费的阿里云服务器用于项目测试)或者自己的服务器。
3.4、难点分析
本实训项目除了包含本学期所学的《Android基础编程》的课程内容之外,还包括本学期所学的《Java Web项目开发》课程的内容。
四、作业展示
1、目录结构
2、登录注册界面
三、主页界面
四、失物拾物发布
五、失物拾物广场
六、失物拾物详情
七、用户界面
end:服务器测试代码
package com.http.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.http.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.bind.DatatypeConverter;
import java.io.*;
@Controller
public class LoginController {
private String data;
private Object userService;
@RequestMapping(value = "/androidLogin",method = RequestMethod.POST)
@ResponseBody
public void androidLogin(HttpServletResponse response, HttpServletRequest request) throws IOException, IOException {
response.setContentType("text/html;charset=utf-8");
//
String userName = request.getParameter("username").trim();
String passWord = request.getParameter("password").trim();
// String upsw = request.getParameter("password").trim();
System.out.println("=======安卓客户端连接服务器成功=============");
User user_android = this.userService.findAndroidLogin(unname,upsw);
//
PrintWriter out=response.getWriter();
if(userName.equals("zsan")&&passWord.equals("123")) {
// out.println("200");
BufferedInputStream ins=new BufferedInputStream(new FileInputStream(
new File("E:\\Test\\pic\\cat.jpg")));
byte[] bit=new byte[ins.available()];
try{
ins.read(bit);
ins.close();
}catch (Exception e){
e.printStackTrace();
}
//byte[]转base64 bit数据库传过来的值
String base64Str = DatatypeConverter.printBase64Binary(bit);
ObjectMapper json=new ObjectMapper();
String jsonStr=json.writeValueAsString(
new User
("张三","zsan","18576073196","广东中山",
"123",base64Str));
out.println(jsonStr);
System.err.println(jsonStr);
System.out.println("android端用户登陆成功");
}
else {
out.println("300");
System.out.println("登录失败");
}
}
}