第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));

    }
}

posted @ 2014-04-18 12:41  Liping的个人博客  阅读(105)  评论(0)    收藏  举报