Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

modify your Quiz class from the previous assignment. You will use method that asks a quiz question and a method that checks the answer, and

modify your "Quiz class" from the previous assignment. You will

use method that asks a quiz question and a method that checks the answer, and you will use

those methods to ask multiple questions. Your program will then report how many questions the

user got correct. This program will be the basis for future Programming Assignments in this

course.

These instructions assume that you are using the Eclipse IDE on your own computer or you may

use a different Java environment as long as you can provide Java code and screen shots for your

assignment submission.

First open your previous Programming Assignment in Eclipse, with the file "Quiz.java" in the

editor pane.

Add a static method that asks a question until the user provides valid input.

Call the method "ask". It should take a String parameter, and it should return a String.

static String ask(String question) {

Remember where method definitions go: inside the class (in this case, "Quiz") but outside

all other method definitions (like "main"). It can go before or after the "main" definition.

Ask the user the question repeatedly until the user provides a valid answer: "A", "B", "C",

"D", or "E".

Ask the question using "JOptionPane.showInputDialog".

Allow the user to provide a lower-case answer, and convert it to upper case.

If the user provides an invalid answer, use "JOptionPane.showMessageDialog" to tell

them, "Invalid answer. Please enter A, B, C, D, or E." Then ask the question again.

Repeat until the answer is valid.

Once the user provides a valid answer, return that answer (converted to upper case).

Notice that the method does not check whether the answer is correct. It just asks the same

question until the answer is valid.

Try out your new method.

Delete the existing loop from your main method, but leave the initialization of the

question String.

Call the "ask" method with your question String as the argument (actual parameter).

Note that you do not have to use the String returned by "ask".

Run your program. It should keep asking the question until you provide a valid answer. It

does not yet check the answer.

Try invalid and valid answers.

Now add a method that asks questions using "ask" and checks answers.

Call the method "check". It should take two String parameters. static void

check(String question, String correctAnswer) {

The method definition can go before, after, or between the definitions for "ask" and

"main", but it must be inside the "Quiz" class and outside the other method definitions.

In the "check" method, call "ask" to get a valid answer. String answer =

ask(question);

If the answer is correct, use "JOptionPane.showMessageDialog" to report, "Correct!"

If the answer is incorrect, use "JOptionPane.showMessageDialog" to report, "Incorrect.

The correct answer is ." This output should include the actual correct answer.

Test the "check" method.

Replace the "ask" call in the main method with a "check" call. You will need to provide

both the question String and the answer String as arguments.

Run your program. It should keep asking the question until you provide a valid answer.

Then it should tell you if your answer is correct.

Try invalid, incorrect, and correct answers.

Add more questions.

In the main method, call "check" with at least two more unique quiz questions, each with

a different correct answer, for a total of at least three questions.

You may either declare and initialize new local variables or reassign the existing question

variable after each "check" call.

Run your program. Make sure the responses work as expected for all the questions.

Finally, add a score for the quiz.

Add two static member variables, one for the number of questions and one for the

number of correct answers. Initialize them to zero for good documentation.

static int nQuestions = 0;

static int nCorrect = 0;

Remember where member variables go: inside a class definition but outside all method

definitions. You may declare the variables before, after, or between the existing methods.

In the "check" method, increment "nQuestions" each time it is called.

Also in the "check" method, increment "nCorrect" for each correct answer.

Display the score at the end of the main method using

"JOptionPane.showMessageDialog". Use the text, " correct out of questions", with the

appropriate numbers.

Run your program. Make sure it displays the right numbers of questions and correct

answers.

When you're finished, upload the following to the Programming Assignment submission area:

  • Quiz.java
  • Screenshotshowing the input dialog with a new quiz question, not the one from the previous assignment
  • Screenshotshowing themessage dialog for an incorrect answer
  • Screenshotshowing the message dialog for the number of questions and correct answers

Your assignment will be graded by your peers using the following criteria.

  • Does the submission include a static method "ask" that returns a String and takes a String parameter?
  • Does the "ask" method use "JOptionPane.showInputDialog" to ask the question provided as a parameter?
  • Does the "ask" method return only a valid answer converted to all upper case?
  • Does the submission include a static method "check" that takes two String parameters?
  • Does the "check" method call the "ask" method with one of its parameters?
  • Does the "check" method display one message for correct answers and a different message for incorrect answers?
  • Does the "check" method update static member variables to count the number of questions and the number of correct answers?
  • Does the main method call "check" with at least three different questions and answers?
  • Does the main method display the number of questions and the number of correct answers using the static member variables?

"Quiz from Previous Assignment"

import javax.swing.JOptionPane;

public class Quiz {

public static void main(String[] args) {

// TODO Auto-generated method stub

String question = "Who is the Prime Minister of Canada? ";

question = question + "A. Kim Cambell ";

question = question + "B. Stephen Harper ";

question = question + "C. JustinTrudeau ";

question = question + "D. Joe Biden ";

question = question + "E. Paul Martin";

while (true) {

String answer = JOptionPane.showInputDialog(question);

answer = answer.toUpperCase();

if (answer.equals("C")) {

JOptionPane.showMessageDialog(null, "Correct!");

break;

} else if(answer.equals("B") || answer.equals("C") || answer.equals("D")|| answer.equals("E")) {

JOptionPane.showMessageDialog(null, "Incorrect. Please try again.");

}

else

{

JOptionPane.showMessageDialog(null, "Invalid answer. Please enter A, B, C, D, or E.");

}

}

}

}

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Introduction to Wireless and Mobile Systems

Authors: Dharma P. Agrawal, Qing An Zeng

4th edition

1305087135, 978-1305087132, 9781305259621, 1305259629, 9781305537910 , 978-130508713

More Books

Students also viewed these Programming questions

Question

Explain why each is likely to occur.

Answered: 1 week ago

Question

outline the steps in the marketing research process

Answered: 1 week ago