首页 > 其他分享 >5.21

5.21

时间:2024-06-11 09:26:27浏览次数:16  
标签:get fen List lastTenDaysFen int 5.21 import

继续与小组成员讨论如何完善每日心情的记录并且统计出来,根据不同的统计内容进行分析

代码行量:166行

学习所花时间:0.5h

 

 

package com.example.memosystem.activity;

import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

import com.example.memosystem.R;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class qingxuquxian extends AppCompatActivity {

private ListView listViewData;
private TextView textViewStatistics;
private TextView textViewRecentScores;
private List<String> dataList = new ArrayList<>();
private ArrayAdapter<String> adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_qingxuquxian);

listViewData = findViewById(R.id.listViewData);
textViewStatistics = findViewById(R.id.textViewStatistics);
textViewRecentScores = findViewById(R.id.textViewRecentScores);

// 设置适配器
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dataList);
listViewData.setAdapter(adapter);

// 异步获取数据
new FetchDataTask().execute();
}

private class FetchDataTask extends AsyncTask<Void, Void, List<String>> {

@Override
protected List<String> doInBackground(Void... voids) {
String url = "jdbc:mysql://10.99.118.55:3306/xinli";
String user = "root";
String password = "root";

List<String> tempDataList = new ArrayList<>();
List<Integer> recentFen = new ArrayList<>();
List<String> dates = new ArrayList<>();

try (Connection connection = DriverManager.getConnection(url, user, password)) {
String query = "SELECT date, fen FROM meiri";
PreparedStatement preparedStatement = connection.prepareStatement(query);
ResultSet resultSet = preparedStatement.executeQuery();

while (resultSet.next()) {
String date = resultSet.getString("date");
int fen = resultSet.getInt("fen");
tempDataList.add("日期: " + date + ", 分数: " + fen);

recentFen.add(fen);
dates.add(date);
}

// 取最近10天的情绪分数
int startIndex = Math.max(0, recentFen.size() - 10);
List<Integer> lastTenDaysFen = recentFen.subList(startIndex, recentFen.size());
List<String> lastTenDaysDates = dates.subList(startIndex, dates.size());

// 判断情绪是否稳定
if (isStable(lastTenDaysFen)) {
tempDataList.add("最近情绪状态显示出显著的稳定性,分数波动范围极小。这种持续的情绪平稳状态反映了良好的情绪调节能力,能够有效应对日常压力和情感波动,保持内在的情绪平衡。");
} else {
tempDataList.add("最近情绪波动较大,缺乏稳定性,可能反映了情绪调节能力的不足。此种情况下,情绪可能受到外界刺激较大程度的影响,导致情绪波动频繁且剧烈,难以保持稳定的心理状态。情绪调节能力不足可能会影响个体的日常生活和工作效率,需要加强情绪调节训练以提高情绪稳定性。");
}

// 统计每个分数出现的天数
Map<Integer, Integer> fenCountMap = new HashMap<>();
for (int fen : lastTenDaysFen) {
fenCountMap.put(fen, fenCountMap.getOrDefault(fen, 0) + 1);
}

// 查找起伏较大的两天
List<Integer> changes = new ArrayList<>();
for (int i = 1; i < lastTenDaysFen.size(); i++) {
changes.add(Math.abs(lastTenDaysFen.get(i) - lastTenDaysFen.get(i - 1)));
}

int maxChangeIndex1 = changes.indexOf(Collections.max(changes));
int maxChangeIndex2 = maxChangeIndex1 == 0 ? 1 : 0;
for (int i = 0; i < changes.size(); i++) {
if (i != maxChangeIndex1 && changes.get(i) > changes.get(maxChangeIndex2)) {
maxChangeIndex2 = i;
}
}

String statistics = "最近10天每个分数出现的天数:\n";
for (Map.Entry<Integer, Integer> entry : fenCountMap.entrySet()) {
statistics += "分数 " + entry.getKey() + ": " + entry.getValue() + " 天\n";
}

statistics += "\n起伏较大的两天:\n";
statistics += lastTenDaysDates.get(maxChangeIndex1) + " 和 " + lastTenDaysDates.get(maxChangeIndex1 + 1) + "\n";
statistics += lastTenDaysDates.get(maxChangeIndex2) + " 和 " + lastTenDaysDates.get(maxChangeIndex2 + 1);

// 更新TextView用于显示最近10天的分数
StringBuilder recentScores = new StringBuilder("最近10天的分数:\n");
for (int i = 0; i < lastTenDaysDates.size(); i++) {
recentScores.append(lastTenDaysDates.get(i)).append(": ").append(lastTenDaysFen.get(i)).append("\n");
}

// Update the TextViews with the statistics and recent scores
final String finalStatistics = statistics;
final String finalRecentScores = recentScores.toString();
runOnUiThread(() -> {
textViewStatistics.setText(finalStatistics);
textViewRecentScores.setText(finalRecentScores);
});

} catch (SQLException e) {
e.printStackTrace();
tempDataList.add("获取数据时出错");
}

return tempDataList;
}

@Override
protected void onPostExecute(List<String> result) {
dataList.clear();
dataList.addAll(result);
adapter.notifyDataSetChanged();
}

private boolean isStable(List<Integer> recentFen) {
if (recentFen.isEmpty()) {
return false;
}

int startIndex = Math.max(0, recentFen.size() - 10);
List<Integer> lastTenDaysFen = recentFen.subList(startIndex, recentFen.size());

double sum = 0;
for (int fen : lastTenDaysFen) {
sum += fen;
}
double average = sum / lastTenDaysFen.size();
double variance = 0;
for (int fen : lastTenDaysFen) {
variance += Math.pow(fen - average, 2);
}
double standardDeviation = Math.sqrt(variance / lastTenDaysFen.size());

return standardDeviation <= 1;
}
}
}

