当前位置: 首页 > news >正文

Android安卓实战项目(4)---提供给阿尔兹海默症患者的APP(源码在文末)

Android安卓实战项目(4)—提供给阿尔兹海默症患者的APP(源码在文末)

一.项目运行介绍

1.大致浏览

(1)开机界面

image-20230727113156940

(2)主界面

image-20230727113201516

(3)Read Instructions界面

image-20230727113207833

(4)Proceed for Test界面

image-20230727113211724

(5)Exercise your Memory界面

image-20230727113216593

image-20230727113223992

2.功能介绍

(1)功能一

开机动画

(2)功能二

主页面实现四个分页面的大体框架

(3)功能三

Read Instructions(阅读说明):给使用者一个使用说明

(4)功能四

Proceed for Test(测试):出一些简单的题目进行测试

(5)功能五

Exercise your Memory(记忆功能测试):

(6)功能六

只写了一个跳转网页的控件

二.具体实现

(1)功能一

开机动画

只是一个简单的跳转页面

Instructions.java
package com.example.alzheimersdetector;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;public class Instructions extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);getSupportActionBar().hide();this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);setContentView(R.layout.activity_instructions);}public void home(View view) {Intent homeIntent = new Intent(Instructions.this, Home.class);startActivity(homeIntent);}
}

(2)功能二

主页面实现四个分页面的大体框架

Home.java
package com.example.alzheimersdetector;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;public class Home extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);getSupportActionBar().hide();this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);setContentView(R.layout.activity_home);}public void inst(View view) {Intent i = new Intent(Home.this, Instructions.class);startActivity(i);}public void test(View view) {Intent i = new Intent(Home.this, Test.class);startActivity(i);}public void play(View view) {Intent i = new Intent(Home.this, Exercise.class);startActivity(i);}public void site(View view) {Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.alz.org/in/dementia-alzheimers-en.asp"));startActivity(i);}
}

(3)功能三

Read Instructions(阅读说明):给使用者一个使用说明

Test.java
package com.example.alzheimersdetector;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;public class Test extends AppCompatActivity {RadioButton rd1,rd2,rd3,rd4;RadioGroup rd;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);getSupportActionBar().hide();this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);setContentView(R.layout.activity_test);rd1 = findViewById(R.id.rd1);rd2 = findViewById(R.id.rd2);rd3 = findViewById(R.id.rd3);rd4 = findViewById(R.id.rd4);rd = findViewById(R.id.rd);rd1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(Test.this,"You`r Wrong!",Toast.LENGTH_SHORT).show();}});rd2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(Test.this,"You`r Wrong!",Toast.LENGTH_SHORT).show();}});rd3.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(Test.this,"Correct!",Toast.LENGTH_SHORT).show();}});rd4.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(Test.this,"You`r Wrong!",Toast.LENGTH_SHORT).show();}});}public void test2(View view) {Intent homeIntent = new Intent(Test.this, Test2.class);startActivity(homeIntent);}
}

(4)功能四

Proceed for Test(测试):出一些简单的题目进行测试

Test2.java
package com.example.alzheimersdetector;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;
import android.widget.TimePicker;public class Test2 extends AppCompatActivity {TextView result1;TimePicker timePickerclock;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);getSupportActionBar().hide();this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);setContentView(R.layout.activity_test2);result1 = findViewById(R.id.settime);timePickerclock = findViewById(R.id.tp1);timePickerclock.setIs24HourView(true);timePickerclock.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {@Overridepublic void onTimeChanged(TimePicker view, int i, int i1) {result1.setText("Time: " + i + ":" + i1);}});}public void test3(View view) {Intent homeIntent = new Intent(Test2.this, Test3.class);startActivity(homeIntent);}
}

(5)功能五

Exercise your Memory(记忆功能测试):

package com.example.alzheimersdetector;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;public class Test3 extends AppCompatActivity {RadioButton rdb1,rdb2;RadioGroup rdg1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);getSupportActionBar().hide();this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);setContentView(R.layout.activity_test3);rdg1 = findViewById(R.id.rdg1);rdb1 = findViewById(R.id.rdb1);rdb2 = findViewById(R.id.rdb2);rdb1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(Test3.this,"Correct!",Toast.LENGTH_SHORT).show();}});rdb2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(Test3.this,"You`r Wrong!",Toast.LENGTH_SHORT).show();}});}public void test4(View view) {Intent homeIntent = new Intent(Test3.this, Test4.class);startActivity(homeIntent);}
}

