安卓APP源码和设计报告——智能垃圾桶

news2024/11/15 8:16:48

课程名称: 移动互联网应用开发

实验名称

姓名/学号

专业/班级

指导教师

实验时间

一、案例功能需求

该系统是了解垃圾分类以及物品查询属于哪类垃圾的智能化APP。该系统可以实现用户登陆注册,登录成功后用到Frament分为三页,首页、分类百科和搜索实现的。首页可以查看四大类垃圾分类详情,分类百科可以拍照上传物品然后识别出属于什么类别的垃圾,搜索可以实现你想要搜索的商品是什么类型的垃圾。如下图,图1.1。

图1.1

二、文件结构

1、开发环境

Windows10 x64、Android Studio 2020.3.1 Patch2

2、运行环境

Android 11(R) skd14

3、是否需要联网

三、项目配置文件及工程结构

1、工程配置文件

表一:工程文件位置

图一,图二:manifest

2、工程结构目录

图三:java工程结构

图四:layout工程结构

图五:drawable工程目录

三、程序详细分析

1、项目源码中含有数据库frgment、RALD数据库连接、数字转换等。

2、frgment:(3)将Fragment加入到动态数组ArrayList<Fragment>中,实例化适配器,并绑定到ViewPager上,设置ViewPager2切换监听器,改变下方按钮图片——initFragment();

RALD数据库连接:

public class RALDbConnect extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "UserInfo";// name of database we want to create
public static final String TABLE_NAME = "mytable"; // name of table we want to create
public static final int DATABASE_VERSION = 1; // version of our database it can be any no
// column names we want in our table
public static final String UID = "_id" ; // primary key field of table(ist column)(_id)
public static final String USERNAME = "Username" ; // 2nd column(Uname) of table
public static final String PASSWORD = "Password" ; // 3rd column (Password) of table
public static final String EMAIL="Email";
public static final String PHONENUMBER="Phonenumber";
public static final String ADDRESS="Address";

private static final String CREATE_TABLE = " CREATE TABLE " + TABLE_NAME + " ( " + UID +
" INTEGER PRIMARY KEY AUTOINCREMENT, " + USERNAME + " VARCHAR(255) , "
PASSWORD + " VARCHAR(255)," + EMAIL + " VARCHAR(255),"+ PHONENUMBER + " VARCHAR(255)," + ADDRESS + " VARCHAR(255));";


private static final String DROP_TABLE = " DROP TABLE IF EXISTS " + TABLE_NAME ;
private Context context;
public RALDbConnect(Context context)
{
super(context, DATABASE_NAME, null,DATABASE_VERSION);
this.context = context ;
}

// oncreate() will be called to create database first time it is called only once
@Override
public void onCreate(SQLiteDatabase db) {
try
{
db.execSQL(CREATE_TABLE); // used to create table into database
}
catch(Exception ex)
{
Log.e("myerror", ex.getMessage());
}
}
// this method will call when we upgrade our database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
try
{
Log.i("currentDb", "upgraded");
db.execSQL(DROP_TABLE);
onCreate(db);
}
catch(Exception ex)
{
Log.e("error on Upgreade", ex.getMessage());
}

}

}

数字转换:

public class DigitalConversion {

private static String nums[] = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九"};

private static String pos_units[] = {"", "十", "百", "千"};

private static String weight_units[] = {"", "万", "亿"};

/**
* 数字转汉字【新】
*
* @param num
* @return
*/
public static String numberToChinese(int num) {
if (num == 0) {
return "零";
}

int weigth = 0;//节权位
String chinese = "";
String chinese_section = "";
boolean setZero = false;//下一小节是否需要零,第一次没有上一小节所以为false
while (num > 0) {
int section = num % 10000;//得到最后面的小节
if (setZero) {//判断上一小节的千位是否为零,是就设置零
chinese = nums[0] + chinese;
}
chinese_section = sectionTrans(section);
if (section != 0) {//判断是都加节权位
chinese_section = chinese_section + weight_units[weigth];
}
chinese = chinese_section + chinese;
chinese_section = "";
//Log.d("TAG", chinese_section);

setZero = (section < 1000) && (section > 0);
num = num / 10000;
weigth++;
}
if ((chinese.length() == 2 || (chinese.length() == 3)) && chinese.contains("一十")) {
chinese = chinese.substring(1, chinese.length());
}
if (chinese.indexOf("一十") == 0) {
chinese = chinese.replaceFirst("一十", "十");
}

return chinese;
}

/**
* 将每段数字转汉子
*
* @param section
* @return
*/
public static String sectionTrans(int section) {
StringBuilder section_chinese = new StringBuilder();
int pos = 0;//小节内部权位的计数器
boolean zero = true;//小节内部的置零判断,每一个小节只能有一个零。
while (section > 0) {
int v = section % 10;//得到最后一个数
if (v == 0) {
if (!zero) {
zero = true;//需要补零的操作,确保对连续多个零只是输出一个
section_chinese.insert(0, nums[0]);
}
} else {
zero = false;//有非零数字就把置
section_chinese.insert(0, pos_units[pos]);
section_chinese.insert(0, nums[v]);
}
pos++;
section = section / 10;
}
return section_chinese.toString();
}
}

