首页 > 其他分享 >10月25每日打卡

10月25每日打卡

时间:2023-10-25 20:36:46浏览次数:50  
标签:10 return String 25 int answer new 打卡 expression

下载

commons-csv-1.8.jar

网址:commons-csv-1.8.jar下载及Maven、Gradle引入代码,pom文件及包内class -时代Java (nowjava.com)

 

import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class MathExercisesCSV {

public static void main(String[] args) {
// 生成算式和保存到CSV文件
generateAndSaveExercises("math_exercises.csv", 20);

// 从CSV文件加载算式并使用
List<Exercise> loadedExercises = loadExercisesFromCSV("math_exercises.csv");
for (Exercise exercise : loadedExercises) {
System.out.println(exercise.getExpression() + " = " + exercise.getAnswer());
}
}

// 生成并保存习题到CSV文件
public static void generateAndSaveExercises(String fileName, int numExercises) {
List<Exercise> exercises = new ArrayList<>();
Random random = new Random();

for (int i = 0; i < numExercises; i++) {
int num1 = random.nextInt(10) + 1;
int num2 = random.nextInt(10) + 1;
char operator = randomOperator();
String expression = num1 + " " + operator + " " + num2;
int answer = calculateExpression(num1, num2, operator);

exercises.add(new Exercise(expression, answer));
}

try (PrintWriter writer = new PrintWriter(new File(fileName))) {
writer.println("Expression,Answer");

for (Exercise exercise : exercises) {
writer.println(exercise.getExpression() + "," + exercise.getAnswer());
}
System.out.println("习题已生成并保存到 " + fileName + " 文件。");
} catch (IOException e) {
e.printStackTrace();
}
}

// 随机选择算术操作符
private static char randomOperator() {
char[] operators = {'+', '-', '*', '/'};
return operators[new Random().nextInt(operators.length)];
}

// 计算数学表达式的结果
private static int calculateExpression(int num1, int num2, char operator) {
switch (operator) {
case '+':
return num1 + num2;
case '-':
return num1 - num2;
case '*':
return num1 * num2;
case '/':
return num1 / num2;
default:
throw new IllegalArgumentException("无效的运算符");
}
}

// 加载习题数据从CSV文件
public static List<Exercise> loadExercisesFromCSV(String fileName) {
List<Exercise> exercises = new ArrayList<>();
String line;

try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
// 读取标题行
reader.readLine();

while ((line = reader.readLine()) != null) {
String[] data = line.split(",");
if (data.length == 2) {
String expression = data[0];
int answer = Integer.parseInt(data[1]);
exercises.add(new Exercise(expression, answer));
}
}
} catch (IOException e) {
e.printStackTrace();
}

return exercises;
}
}

class Exercise {
private String expression;
private int answer;

public Exercise(String expression, int answer) {
this.expression = expression;
this.answer = answer;
}

public String getExpression() {
return expression;
}

public int getAnswer() {
return answer;
}
}

标签:10,return,String,25,int,answer,new,打卡,expression
From: https://www.cnblogs.com/yunbianshangdadun/p/17788042.html

相关文章

  • 2023.10.25——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.java断言,代码区域等明日计划:学习......
  • 10.25每日总结
    今天做了软考的题和大型数据库的作业在做作业过程中配置maven时发现spark安装有错误,没做做出了,明天继续做,并且做软考的题: ......
  • 《动手学深度学习 Pytorch版》 10.5 多头注意力
    多头注意力(multiheadattention):用独立学习得到的h组不同的线性投影(linearprojections)来变换查询、键和值,然后并行地送到注意力汇聚中。最后,将这h个注意力汇聚的输出拼接在一起,并且通过另一个可以学习的线性投影进行变换,以产生最终输出。对于h个注意力汇聚输出,每一个注意......
  • 10.25读书笔记-《掌握需求过程·》01
    今天读了《掌握需求过程·》这本书,理解了什么是需求,为什么要掌握需求,在开发软件时,身为一个程序员就要明白,开发软件的前前后后需要知道的东西,将尽可能多的可以预知的内容,做到心知肚明。目前的我们在开发软件的时候还是做的还是比较小的项目,偶尔也会遇到一些数据库设计出错导致,编写......
  • P6109 [Ynoi2009] rprmq1 题解-猫树+Segment Tree Beats
    20231025P6109[Ynoi2009]rprmq1题解-猫树+SegmentTreeBeats不愧是学长出的题。。。让我更深刻地理解了猫树。Statement传送门有一个\(n\timesn\)的矩阵\(a\),初始全是\(0\),有\(m\)次修改操作和\(q\)次查询操作,先进行所有修改操作,然后进行所有查询操作。一次修......
  • 76th 2023/10/10 Atcoder 10/8-ARC-T3
    这道题题目很有意思,看上去是很简单明显的计数,但一思考会发现要死很多重复状态因为标记的线很容易让人从一个方框开始思考起,所以很容易带入关于重复考虑的误区观察到线是斜着的,思考影响到的范围若涂上一个格子或左一个格子的右下,则该格子不能填涂左上观察到影响范围是一个个斜......
  • 75th 2023/10/6 k-D Tree
    附上一图:按维度分级,每次轮换用哪个维度即可oi中大多为2维这就是我对它的全部理解了结构与线段树几乎相同分左右结点时取当前区间段的中位数因而每一个节点都不同于线段树的表示范围它表示的是一个确确实实的节点的值访问前可以维护一个节点及它的子树的维度上下界以减少询......
  • 74th 2023/10/5 模拟赛总结56
    T1看完题目,看到n<=9的限制,心头一紧一个词汇浮现于心:BruceForces暴力+记忆化,\(O(能过)\)但赛时并没有这样打,而是选择了往DP方面思考因为真的没想到能过然后DP呢,又不清楚该如何存一列的状态就匆匆暴力后离去考虑状压DP保留有用状态关键点:\(k=\min(k,n-k)\)可以参考\(C^k......
  • 78th 2023 10/23 2023CSP-J/S游寄
    赛完了,静下心来思考进NOIP很简单,但是NOIP就没这么容易再往上升了首先当然是……游上午因为怕堵车,于是发车神速,6:55到了很多,最后一个人在7:07到了到考场很近,15min的路,不远上午是J,当娱乐赛,成绩真的炒鸡没用,就图一乐S赛才是重头戏调整好心态后,我早早来考场等,第一个进入,离考试开......
  • 77th 2023/10/18 网络流总结
    最大流我选择dinic算法总体思路就是先跑bfs分层,找出一条增广路并增广有一个大思路,就是反悔边,流一条边不一定是最优的,所以要建一条反向边,流过该边,将它的流量减少的同时,将它的反向边流量加大,这样就相当于给了一个流回去的机会,好理解吧就是如此,tot记得赋值为1,反向边为\(x\otimes1......