题目的话,另外写一个类

Exercise.java
package com.example.alzheimersdetector;import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.TextView;import java.util.Arrays;
import java.util.Collections;public class Exercise extends AppCompatActivity {TextView t1, t2;ImageView i1, i2, i3, i4, i5, i6, i7 ,i8, i9, i10, i11, i12;Integer[] cardsArray = {101, 102, 103, 104, 105, 106, 201, 202, 203, 204, 205, 206};int Aries, Taurus, Gemini, Cancer, Leo, Virgo, Libra, Scorpio, Sagittarius, Capricorn, Aquarius, Pisces;int firstCard, secondCard;int clickedFirst, clickedSecond;int cardNumber = 1;int turn = 1;int playerPoints = 0, cpuPoints = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);getSupportActionBar().hide();this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);setContentView(R.layout.activity_exercise);t1 = (TextView) findViewById(R.id.t1);t2 = (TextView) findViewById(R.id.t2);i1 = (ImageView) findViewById(R.id.i1);i2 = (ImageView) findViewById(R.id.i2);i3 = (ImageView) findViewById(R.id.i3);i4 = (ImageView) findViewById(R.id.i4);i5 = (ImageView) findViewById(R.id.i5);i6 = (ImageView) findViewById(R.id.i6);i7 = (ImageView) findViewById(R.id.i7);i8 = (ImageView) findViewById(R.id.i8);i9 = (ImageView) findViewById(R.id.i9);i10 = (ImageView) findViewById(R.id.i10);i11 = (ImageView) findViewById(R.id.i11);i12 = (ImageView) findViewById(R.id.i12);i1.setTag("0");i2.setTag("1");i3.setTag("2");i4.setTag("3");i5.setTag("4");i6.setTag("5");i7.setTag("6");i8.setTag("7");i9.setTag("8");i10.setTag("9");i11.setTag("10");i12.setTag("11");frontOfCardsResources();Collections.shuffle(Arrays.asList(cardsArray));//t2.setTextColor(Color.GRAY);i1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int theCard = Integer.parseInt((String) v.getTag());doStuff(i1, theCard);}});i2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int theCard = Integer.parseInt((String) v.getTag());doStuff(i2, theCard);}});i3.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int theCard = Integer.parseInt((String) v.getTag());doStuff(i3, theCard);}});i4.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int theCard = Integer.parseInt((String) v.getTag());doStuff(i4, theCard);}});i5.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int theCard = Integer.parseInt((String) v.getTag());doStuff(i5, theCard);}});i6.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int theCard = Integer.parseInt((String) v.getTag());doStuff(i6, theCard);}});i7.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int theCard = Integer.parseInt((String) v.getTag());doStuff(i7, theCard);}});i8.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int theCard = Integer.parseInt((String) v.getTag());doStuff(i8, theCard);}});i9.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int theCard = Integer.parseInt((String) v.getTag());doStuff(i9, theCard);}});i10.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int theCard = Integer.parseInt((String) v.getTag());doStuff(i10, theCard);}});i11.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int theCard = Integer.parseInt((String) v.getTag());doStuff(i11, theCard);}});i12.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int theCard = Integer.parseInt((String) v.getTag());doStuff(i12, theCard);}});}private void doStuff(ImageView iv, int card){if (cardsArray[card] == 101){iv.setImageResource(Aries);}else if (cardsArray[card] == 102){iv.setImageResource(Taurus);}else if (cardsArray[card] == 103){iv.setImageResource(Gemini);}else if (cardsArray[card] == 104){iv.setImageResource(Cancer);}else if (cardsArray[card] == 105){iv.setImageResource(Leo);}else if (cardsArray[card] == 106){iv.setImageResource(Virgo);}else if (cardsArray[card] == 201){iv.setImageResource(Libra);}else if (cardsArray[card] == 202){iv.setImageResource(Scorpio);}else if (cardsArray[card] == 203){iv.setImageResource(Sagittarius);}else if (cardsArray[card] == 204){iv.setImageResource(Capricorn);}else if (cardsArray[card] == 205){iv.setImageResource(Aquarius);}else if (cardsArray[card] == 206){iv.setImageResource(Pisces);}if (cardNumber == 1){firstCard = cardsArray[card];if (firstCard > 200){firstCard = firstCard - 100;}cardNumber = 2;clickedFirst = card;iv.setEnabled(false);}else if (cardNumber == 2){secondCard = cardsArray[card];if (secondCard > 200){secondCard = secondCard - 100;}cardNumber = 1;clickedSecond = card;i1.setEnabled(false);i2.setEnabled(false);i3.setEnabled(false);i4.setEnabled(false);i5.setEnabled(false);i6.setEnabled(false);i7.setEnabled(false);i8.setEnabled(false);i9.setEnabled(false);i10.setEnabled(false);i11.setEnabled(false);i12.setEnabled(false);Handler handler = new Handler();handler.postDelayed(new Runnable() {@Overridepublic void run() {calculate();}}, 1000);}}private void calculate(){if (firstCard == secondCard){if (clickedFirst == 0){i1.setVisibility(View.INVISIBLE);}else if (clickedFirst == 1){i2.setVisibility(View.INVISIBLE);}else if (clickedFirst == 2){i3.setVisibility(View.INVISIBLE);}else if (clickedFirst == 3){i4.setVisibility(View.INVISIBLE);}else if (clickedFirst == 4){i5.setVisibility(View.INVISIBLE);}else if (clickedFirst == 5){i6.setVisibility(View.INVISIBLE);}else if (clickedFirst == 6){i7.setVisibility(View.INVISIBLE);}else if (clickedFirst == 7){i8.setVisibility(View.INVISIBLE);}else if (clickedFirst == 8){i9.setVisibility(View.INVISIBLE);}else if (clickedFirst == 9){i10.setVisibility(View.INVISIBLE);}else if (clickedFirst == 10){i11.setVisibility(View.INVISIBLE);}else if (clickedFirst == 11){i12.setVisibility(View.INVISIBLE);}if (clickedSecond == 0){i1.setVisibility(View.INVISIBLE);}else if (clickedSecond == 1){i2.setVisibility(View.INVISIBLE);}else if (clickedSecond == 2){i3.setVisibility(View.INVISIBLE);}else if (clickedSecond == 3){i4.setVisibility(View.INVISIBLE);}else if (clickedSecond == 4){i5.setVisibility(View.INVISIBLE);}else if (clickedSecond == 5){i6.setVisibility(View.INVISIBLE);}else if (clickedSecond == 6){i7.setVisibility(View.INVISIBLE);}else if (clickedSecond == 7){i8.setVisibility(View.INVISIBLE);}else if (clickedSecond == 8){i9.setVisibility(View.INVISIBLE);}else if (clickedSecond == 9){i10.setVisibility(View.INVISIBLE);}else if (clickedSecond == 10){i11.setVisibility(View.INVISIBLE);}else if (clickedSecond == 11){i12.setVisibility(View.INVISIBLE);}/*if (turn == 1){playerPoints++;t1.setText("P1: " + playerPoints);}else if (turn == 2){cpuPoints++;t2.setText("P2: " + cpuPoints);}*/} else {i1.setImageResource(R.drawable.imageback);i2.setImageResource(R.drawable.imageback);i3.setImageResource(R.drawable.imageback);i4.setImageResource(R.drawable.imageback);i5.setImageResource(R.drawable.imageback);i6.setImageResource(R.drawable.imageback);i7.setImageResource(R.drawable.imageback);i8.setImageResource(R.drawable.imageback);i9.setImageResource(R.drawable.imageback);i10.setImageResource(R.drawable.imageback);i11.setImageResource(R.drawable.imageback);i12.setImageResource(R.drawable.imageback);/*if (turn == 1){turn = 2;t1.setTextColor(Color.GRAY);t2.setTextColor(Color.BLACK);}else if (turn == 2){turn = 1;t2.setTextColor(Color.GRAY);t1.setTextColor(Color.BLACK);}*/}i1.setEnabled(true);i2.setEnabled(true);i3.setEnabled(true);i4.setEnabled(true);i5.setEnabled(true);i6.setEnabled(true);i7.setEnabled(true);i8.setEnabled(true);i9.setEnabled(true);i10.setEnabled(true);i11.setEnabled(true);i12.setEnabled(true);checkEnd();}private void checkEnd(){if (i1.getVisibility() == View.INVISIBLE && i2.getVisibility() == View.INVISIBLE && i3.getVisibility() == View.INVISIBLE && i4.getVisibility() == View.INVISIBLE && i5.getVisibility() == View.INVISIBLE && i6.getVisibility() == View.INVISIBLE && i7.getVisibility() == View.INVISIBLE && i8.getVisibility() == View.INVISIBLE && i9.getVisibility() == View.INVISIBLE && i10.getVisibility() == View.INVISIBLE && i11.getVisibility() == View.INVISIBLE && i12.getVisibility() == View.INVISIBLE){AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(Exercise.this);alertDialogBuilder.setMessage("YOU PLAYED WELL !😃").setCancelable(false).setPositiveButton("PLAY AGAIN", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Intent i = new Intent(getApplicationContext(), Exercise.class);startActivity(i);finish();}}).setNegativeButton("EXIT", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {finish();}});AlertDialog alertDialog = alertDialogBuilder.create();alertDialog.show();}}private void frontOfCardsResources(){Aries = R.drawable.image101;Taurus = R.drawable.image102;Gemini = R.drawable.image103;Cancer = R.drawable.image104;Leo = R.drawable.image105;Virgo = R.drawable.image106;Libra = R.drawable.image201;Scorpio = R.drawable.image202;Sagittarius = R.drawable.image203;Capricorn = R.drawable.image204;Aquarius = R.drawable.image205;Pisces = R.drawable.image206;}
}

