【Android】拾物App期末作业

news2024/11/18 17:49:08

一、期末作业题目

        《校园失物/拾物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("登录失败");
        }
    }
    
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/604261.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

修改EMC VNX的管理口IP地址

本文详细介绍如何修改EMC VNX存储的管理口的IP地址,注意Unifed 和block的VNX存储方法是有所不同的,这也是有好几个朋友问我这个问题,写这篇博客的原因。 在修改管理口的IP地址之前,要确保存储不在storage domain中,如…

MTK 人像双摄虚化导通流程

和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、 创建 LogicalCameraName 相关的metadata二、 导通 LogicalCameraName Middleware 相关配置三、认 LogicalCameraName 是否创建成功四、双摄bringu…

用自然语言分割一切图像【lang-segment-anything】

近年来,计算机视觉取得了显着进步,特别是在图像分割和目标检测任务方面。 Segment Anything Model (SAM) 是最近的一项重大突破,这是一种多功能的深度学习模型,旨在有效地从图像和输入提示中预测对象掩码。 通过利用强大的编码器和…

听说最近AI应用爆了?!来AI Studio玩转大模型应用

‍ 飞桨 AI Studio 是基于百度深度学习平台飞桨(PaddlePaddle)的人工智能学习与实训社区,支持一站式模型在线开发与应用。提供优质开源模型、丰富的开源内容、功能强大的在线编程环境、云端超强 GPU 算力及存储资源,帮助开发者们快…

Docker镜像更新通知器DIUN

什么是 DIUN ? Docker Image Update Notifier 是一个用 Go 编写的 CLI 应用程序,可作为单个可执行文件和 Docker 映像交付,用于当 Docker 映像在 Docker registry中更新时接收通知。 和老苏之前介绍过的 watchtower 不同,DIUN 只是通知&…

基于Grafana的WebUI添加Prometheus数据源(三)

基于Grafana的WebUI添加Prometheus数据源(三) 1、 Grafana 介绍 1.1 什么是Grafana Grafana是一款近几年比较流行的开源数据绘图工具平台。Grafana原生支持包括但不限于InfluxDB,MySQL,OpenTSDB,PostgreSQL和Prometheus等多种数据源作为输入源…

勤于奋讲解国外LEAD做任务前的准备

欢迎关注勤于奋 每天12点准时更新国外LEAD相关技术 今天跟大家分享一些做国外LEAD一些资源,就是做国外LEAD前IP的检查,有人不是很清楚,今天分享一些检查工具。 第一个当然是whoer,这个工具我用的最多,很早的时候就使…

深入了解CUDA编程模型:并行计算的强大工具

深入了解CUDA编程模型:并行计算的强大工具 本篇博客将详细介绍NVIDIA的CUDA编程模型,帮助您更好地理解并行计算的基本原理和技巧。CUDA是一种通用并行计算平台和编程模型,它允许开发者利用NVIDIA的GPU进行高性能计算。 CUDA已经成为GPU计算的…

躺平减重法,续篇,泸州富顺六斤胡吃海喝之行的减重数据变化

朋友们大都知道我最近先回了一趟北京,然后去四川泸州参加了腾讯云泸州老窖联合举办的传统企业数字化转型研讨会,会议结束后,又去了富顺县,在我同学的四星级酒店大吃大喝了四天,嗯,果然不负众望,…

设计一个像ESPN一样的实时视频流系统

功能需求 •直播事件与流之间的最大延迟不超过1分钟•系统应能够适应大量用户(异构交付)•系统应能将视频转换为不同的分辨率和编解码器•系统应具备容错性 视频转换和接收 由于我们正在实时直播整个事件,因此我们不能等待整个视频结束后再开…

分布式ID-Leaf

目录 一,背景二,ID生成方案1,UUID2,类snowflake方案3,号段模式4,基于Redis模式5,数据库自增ID 三,Leaf Segment1,拉取源码2,修改配置并创建号段表3&#xff0…

FM实现F4帮助系列三:弹出框多筛选条件的搜索帮助(根据搜索帮助筛选字段)...

函数:F4IF_GET_SHLP_DESCR F4IF_START_VALUE_REQUEST 效果图: 本例子代码: 找到需要的帮助: *& Report ZLM_TEST_045 REPORT zlm_test_045. TABLES makt. DATA: BEGIN OF str_f4, matnr TYPE matnr, maktx TYPE maktx, END OF str_f4.…

【JavaEE初阶】前端第四节.JavaScript入门学习笔记

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:Java测试开发 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!! 前言 一、…

反馈体系

(1)引子 我前段时间看了一个小短视频,有主持人问马斯克:你最害怕什么? 马斯克想了很久,回答:我最害怕反馈机制失灵。 马斯克说的不是特斯拉汽车的反馈机制失灵(虽然特斯拉汽车上装了…

Office Visio 2010安装

哈喽,大家好。今天一起学习的是Visio 2010的安装,这是一个绘制流程图的软件,用有效的绘图表达信息,比任何文字都更加形象和直观。Office Visio 是office软件系列中负责绘制流程图和示意图的软件,便于IT和商务人员就复杂…

Java程序设计入门教程-- if 条件语句

目录 单分支选择语句(if) 双分支选择语句(if…else) 嵌套if语句 单分支选择语句(if) 情形 当判断条件满足时,执行语句体S,而不满足则什么都不做。 格式 if (条件判断表…

Web3:实质、本质和棒喝

本文的名称可能让人困惑,实质和本质不一样吗?棒喝又是个什么。 什么是实质、本质和棒喝 如果不是很计较的话,“实质”和“本质”其实差不多。但在这篇文章里,略有区别。 “实质”是说一个东西原原本本是个什么东西。 “本质”是一…

刚刚,吴恩达 ChatGPT 新课三连发!

你有没有想过,你可以自己构建一个AI系统,或者开发一个使用大语言模型(LLM)的应用,甚至理解并创建扩散模型?我在吴恩达的三门新课程中找到了答案,这些课程让我看到了AI的无限可能性。 好消息&…

Neo4j图数据库介绍及简单入门

文章目录 Neo4j图数据库介绍Neo4j数据库安装可视化例子Neo4j增删改查增删改查 Neo4j图数据库介绍 电影里有这样的片段,警察抓捕凶手时,在墙上会画一个图: 这里也有一个demo可以让我们看到一个做好的图数据库: 这个demo也是用Neo4…

前端基础几大件

文章目录 HTMLCSSJavaScriptAjaxAxios(第三方库,专门用于请求数据)SpringBoot单例模式与前端异步请求 HTML 在HTML当中,一切都是节点Object:(非常重要) 整个Html文档就是一个DOM文档节点。所有…