标签:get,fen,List,lastTenDaysFen,int,5.21,import
From: https://www.cnblogs.com/zljzy/p/18241492

相关文章

  • 5.21
    地铁查询系统项目1.引言地铁查询系统旨在提供用户方便快捷的地铁线路查询服务,帮助用户准确地规划出行路线,节省时间和精力。2.功能需求2.1路线查询-用户可以输入起点站和终点站,系统将返回最佳的地铁路线,并显示换乘信息和预计耗时。-系统支持最短路线和最少换乘两种查询模......
  • 2024.5.21(周二)
    function[x,val,k]=frcg(fun,gfun,x0)%功能:用共轭梯度法求无约束问题minif(x)%输入:fun,gfun分别是目标函数和梯度,x0是初始点%输出:x,val分别是近似最优点和最优值,k表示迭代次数k=0;maxk=5000;rho=0.6;sigma=0.4;e=1e-6;%精度n=length(x0);while(k<maxk)g=feval(gfun......
  • 5.20 && 5.21
    最近相当有写闲话的想法,不过每次都想把这题调完就写然后这题就调不完了(放假家长不来,我也懒得回去,所以就自己在衡水待着拿到手机发现崩铁和9都要更新,所以就开的原发现不用更新的代价是啥也没有只能把地图探索和深渊打了打nainai滴又只打了6星,手机玩甘雨体验极差我妈还......
  • 5.20 && 5.21
    最近相当有写闲话的想法,不过每次都想把这题调完就写然后这题就调不完了(放假家长不来,我也懒得回去,所以就自己在衡水待着拿到手机发现崩铁和9都要更新,所以就开的原发现不用更新的代价是啥也没有只能把地图探索和深渊打了打nainai滴又只打了6星,手机玩甘雨体验极差我妈还......
  • 5.20 && 5.21
    最近相当有写闲话的想法,不过每次都想把这题调完就写然后这题就调不完了(放假家长不来,我也懒得回去,所以就自己在衡水待着拿到手机发现崩铁和9都要更新,所以就开的原发现不用更新的代价是啥也没有只能把地图探索和深渊打了打nainai滴又只打了6星,手机玩甘雨体验极差我妈还......
  • 5.20 && 5.21
    最近相当有写闲话的想法,不过每次都想把这题调完就写然后这题就调不完了(放假家长不来,我也懒得回去,所以就自己在衡水待着拿到手机发现崩铁和9都要更新,所以就开的原发现不用更新的代价是啥也没有只能把地图探索和深渊打了打nainai滴又只打了6星,手机玩甘雨体验极差我妈还......
  • 5.21
    想起来昨天要说什么了。原来是期待很久的《庆余年》第二季开播了,在百度热搜上看到了,好像今天已经播到了第三天,挺期待的,毕竟是极少数完整追完的电视剧(好像明天就要切断电话线,唐氏学校怎么想的?......
  • 闲话 5.21 四川高联预赛的压轴
    求满足下列条件数列个数:长度为\(n\)\(\foralli\in[1,n]\quada_i\not=0\)\(a_1=1\)\(\forallk\in[1,n-1]\quad(a_{k+1}-a_k-1)(a_{k+1}+a_k)=0\)显然就是不能有\(0\)最为重要。义......
  • 5.21
    这个过程是从探讨如何实时管理数据开始的。我们在大学做科研项目的时候,做的是实时系统的研究,旨在加速实时收集数据的利用,力求消除从数据采集到最终计算过程中繁琐的中间处理环节。我们当时尝试将实时数据访问与加速数据至消费端的流程结合起来,并且保留查询数据的能力。随后,我们意......
  • 5.21结组任务
    今天改进跌倒检测模块的main部分,使其可以通过摄像头实时监测importtimefromcollectionsimportdequeimportrequestsimportcv2importnumpyasnpimportmediapipeasmpfromstgcn.stgcnimportSTGCNfromPILimportImage,ImageDraw,ImageFontmp_drawing=mp......