(6)功能六

只写了一个跳转网页的控件

Test4.java
package com.example.alzheimersdetector;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;public class Test4 extends AppCompatActivity {RadioButton rdc1,rdc2;RadioGroup rdg2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);getSupportActionBar().hide();this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);setContentView(R.layout.activity_test4);rdg2 = findViewById(R.id.rdg2);rdc1 = findViewById(R.id.rdc1);rdc2 = findViewById(R.id.rdc2);rdc1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(Test4.this,"Correct!",Toast.LENGTH_SHORT).show();}});rdc2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(Test4.this,"You`r Wrong!",Toast.LENGTH_SHORT).show();}});}
}

三.项目源码

记得点赞🙁!!!

链接:https://pan.baidu.com/s/1H25QMDI9PxmSi8sF00gXaA?pwd=jynl
提取码:jynl

相关文章:

Android安卓实战项目(4)---提供给阿尔兹海默症患者的APP(源码在文末)

Android安卓实战项目(4)—提供给阿尔兹海默症患者的APP(源码在文末) 一.项目运行介绍 1.大致浏览 (1)开机界面 (2)主界面 (3)Read Instructions界面 &…...

详解Mybatis之自动映射 自定义映射问题

编译软件:IntelliJ IDEA 2019.2.4 x64 操作系统:win10 x64 位 家庭版 Maven版本:apache-maven-3.6.3 Mybatis版本:3.5.6 文章目录 一、Mybatis中的自动映射是什么?二、Mybatis中的自定义映射是什么?三、为什…...

