Выполнение итогов для работы на всех уроках в Java?

В настоящее время я пишу программу, которая включает в себя тест. Когда пользователь нажимает кнопку "Отправить", он либо печатает правильно, либо неправильно, а затем переходит в другой класс. Так же как и это, я хочу, если ответ правильный, чтобы добавить 1 к переменной.

Я не могу понять, как это сделать в разных классах, поскольку необходимо добавить 1 или 0 для всех вопросов, которые сохранены в разных классах, но в одном и том же проекте.

4 ответа

Есть ли причина, по которой каждый вопрос - это отдельный класс? Кажется, что вы могли бы иметь один класс 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;
    }
}

Тогда у вас может быть класс Test с методом main.

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++;
            }
        }
    }
}

Делает ли это что-то, что вы хотите?

Этот счетчик не имеет контекста в каждом из отдельных классов. Он имеет контекст только в том коде, который вы управляете этими тестами, которые вы выполняете. Итак, в этом классе менеджера у вас есть одна переменная, которую вы увеличиваете каждый раз, когда тест завершается, и вы обнаруживаете, что она правильная.

Вы хотите другой класс с открытым финальным статическим классом и переменной.

Что-то вроде этого:

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

Вы можете также получить добытчика.

Независимо от того, в каком классе есть ссылка на вопросы, они должны проходить через них и суммировать правильные вопросы. Если ваши вопросы не наследуются от того же класса, создайте интерфейс с именем Question, у которого есть метод isAnswerRight(), который вы можете вызвать, или что-то подобное.

Другие вопросы по тегам