Выполнение итогов для работы на всех уроках в 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(), который вы можете вызвать, или что-то подобное.