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

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣&#xff08;LeetCode&#xff09; ​遍历字符串​&#xff1a;通过外层循环逐一检查每个字符。​遇到 ? 时处理​&#xff1a; 内层循环遍历小写字母&#xff08;a 到 z&#xff09;。对每个字母检查是否满足&#xff1a; ​与…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...