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

news2024/12/22 18:14:55

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 {

    @Override
    protected 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 {

    @Override
    protected 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;
    @Override
    protected 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() {
            @Override
            public void onClick(View v) {
                Toast.makeText(Test.this,"You`r Wrong!",Toast.LENGTH_SHORT).show();
            }
        });

        rd2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(Test.this,"You`r Wrong!",Toast.LENGTH_SHORT).show();
            }
        });

        rd3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(Test.this,"Correct!",Toast.LENGTH_SHORT).show();
            }
        });

        rd4.setOnClickListener(new View.OnClickListener() {
            @Override
            public 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;
    @Override
    protected 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() {
            @Override
            public 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;
    @Override
    protected 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() {
            @Override
            public void onClick(View v) {
                Toast.makeText(Test3.this,"Correct!",Toast.LENGTH_SHORT).show();
            }
        });

        rdb2.setOnClickListener(new View.OnClickListener() {
            @Override
            public 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;
    @Override
    protected 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() {
            @Override
            public void onClick(View v) {
                int theCard = Integer.parseInt((String) v.getTag());
                doStuff(i1, theCard);
            }
        });
        i2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int theCard = Integer.parseInt((String) v.getTag());
                doStuff(i2, theCard);
            }
        });
        i3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int theCard = Integer.parseInt((String) v.getTag());
                doStuff(i3, theCard);
            }
        });
        i4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int theCard = Integer.parseInt((String) v.getTag());
                doStuff(i4, theCard);
            }
        });
        i5.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int theCard = Integer.parseInt((String) v.getTag());
                doStuff(i5, theCard);
            }
        });
        i6.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int theCard = Integer.parseInt((String) v.getTag());
                doStuff(i6, theCard);
            }
        });
        i7.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int theCard = Integer.parseInt((String) v.getTag());
                doStuff(i7, theCard);
            }
        });
        i8.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int theCard = Integer.parseInt((String) v.getTag());
                doStuff(i8, theCard);
            }
        });
        i9.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int theCard = Integer.parseInt((String) v.getTag());
                doStuff(i9, theCard);
            }
        });
        i10.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int theCard = Integer.parseInt((String) v.getTag());
                doStuff(i10, theCard);
            }
        });
        i11.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int theCard = Integer.parseInt((String) v.getTag());
                doStuff(i11, theCard);
            }
        });
        i12.setOnClickListener(new View.OnClickListener() {
            @Override
            public 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() {
                @Override
                public 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() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Intent i = new Intent(getApplicationContext(), Exercise.class);
                    startActivity(i);
                    finish();
                }
            }).setNegativeButton("EXIT", new DialogInterface.OnClickListener() {
                @Override
                public 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;
    @Override
    protected 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() {
            @Override
            public void onClick(View v) {
                Toast.makeText(Test4.this,"Correct!",Toast.LENGTH_SHORT).show();
            }
        });

        rdc2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(Test4.this,"You`r Wrong!",Toast.LENGTH_SHORT).show();
            }
        });
    }
}

三.项目源码

记得点赞🙁!!!

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

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

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

相关文章

运维:Windows11操作系统安装VMware16.1.1图文教程(附下载)

目录 一、VMware 16.1.1 介绍 二、安装教程 三、下载地址 一、VMware 16.1.1 介绍 VMware 16.1.1 是一款功能非常强大虚拟化软件,它允许用户在一台计算机上创建和运行多个虚拟机(Virtual Machine)相当于拥有多台服务器。这些虚拟机可以模拟…

JUC高并发编程(二)——Synchronized关键字

文章目录 前言为什么要用Synchronized关键字 并发编程中的三个问题可见性原子性有序性 Synchronized保证三大特性使用synchronized保证可见性使用synchronized保证原子性用synchronized保证有序性 Synchronized的特征可重入特征不可中断特征 前言 synchronized 关键字&#xff…

Python爬虫时遇到SSL证书验证错误解决办法汇总

在进行Python爬虫任务时,遇到SSL证书验证错误是常见的问题之一。SSL证书验证是为了确保与服务器建立的连接是安全和可信的,但有时候可能会由于证书过期、不匹配或未受信任等原因导致验证失败。为了解决这个问题,本文将提供一些实用的解决办法…

提高业务效率:利用手机号在网状态 API 进行智能筛选

引言 随着科技的不断发展,手机已成为现代人生活中不可或缺的工具。人们通过手机完成通信、娱乐、购物等各种活动,使得手机号成为了一个重要的个人标识。对于企业而言,了解手机号的在网状态对于业务发展和客户管理至关重要。为了提高业务效率…

https和http有什么区别

https和http有什么区别 简要 区别如下: ​ https的端口是443.而http的端口是80,且二者连接方式不同;http传输时明文,而https是用ssl进行加密的,https的安全性更高;https是需要申请证书的,而h…

Linux常用命令——dpkg-statoverride命令

