0

我目前正在编写一个包含测试的程序。当用户单击提交时,它要么打印出正确的要么不正确的,然后转到不同的类。除了这样做之外,如果答案正确,我还想将 1 添加到变量中。

我无法解决的是如何在不同的类中执行此操作,因为需要为保存在不同类但在同一个项目中的所有问题添加 1 或 0。

4

4 回答 4

1

每个问题都是一个单独的类,有什么理由吗?似乎您可以有一个包含实例变量的 Question 类,例如

public class Question{
    private String text; //the question itself
    private String[] choices; //the choices if this is a multiple-choice question
    private int answer; //the index in choices that is the correct answer

    //constructor, accessors, mutators

    public String toString(){
        String retval = this.text+"\n";
        for(int x=0;x<choices.length;x++){
            char c = 'a'+x; //this will give characters going alphabetically from 'a'
            retval+=c+") "+choices[x]+"\n";
        }
        return retval;
    }
}

然后你可以有一个带有 main 方法的 Test 类。

public class Test{

    public static void main(String args[]){
        Question[] questions = {
            new Question("What is 1+1?", new String[]{"2", "3", "4"}, 0),
            //other questions here
        }

        int total=0;
        Scanner input = new Scanner(System.in);

        for(Question q: questions){
            System.out.println(q.toString());
            int ans = input.nextLine().charAt(0)-'a';
            if(q.getAnswer()==ans){
                total++;
            }
        }
    }
}

这种做你想要的吗?

于 2011-03-16T15:24:47.910 回答
0

任何课程都引用了这些问题,都应该遍历它们并总结出正确的问题。如果您的问题不是从同一个类继承的,请创建一个名为 Question 的接口,该接口具有您可以调用的 isAnswerRight() 方法或类似的方法。

于 2011-03-16T15:10:58.120 回答
0

您想要一个具有公共最终静态类和变量的不同类。

像这样的东西:

public class Counter {
    private static int count=0;
    public static int add() {
        return count++;
    }
}

您可能还需要一个吸气剂。

于 2011-03-16T15:10:44.173 回答
0

此计数器在每个单独的类中没有上下文。它仅在您管理正在运行的这些测试的代码中具有上下文。因此,在这个管理器类中,您有一个变量,每次测试完成时您都会增加一个变量,并且您检测到它是正确的。

于 2011-03-16T15:09:38.127 回答