当前位置: 首页 > 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) - 事务…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…...