在线Linux命令查询工具 dpkg-statoverride Debian Linux中覆盖文件的所有权和模式 补充说明 dpkg-statoverride命令用于Debian Linux中覆盖文件的所有权和模式,让dpkg于包安装时使得文件所有权与模式失效。 语法 dpkg-statoverride(选项)选项 -add&#xff1…

深度:解密数据库的诗与远方!

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 不同于历史上的黄金和石油,数据成为了我们新的宝藏,一个驱动社会进步、催生创新的无尽源泉。然而,这些形式各异、复杂纷繁的数据需要一个管理者,一个保险库,一个解…

【动态规划part09】| 198.打家劫舍、213.打家劫舍II、337.打家劫舍III

🎈LeetCode198.打家劫舍 链接:198.打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷…

【数据结构】实验三:链表

实验三链表 一、实验目的与要求 1)熟悉链表的类型定义; 2)熟悉链表的基本操作; 3)灵活应用链表解决具体应用问题。 二、实验内容 1)请设计一个单链表的存储结构,并实现单链表中基本运算算…

基于ssm+mysql+jsp高校疫情防控出入信息管理系统

基于ssmmysqljsp高校疫情防控出入信息管理系统 一、系统介绍二、功能展示1.登陆2.教师管理3.学生管理4.打卡记录管理5.学生申请通行证6.通行证管理7.留言信息管理8.公告类型管理9.公告管理 四、获取源码 一、系统介绍 学生 : 个人中心、打卡记录管理、学生申请通行证、通行证管…

Java 8 Stream流:代码简洁之道

文章目录 前言一、filter二、map三、mapToInt、mapToLong、mapToDouble四、flatMap五、flatMapToInt、flatMapToLong、flatMapToDouble六、distinct七、sorted八、peek九、limit十、forEach十一、forEachOrdered十二、toArray十三、reduce十四、collect十五、min、max十六、cou…

mysql(二) 索引-基础知识

继续整理复习、我以我的理解和认知来整理 "索引" 会通过 文 和 图 来展示。 文: 基本概念知识(mysql 的索引分类、实现原理) 图: 画B树等 MySQL官方对索引的定义是:索引(Index)是帮…

记录--虚拟 DOM 和实际 DOM 有何不同?

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 本文我们会先聊聊 DOM 的一些缺陷,然后在此基础上介绍虚拟 DOM 是如何解决这些缺陷的,最后再站在双缓存和 MVC 的视角来聊聊虚拟 DOM。理解了这些会让你对目前的前端框架有…

第四章 HL7 架构和可用工具 - 查看数据结构

文章目录 第四章 HL7 架构和可用工具 - 查看数据结构查看数据结构查看代码表使用自定义架构编辑器 第四章 HL7 架构和可用工具 - 查看数据结构 查看数据结构 当单击“数据结构”列中的名称时,InterSystems 会显示该数据结构中的所有字段。这是 HL7 数据结构页面。…

影视行业案例 | 燕千云助力大地影院集团搭建智能一体化IT服务管理平台

影视行业过去三年受新冠肺炎疫情影响,经历了一定程度的冲击和调整,但也展现出了强大的韧性和潜力。2023年中国影视产业规模可能达到2600亿元左右,同比增长11%左右。影视行业的发展趋势主要表现在内容创新、模式创新和产业融合三个方面&#x…

第八章:将自下而上、自上而下和平滑性线索结合起来进行弱监督图像分割

0.摘要 本文解决了弱监督语义图像分割的问题。我们的目标是在仅给出与训练图像关联的图像级别对象标签的情况下,为新图像中的每个像素标记类别。我们的问题陈述与常见的语义分割有所不同,常规的语义分割假设在训练中可用像素级注释。我们提出了一种新颖的…

PSP - MMseqs2 编译最新版本源码 (14-7e284) 支持 MPI 功能 MSA 快速搜索

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/131966061 MPI (Message Passing Interface) 是用于并行计算的标准化和可移植的消息传递接口,可以在分布式内存的多台计算机上运行并行…

操作系统、人工智能、芯片和其它

最近出差一段时间,听到一些事,看到一些事,说点个人观感。有些话可能不好听,还希望不要被平台和谐。   从一位现在微软工作的前同事处得来的消息,微软下一代操作系统Windows 12将深度集成AI,如果再加上的它…

彻底搞懂CPU的特权等级

x86 处理器中,提供了4个特权级别:0,1,2,3。数字越小,特权级别越高! 一般来说,操作系统是的重要性、可靠性是最高的,需要运行在 0 特权级; 应用程序工作在最上层,来源广泛、可靠性最低,工作在 3 特权级别。 中间的1 和 2 两个特权级别,一般很少使用。 理论上来讲,…

redis到底几个线程?

通常我们说redis是单线程指的是从接收客户端请求->解析请求->读写->响应客户端这整个过程是由一个线程来完成的。这并不意味着redis在任何场景、任何版本下都只有一个线程 为何用单线程处理数据读写? 内存数据储存已经很快了 redis相比于mysql等数据库是…