四、主要流程分析

  1. 登录、登录信息存储


用户输入账号密码登陆,没有就可以注册并登陆,如果账号密码输入不正确,就会无法登录,账号密码输入正确则登陆成功。


图六 登录界面图

  1. 注册


图七 注册界面图

  1. 平台主页
    可以查看垃圾种类的分类百科


图八 平台主页图

  1. 查询结果
    可以查看垃圾的分类情况

  1. 拍照识别功能

对垃圾进行拍照并识别垃圾属于那种类别

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

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

相关文章

[附源码]计算机毕业设计JAVA校园摄影爱好者交流网站

[附源码]计算机毕业设计JAVA校园摄影爱好者交流网站 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM …

Web大学生网页作业成品 基于HTML+CSS+JavaScript个人简历介绍 学生个人网站作业设计代做 学生个人网页设计作品

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

【历史上的今天】12 月 3 日:世界上第一条短信;Fortran 语言之父诞生;百度贴吧上线

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2022 年 12 月 3 日&#xff0c;在 21 年前的今天&#xff0c;电动平衡车&#xff08;Segway&#xff09;问世&#xff1b;电动平衡车是一种电力驱动、具有自我平衡能力…

教师教学质量评价管理系统(ASP.net+SqlServer)

目录 摘 要 I Abstract II 目录 III 第一章 引言 1 1.1 课题的背景和意义 1 1.2 教学质量评价信息系统的发展 1 1.2.1 国外主要教育评价方法 1 1.2.2我国高校教师教学评价的发展 2 第二章 开发技术简介 3 2.1 .NET框架简介 3 2.2 ASP.NET简介 4 2.3 SQL Server 2008数据库 5 第…

Cinema 4D初学者终极指南

Cinema 4D初学者终极指南 通过此 Cinema 4D 课程将您的设计技能提升到一个新的水平&#xff0c;进入 3rd Dimension 课程英文名&#xff1a;Cinema 4D Masterclass The Ultimate Guide for Beginners 此视频教程共5.0小时&#xff0c;中英双语字幕&#xff0c;画质清晰无水印…

[附源码]Python计算机毕业设计Django面包连锁店管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

北京一互联网公司被端,所有开发被全部带走!

△Hollis, 一个对Coding有着独特追求的人△这是Hollis的第 407 篇原创分享作者 l Hollis来源 l Hollis&#xff08;ID&#xff1a;hollischuang&#xff09;近日&#xff0c;北京市朝阳公安分局对外公开&#xff0c;按照公安部“净网”专项行动整体部署&#xff0c;朝阳警方深入…

视觉SLAM十四讲ch4笔记——李群与李代数

文章目录视觉SLAM十四讲ch4——李群与李代数4.1 李群李代数基础4.2 指数映射和对数映射4.2.1 so(3)↔SO(3)so(3) \leftrightarrow SO(3)so(3)↔SO(3)4.2.2 se(3)↔SE(3)se(3) \leftrightarrow SE(3)se(3)↔SE(3)4.2.3 小总结&#xff1a;so(3)↔SO(3)so(3) \leftrightarrow SO(…

AOP工作流程

