Explore BrainMass
Share

Explore BrainMass

    Java Question, ChoiceQuestion and QuestionDemo classes

    This content was COPIED from BrainMass.com - View the original, and get the already-completed solution here!

    Add a method addText to the Question class, and provide a different implementation of ChoiceQuestion that calls addText rather than storing an array list of choices.

    Here is a sample program run:

    Who was the inventor of Java?
    Your answer:
    James Gosling
    true
    In which country was the inventor of Java born?
    1: Australia
    2: Canada
    3: Denmark
    4: United States
    Your answer:
    2
    true

    Use the following class as your main class:

    import java.util.Scanner;

    public class QuestionDemo
    {
    public static void main(String[] args)
    {
    Question[] quiz = new Question[2];

    quiz[0] = new Question("Who was the inventor of Java?");
    quiz[0].setAnswer("James Gosling");

    ChoiceQuestion question = new ChoiceQuestion(
    "In which country was the inventor of Java born?");
    question.addChoice("Australia", false);
    question.addChoice("Canada", true);
    question.addChoice("Denmark", false);
    question.addChoice("United States", false);
    quiz[1] = question;

    Scanner in = new Scanner(System.in);
    for (Question q : quiz)
    {
    q.display();
    System.out.println("Your answer: ");
    String response = in.nextLine();
    System.out.println(q.checkAnswer(response));
    }
    }
    }

    Complete the following classes in your solution:

    /**
    A question with multiple choices.
    */
    public class ChoiceQuestion extends Question
    {
    // Add any needed instance variables, but don't store the choices
    // The choices should be added to the text of the superclass

    /**
    Constructs a choice question with a given text and no choices.
    @param questionText the text of this question
    */
    public ChoiceQuestion(String questionText)
    {
    ...
    }

    /**
    Adds an answer choice to this question.
    @param choice the choice to add
    @param correct true if this is the correct choice, false otherwise
    */
    public void addChoice(String choice, boolean correct)
    {
    ...
    }
    }

    /**
    A question with a text and an answer.
    */
    public class Question
    {
    private String text;
    private String answer;

    /**
    Constructs a question with a given text and an empty answer.
    @param questionText the text of this question
    */
    public Question(String questionText)
    {
    text = questionText;
    answer = "";
    }

    /**
    Sets the answer for this question.
    @param correctResponse the answer
    */
    public void setAnswer(String correctResponse)
    {
    answer = correctResponse;
    }

    /**
    Checks a given response for correctness.
    @param response the response to check
    @return true if the response was correct, false otherwise
    */
    public boolean checkAnswer(String response)
    {
    return response.equals(answer);
    }

    /**
    Add a line of text to the question text.
    */
    public void addLine(String line)
    {
    ...
    }

    /**
    Displays this question.
    */
    public void display()
    {
    System.out.println(text);
    }
    }

    © BrainMass Inc. brainmass.com April 3, 2020, 10:55 pm ad1c9bdddf
    https://brainmass.com/computer-science/arrays/470530

    Solution Preview

    Please find attached files: QuestionDemo.java, ChoiceQuestion.java and Question.java.

    Content of ChoiceQuestion.java is pasted below.

    /**
    A question with multiple choices.
    */
    public class ChoiceQuestion extends Question
    {
    // Indicates the number that should be associated with next choice.
    int ...

    Solution Summary

    Reasonable comments are inserted to explain the inserted (new) code.

    $2.19

    ADVERTISEMENT