Вопросы массив в файл - PullRequest
       1

Вопросы массив в файл

0 голосов
/ 29 ноября 2018

Я создал программу, которая задает пользователю 10 случайных вопросов с множественным выбором.Я также создал класс вопросов, который входит в мой основной метод.У меня есть массив для моих 10 вопросов с несколькими вариантами ответов, и мне нужно взять эти вопросы и сохранить их в текстовом файле.Файл должен быть отформатирован следующим образом: Текст вопроса Вариант ответа A Вариант ответа B Вариант ответа C Вариант ответа C Вариант ответа D Правильный ответ

Мой класс вопросов имеет конструктор, который, как предполагается, соответствует текстовому файлу, который мне нужно создать.

Я не уверен, как начать это, и надеюсь получить некоторые идеи, которые могут мне помочь.

Пример моего кода:

//Set question and answers.
            questions[0] = new P3A2_Harvey_4251833_Question("JVM stands for what?", "D");
            questions[0].setChoice("A. Java Variable Machine");
            questions[0].setChoice("B. Java Variable Method");
            questions[0].setChoice("C. Java Virtual Method");
            questions[0].setChoice("D. Java Virtual Machine");
            questions[1] = new P3A2_Harvey_4251833_Question("Every complete programming statement ends with what?", "A");
            questions[1].setChoice("A. Semicolon");
            questions[1].setChoice("B. Period");
            questions[1].setChoice("C. Colon");
            questions[1].setChoice("D. Question Mark");
            questions[2] = new P3A2_Harvey_4251833_Question("This type of expression can be either true or false", "C");
            questions[2].setChoice("A. Null Expression");
            questions[2].setChoice("B. Binary Expression");
            questions[2].setChoice("C. Boolean Expression");
            questions[2].setChoice("D. Method Expressions");
            for(int i = 0; i<questions.length;i++)
            {
                //Randomizing the questions in the array. 
                int n = rand.nextInt(3);
                System.out.print("Question " + (n+1)+":");
                System.out.println(questions[n].getQuestion());
                System.out.println(questions[n].getChoice());
                System.out.print("Enter your answer: "); 
                userInput = keyboard.nextLine();
                //Asking for users input reference to the question. 
                while(!userInput.equals("A")&&!userInput.equals("B")&&!userInput.equals("C")&&!userInput.equals("D"))
                {
                    System.out.println("invalid response");
                    System.out.print("Enter your answer: ");
                    userInput = keyboard.nextLine();

1 Ответ

0 голосов
/ 29 ноября 2018

Я думаю, вы очень близки к вашему решению.Вот предложение.

Поскольку вы успешно создали класс Question, вы можете написать дополнительный метод для этого класса , который будет отвечать за запись содержимого вопроса в заданный класс.файл.Что-то в этом роде:

public class Question {
    //...

    public void write (PrintWriter out) {
        //TODO write your desired output
        out.println("This line will be written to whatever is given as parameter");
    }
}

Тогда в своей основной, вы можете создать файл и записать в него каждый вопрос.Например, если у вас есть один вопрос q, он будет записан в файл с именем filename.txt:

Question q = new Question(...);

PrintWriter writer = new PrintWriter("filename.txt");

q.write(writer); //Give the PrintWriter to the write method of Question class

writer.close();

Я думаю, вы можете самостоятельно выяснить, как действовать дальше ;-).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...