第9讲的一个问题
import java.util.*;
class Add {
// 成员变量也就是全局变量
int m, num;
int[] a;
int[] b;
int[] c;
int[] d;
// 成员变量也就是全局变量
Add(int n) {// 构造方法产生两个数组
this.m = n;
a = new int[m];
b = new int[m];
for (int i = 0; i < m; i++)
// 加数的数组随机数0到100
a[i] = (int) (Math.random() * 100);
for (int i = 0; i < m; i++)
// 被加数的数组随机数0到100
b[i] = (int) (Math.random() * 100);
}// 构造方法产生两个数组
void startTest() {// 开始进行计算测试的方法
int sun, he, i, j = 0, f = 0;
c = new int[m];
d = new int[m];
Scanner sc = new Scanner(System.in);
for (i = 0; i < m; i++) {
System.out.print(a[i] + " + " + b[i] + "=");// 输出计算的式子
sun = sc.nextInt();
he = a[i] + b[i];
// 。。。。。。。将数组中做错的题号保存到数组C中
if (he != sun) {
c[j] = i;
j++;
num++;
} // 。。。。。。。将数组中做错的题号保存到数组C中
// 。。。。。。。将数组中做错的答案保存到数组D中
if (he != sun) {
d[f] = sun;
f++;
} // 。。。。。。。将数组中做错的答案保存到数组D中
}
}
// 进行检查的方法,并输出做错的题,给出正确答案,返回做正确的题数
int check() {
System.out.println();
System.out.println("Checking ........");
if (num == 0) {
System.out.println("very good!");
} else {
for (int k = 0; k < num; k++) {
System.out.print(a[c[k]] + " + " + b[c[k]] + "=" + d[k]);// 输出错误的题
System.out.print(".....Wrong! Correct:");
System.out.println(a[c[k]] + " + " + b[c[k]] + "="+ (a[c[k]] + b[c[k]]));// 输出正确的题
}
}
return m - num;
} // 进行检查的方法,并输出做错的题,给出正确答案,返回做正确的题数
}
public class Testadd {
public static void main(String[] args) {
System.out.print("请输入你想进行计算测试的题数 number:");
Scanner sc = new Scanner(System.in);
int number=sc.nextInt();
Add c = new Add(number);
c.startTest();
System.out.println("Score: " + (100 * c.check() / number));
}
}

浙公网安备 33010602011771号