Java 随机生成若干个位数的四则运算表达式,根据输入的答案统计做对的题目数量和做错的题目数量
时间: 2024-12-08 21:22:36 浏览: 21
在Java中,我们可以利用`Random`类生成随机数,并通过字符串拼接的方式构造出包含加减乘除的四则运算表达式。这里涉及到的主要步骤包括:
1. **随机数生成**:创建`Random`实例并设置范围,用于生成0-9之间的整数,表示每个数字的值。
2. **构建表达式**:随机选择运算符(+、-、*、/),然后随机选择两个操作数,并将它们连接起来形成一个完整的表达式。
3. **求解表达式**:可以使用`java.util.Scanner`接收用户输入的答案,然后通过`Math`类提供的函数计算表达式的正确结果。
4. **比较答案**:判断用户输入的答案是否与计算结果相等,如果相等,则做对一题;否则,做错一题。
5. **统计结果**:遍历所有题目,累加正确的和错误的数量。
下面是一个简单的示例代码片段:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
int numExpressions = 5; // 题目数量
Random random = new Random();
Scanner scanner = new Scanner(System.in);
int correctCount = 0;
int wrongCount = 0;
for (int i = 0; i < numExpressions; i++) {
String operator = "+";
int num1 = random.nextInt(10); // 0-9
int num2 = random.nextInt(10); // 另一个随机数
if (random.nextBoolean()) { // 随机选择是否换运算符
operator = random.choice(new String[]{"-", "*", "/"});
}
String expression = num1 + " " + operator + " " + num2;
System.out.println("第" + (i+1) + "题: " + expression);
double result = calculate(expression); // 计算正确答案
int userAnswer = scanner.nextDouble();
if (result == userAnswer) {
correctCount++;
System.out.println("答对了!");
} else {
wrongCount++;
System.out.println("错了,正确答案是:" + result);
}
}
System.out.println("\n你总共答对了 " + correctCount + " 道题目,做错了 " + wrongCount + " 道。");
}
// 计算表达式的值
private static double calculate(String expression) {
return Double.parseDouble(expression.replaceAll("\\s", ""));
}
}
```
阅读全文