由于AOP是基于Spring容器管理的bean做的增强&#xff0c;所以整个工作过程需要从Spring加载bean说起: 流程1:Spring容器启动 容器启动就需要去加载bean,哪些类需要被加载呢? 需要被增强的类&#xff0c;如:BookServiceImpl 通知类&#xff0c;如:MyAdvice 注意此时bean对象还没…

【POJ No. 3468】 简单的整数问题 A Simple Problem with Integers

【POJ No. 3468】 简单的整数问题 A Simple Problem with Integers 北大OJ 题目地址 其实这道题之前也已经 做过了 https://blog.csdn.net/weixin_44226181/article/details/128112081 上次就 直接用的区间更新 和区间查询。这次 我们使用 分块方法实现一次。 【题意】 有N…

IDEA搭建Android开发环境及创建Helloword项目并运行

IDEA开发Android环境搭建 安装jdk JDK版本 &#xff1a;jdk-8u161-windows-x64.exe 链接&#xff1a;https://pan.baidu.com/s/1leC6nilGeCEYsD99Rlt5hQ 提取码&#xff1a;0epq 配置环境变量 配置成功会出现如下所示 安装sdk 安装完成后&#xff0c;SDK的目录如下&#…

数据分享|R语言分析上海空气质量指数数据:kmean聚类、层次聚类、时间序列分析:arima模型、指数平滑法...

全文链接&#xff1a;http://tecdat.cn/?p30131最近我们被客户要求撰写关于上海空气质量指数的研究报告。本文向大家介绍R语言对上海PM2.5等空气质量数据&#xff08;查看文末了解数据免费获取方式&#xff09;间的相关分析和预测分析&#xff0c;主要内容包括其使用实例&…

[附源码]计算机毕业设计学习互助辅助系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

菜谱APP源码和设计报告

《移动互联开发》 课程作业 学 院&#xff1a; 班 级&#xff1a; 学 号&#xff1a; 姓 名&#xff1a; 日 期&#xff1a; 设计要求&#xff08;提交文档时需删除&#xff09;: 1.本课程设计作为《Android 程序设计》的期末考查内容。 2.任务安排&#xff1a; &…

WAVE SUMMIT+2022飞桨平台新升级 全面支撑大模型研发与产业化

11月30日&#xff0c;由深度学习技术及应用国家工程研究中心主办的WAVE SUMMIT 2022深度学习开发者峰会如期举行。峰会上&#xff0c;百度AI技术生态总经理马艳军发布了飞桨深度学习平台的最新技术和生态进展&#xff0c;全新发布飞桨开源框架2.4版本&#xff0c;带来业界首个端…

在Linux中部署运维监控系统WGCLOUD

在公网IP为x.x.x.x&#xff0c;安装CentOS8或Alibaba Cloud Linux 3.2104 LTS 64位系统的服务器&#xff08;服务端&#xff09;上&#xff0c;先安装jdk8&#xff0c;然后安装数据库mariadb-10.5&#xff0c;最后进行server安装。 在需要监控的安装CentOS8或Alibaba Cloud L…

基于多时间尺度滚动优化的多能源微网双层调度研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【Redis】redis的理解与使用、springboot中redis的五种数据类型的相关存取、StringRedisTemplate

文章目录Redis简介&#xff1a;redis的安装与使用&#xff1a;1.启动方式&#xff1a;2.修改密码3. Redis可视化软件4.redis的使用5.有关redis的存储问题springBoot项目使用redis▶jar包&#xff1a;▶示例&#xff1a;1.使用opsForValue操作字符串2.使用opsForList操作List3.使…

智能使得宇宙趋向稳定吗?

——评《智能简史》 最近读完了加拿大工程院院士于非的新著《智能简史》&#xff0c;书中的主要观点是“智能的作用是推动宇宙趋向稳定”。从这个观点出发&#xff0c;万物都有智能&#xff0c;因为它们遵循的规律都具有这个作用。即使是人们认为“无智能”的物理对象&#xff…

vue纯手写思维导图,拒绝插件(cv即用)

vue纯手写思维导图&#xff0c;拒绝插件(cv即用) 已完成功能点&#xff1a;折叠、放大、缩小、移动 后续增加功能点&#xff1a;添加、删除 先看结果&#xff1a; 有这么个需求&#xff0c;按照层级关系&#xff0c;把表格放在思维导图上&#xff0c;我第一时间想到用插件&am…