首页 » 软件开发 » 安卓APP源码和设计报告——智能垃圾桶(垃圾桶源码智能报告设计)

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

南宫静远 2024-07-25 01:39:24 0

扫一扫用手机浏览

文章目录 [+]

实验名称:

姓名/学号:

专业/班级:

安卓APP源码和设计报告——智能垃圾桶(垃圾桶源码智能报告设计) 软件开发
(图片来自网络侵删)

指导教师:

实验时间:

一、案例功能需求

该系统是了解垃圾分类以及物品查询属于哪类垃圾的智能化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 createpublic static final String TABLE_NAME = "mytable"; // name of table we want to createpublic static final int DATABASE_VERSION = 1; // version of our database it can be any no// column names we want in our tablepublic static final String UID = "_id" ; // primary key field of table(ist column)(_id)public static final String USERNAME = "Username" ; // 2nd column(Uname) of tablepublic static final String PASSWORD = "Password" ; // 3rd column (Password) of tablepublic 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@Overridepublic 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@Overridepublic 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;//下一小节是否需要零,第一次没有上一小节所以为falsewhile (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();}}

四、主要流程分析

登录、登录信息存储

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

图六 登录界面图

注册

图七 注册界面图

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

图八 平台主页图

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

拍照识别功能

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

标签:

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读3 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0