Java, как запустить программу в цикле и вести учет

Я создал программу викторины, которая отслеживает результаты студентов. Что я пытаюсь сделать, так это то, что если ученик получил 100%, он получит сообщение, что его оценка равна 100%. Если счет меньше 100, программа должна перезапуститься и сохранить счетчик до 5 попыток в целом числе счетчика.

Как только счетчик достигнет целого числа 5 со счетом меньше 3, прервите программу и отобразите сообщение "Пройдите тест позже"

Что работает прямо сейчас: я могу отслеживать переменную "Score" int и ее работу, если вы получаете 100% или меньше 100%.

То, что я пытаюсь заставить работать: заставить переменную int "counter" работать так, чтобы сохранить количество попыток, чтобы пользователь получил до 5 попыток, и перезапустить всю консольную программу, сохраняя при этом счет в переменной "counter". например:

counter < 5 - try again 
     counter++
counter >= 5 - end the program.

Вот конец программы. Может быть, я должен как-то поместить его в метод и вспомнить его в моем публичном забеге, но я не смог этого сделать и вести учет результатов. У меня много циклов, поэтому было бы нереально написать всю программу в одном цикле.

Спасибо!

   public void run()
    {
        if (score >= 3) 
            {
            println("You have passed the exam with 100%");
            }   
                else if (counter<5) 
                {
                counter++;
                println("You're score is less than 100%.");
                println(" ");
                println("Try Again!");
                //restart the questions until you're out of 5 attempts
                } 
                    else if (counter==5)
                    {
                        println("You're out of your 5 attempts");
                    }
    }

2 ответа

Я думаю, вы хотите что-то подобное. Попробуйте - создайте класс и попробуйте этот код (это просто демонстрация. Вы можете увеличить количество вопросов и шаблон оценки в соответствии с вашим выбором. Впоследствии вам может потребоваться изменить код) -

public void display() {
    int counter = 1;
    List<String> list = new LinkedList<String>();
    int score = checkAnswers(list);
    if (score == 2) {
        System.out.println("Your score is 100% in 1st attempt");
    } else {
        while (counter <= 5) {
            counter++;
            int newScore=checkAnswers(list);
            if(newScore==2){
                System.out.println("Your score is 100% in "+counter+" attempts");
                break;
            }
            if(counter==5){
                System.out.println("You have finished your 5 attempts. Please take the quiz later.");
                break;
            }
        }
    }


}

public List<String> questions() {
    List<String> list = new LinkedList<String>();
    Scanner scan = new Scanner(System.in);
    System.out.println("type your 1st question ");
    list.add(scan.nextLine());
    System.out.println("type your 2nd question: ");
    list.add(scan.nextLine());


    return list;
}

public int checkAnswers(List<String> list) {
    int score = 0;
    list = questions();
    List<String> answerList = new LinkedList<String>();
    answerList.add("type answer of 1st question");
    answerList.add("type answer of 2nd question");
    for (int i = 0; i < list.size(); i++) {
        for (int j = 0; j < answerList.size(); j++) {
            if (list.get(i).equals(answerList.get(j))) {
                score++;
            }
        }
    }
    return score;
}

Теперь в другом классе объявите метод main, а внутри него просто создайте объект этого класса и вызовите только метод display(). Надеюсь это поможет!:)

Если вы пытаетесь добиться сохранения данных после завершения программы, то стандартным способом сделать это будет записать это в файл. Кажется, вы хотели бы отслеживать счет и счет каждого отдельного студента. Вы можете сохранить отдельный файл для каждого учащегося или сохранить все свои данные в одном большом файле. Полезные форматы файлов могут быть XML, JSON или YAML. Я никогда не использовал его, но вы также можете изучить API настроек Java.

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