Question: Part I: [10 Marks] Modify the Question class In this lab you are going to implement the inheritance hierarchy shown below. Youve already done QuizMaker

Part I: [10 Marks] Modify the Question class

In this lab you are going to implement the inheritance hierarchy shown below. Youve already done QuizMaker and Question.

Part I: [10 Marks] Modify the Question class In this lab you

Modify your Question class to have a String displayQuestion() method which returns a string containing the question and difficulty of the question. Modify QuizManager to use this displayQuestion method when displaying a question to the user in giveQuiz. Only modify the previous files when directed to do so, unless there are errors to fix

Part II: [15 marks] The FillInQuestion subclass

Create a class called FillInQuestion that extends Question. This kind of question is created using a single string that contains the answer, surrounded by _- -_. A sample question like this would be The color _-white-_ is the most common color found on flags. The question should be displayed to the user as The color _____ is the most common color found on flags.

The first line of the constructor must be a call to Questions constructor using super. But you need to process the String before calling super. Do the following

Write two private static methods String parseQ(String) and String parseA(String) These take the constructors parameter and return the computed question/answer as specified above o So parseQ(The sky is _-blue-_) might return The sky is _________ o The __________ should be reasonably long.

Now your constructor might look like public FillInQuestion(String sentence, Diffenum diff) { super(parseQ(sentence), parseA(sentence), diff) on the first line.

If FillInQuestions parameter String does not contain _- and -_ and not in the correct order, throw an IllegalArgumentException. (You can throw this in the parseQ method)

Override Questions copy method. It still must return Question, but it will be creating a FillInQuestion object so that the actual type of the copy is correct.

Modify QuizManager to include at least two FillInQuestions in a quiz.

Write a JUnit test class that tests the constructor and copy methods of the FillInQuestion class are working properly. (The other methods are already tested by the JUnit test class for Question)

Part III: [15 marks] The NumericQuestion subclass

Create a class called NumericQuestion that extends Question. The constructor has two double parameters for the answer, the first is the correct answer, the second is the tolerance as shown in the example below. If an attempted answer is within the tolerance value of the correct answer, it is considered correct. Override the checkAnswer method to properly check an attempted answer.

NumericQuestion(What is the value of PI?, 3.14, 0.01, Question.Difficulty.Easy) would allow any value between 3.13 and 3.15 as correct. You can assume the attempted answer given to checkAnswer will convert to a double without throwing an exception

Override Questions copy method. It still must return Question, but it will be creating a NumericQuestion object so that the actual type of the copy is correct.

Modify QuizManager to include at least two NumericQuestions in a quiz.

Write a JUnit test class that tests the constructor, copy method, and new version of checkAnswer of the NumericQuestion class are working properly.

done QuizMaker and

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!