shiro的优点

shiro是一个强大的java安全框架,它的优点有以下: shiro就是权限管理:包括两部分:身份验证、授权 一、它提供了身份验证、授权、密码和会话管理等功能,可以满足各种应用程序的安全需求。 身份认证就是:验证是…...

使用分布式HTTP代理爬虫实现数据抓取与分析的案例研究

在当今信息爆炸的时代,数据已经成为企业决策和发展的核心资源。然而,要获取大规模的数据并进行有效的分析是一项艰巨的任务。为了解决这一难题,我们进行了一项案例研究,通过使用分布式HTTP代理爬虫,实现数据抓取与分析…...

Linux操作系统运维常用集合

目录 1、服务器磁盘查询、管理常见命令: 2、Centos系统挂载移动硬盘或U盘 3、Linux系统磁盘管理方式 4、Linux系统下挂载磁盘格式详解 1、服务器磁盘查询、管理常见命令: lsblk      查看分区和磁盘df -h   …...

UE4/5C++多线程插件制作(十四、MTPAbandonable)

目录 MTPAbandonable h实现 cpp实现 MTPMarco.h 首先是异步任务的宏定义部分:...

集装箱装卸作业相关的知识-Part1

1.角件 Corner Fitting of Container or called Corner Casting. there are eigth of it of one container. 国家标准|GB/T 1835-2006https://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcnoD35857F2200FA115CAA217A114F5EF12 中国的国标:GB/T 1835-2006《系列1集…...

BurpSuite超详细安装教程-功能概述-配置-使用教程---(附下载链接)

一、介绍 BurpSuite是渗透测试、漏洞挖掘以及Web应用程序测试的最佳工具之一,是一款用于攻击web 应用程序的集成攻击测试平台,可以进行抓包、重放、爆破,包含许多工具,能处理对应的HTTP消息、持久性、认证、代理、日志、警报。 二…...

不同局域网下使用Python自带HTTP服务进行文件共享「端口映射」

