软件构造,口算题卡
package web;
import java.util.Random;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int numCorrect = 0;
System.out.println("欢迎来到口算题卡系统");
System.out.println("请输入生成题目数量!");
int numQuestions = scanner.nextInt();
System.out.println("请输入生成题目数量数字范围!");
int range= scanner.nextInt();
System.out.println("下面开始作答。");
String a = "";
int flag=0;
for (int i = 0; i < numQuestions; i++) {
String question = generateQuestion(range);
System.out.print("问题 " + (i + 1) + ": " + question + " = ");
int userAnswer = scanner.nextInt();
int correctAnswer = evaluateQuestion(question);
if (userAnswer == correctAnswer) {
System.out.println("回答正确!");
numCorrect++;
} else {
System.out.println("回答错误。正确答案是 " + correctAnswer);
i=i+1;
String ii=String.valueOf(i);
if(flag==0){
a=a.concat(ii);
}
else{
a=a+","+ii;
}
flag++;
}
}
System.out.println("测验结束!");
System.out.println("本次共回答正确了 " + numCorrect + " 题,回答错误了 " + (numQuestions - numCorrect) + " 题。");
System.out.println("以下为错题:");
System.out.println(a+"。请再次作答!");
}
// 生成随机的加减乘除法问题
public static String generateQuestion(int range) {
Random random = new Random();
int num1 = random.nextInt(range) + 1;
int num2 = random.nextInt(range) + 1;
int operator = random.nextInt(4); // 0: +, 1: -, 2: *, 3: /
char operatorChar;
switch (operator) {
case 0:
operatorChar = '+';
break;
case 1:
operatorChar = '-';
break;
case 2:
operatorChar = '*';
break;
default:
operatorChar = '/';
break;
}
return num1 + " " + operatorChar + " " + num2;
}
// 计算问题的正确答案
public static int evaluateQuestion(String question) {
String[] parts = question.split(" ");
int num1 = Integer.parseInt(parts[0]);
char operator = parts[1].charAt(0);
int num2 = Integer.parseInt(parts[2]);
int result = 0;
switch (operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
}
return result;
}
}


浙公网安备 33010602011771号