课后作业

动手动脑:
形参个数算法名字相同,形参类型不同,返回值类型不同,用了方法重载。
课后作业:
import java.util.Random;
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Random random = new Random();
Scanner scanner = new Scanner(System.in);
String[] questions = new String[30];
int total = 0;
int wrong = 0;
while (total < 30) {
int a, b, c;
String d;
int result = 0;
String question;
boolean e;
do {
a = random.nextInt(100) + 1;
b = random.nextInt(100) + 1;
c = random.nextInt(4);
d = getOperator(c);
result = calculateResult(a, b, c);
question = a + " " + d + " " + b;
e = false;
for (int i = 0; i < total; i++) {
if (questions[i].equals(question)) {
e = true;
break;
}
}
} while (!isValid(a, b, c, result) || e);
questions[total] = question;
total++;
System.out.print(question + " = ");
int answer = scanner.nextInt();
if (!isCorrect(answer, result)) {
wrong++;
System.out.println("错误");
} else {
System.out.println("正确");
}
}
double accuracy = (double) (30-wrong) / 30 * 100;
System.out.println("错题数:" + wrong);
System.out.println("正确率:" + String.format("%.2f", accuracy) + "%");
scanner.close();
}
static String getOperator(int op) {
switch (op) {
case 0:
return "+";
case 1:
return "-";
case 2:
return "*";
case 3:
return "/";
default:
return "";
}
}
static int calculateResult(int a, int b, int op) {
switch (op) {
case 0:
return a + b;
case 1:
return a-b;
case 2:
return a * b;
case 3:
return a / b;
default:
return 0;
}
}
static boolean isValid(int a, int b, int op, int result) {
switch (op) {
case 1:
if (result < 0) return false;
break;
case 2:
if (result >= 1000) return false;
break;
case 3:
if (a % b != 0 || b == 0) return false;
break;
}
return true;
}
static boolean isCorrect(int answer, int result) {
return answer == result;
}
}

posted @ 2025-10-09 21:15  iuwdwai  阅读(8)  评论(0)    收藏  举报