文章目录 1. 前言2. 视频教程3. 本地文件服务器搭建3.1 python的安装和设置3.2 cpolar的安装和注册 4. 本地文件服务器的发布4.1 Cpolar云端设置4.2 Cpolar本地设置 5. 公网访问测试6. 结语 1. 前言 数据共享作为和连接作为互联网的基础应用,不仅在商业和办公场景有…...

产业大数据应用:洞察企业全维数据,提升企业监、管、服水平

​在数字经济时代,数据已经成为重要的生产要素,数字化改革风生水起,在新一代科技革命、产业革命的背景下,产业大数据服务应运而生,为区域产业发展主导部门提供了企业洞察、监测、评估工具。能够助力区域全面了解企业经…...

【爬虫逆向案例】某名片网站 js 逆向 —— data解密

声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢! 【爬虫逆向案例】某名片网站js逆向—— data解密 1、前言2、步骤3、号外 1、前言 相信各位小伙伴在写爬虫的…...

RocketMq 事务消息原理

Rocketmq 事务消息API使用 使用TransactionMQProducer类。 实现TransactionListener 接口覆盖其方法executeLocalTransaction和checkLocalTransaction 即可。 其中executeLocalTransaction 执行本地方法和checkLocalTransaction 事务状态回查。 玩法 简历一张本地事务表&…...

day41-Verify Account Ui(短信验证码小格子输入效果)

50 天学习 50 个项目 - HTMLCSS and JavaScript day41-Verify Account Ui&#xff08;短信验证码小格子输入效果&#xff09; 效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name&qu…...

C. Maximum Set

Problem - 1796C - Codeforces 思路&#xff1a;这个题在做的时候基本的思路是对的&#xff0c;但是没有想到O(1)求答案&#xff0c;枚举的然后T了&#xff0c;我们能够知道&#xff0c;假设前面的数小&#xff0c;那么每个数一定是前面的倍数&#xff0c;所以至少乘以2&#x…...

基于springboot+vue学生宿舍报修公寓管理系统

我校日常管理活动中也大部分使用信息化&#xff0c;但学生宿舍的报修管理仍停留在手工办公阶段&#xff0c;使用纸张来记录。不仅对于维修人员和后勤管理人员来说无法提高工作效率&#xff0c;也不方便学生报修。本学生宿舍报修系统主要针对三类人员。第一类是学生用户模块&…...

缓存和数据库一致性问题分析

目录 1、数据不一致的原因 1.1 并发操作 1.2 非原子操作 1.3 数据库主从同步延迟 2、数据不一致的解决方案 2.1 并发操作 2.2 非原子操作 2.3 主从同步延迟 2.4 最终方案 3、不同场景下的特殊考虑 3.1 读多写少的场景 3.2 读少写多的场景 1、数据不一致的原因 导致…...

用Rust生成Ant-Design Table Columns | 京东云技术团队

经常开发表格&#xff0c;是不是已经被手写Ant-Design Table的Columns整烦了&#xff1f; 尤其是ToB项目&#xff0c;表格经常动不动就几十列。每次照着后端给的接口文档一个个配置&#xff0c;太头疼了&#xff0c;主要是有时还会粘错就尴尬了。 那有没有办法能自动生成colu…...

java.lang.ClassNotFoundException: sun.misc.BASE64Decoder

有一个新的应用服务&#xff0c;idea启动应用应用服务时&#xff0c;突然报错java.lang.ClassNotFoundException: sun.misc.BASE64Decoder &#xff0c;然后在网上搜索&#xff0c;说是建议使用apache包&#xff0c;该类新的JRE已经废弃&#xff0c;并从rt.jar包中移除。但是该…...

Unity进阶--对象池数据场景管理器笔记

文章目录 泛型单例类泛型单例类&#xff08;不带组件版&#xff09;对象池管理器数据管理器场景管理器 泛型单例类 using System.Collections; using System.Collections.Generic;public abstract class ManagersSingle<T> where T : new() {private static T instance;…...

【Seata】微服务集成seata

文章目录 1、Seata介绍2、Seata架构3、部署TC服务4、微服务集成seata 1、Seata介绍 Seata是 2019 年 1 月份蚂蚁金服和阿里巴巴共同开源的分布式事务解决方案。 官网http://seata.io/ 2、Seata架构 Seata事务管理有三个角色&#xff1a; TC (Transaction Coordinator) - 事务…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

Git常用命令完全指南:从入门到精通

Git常用命令完全指南&#xff1a;从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!

目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...