Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
100% found this document useful (2 votes)
190 views

Unit 5 Programming Assignment Solution

The document provides code for a quiz program with multiple choice and true/false questions. The Question abstract class tracks the number of questions and correct answers. TrueFalseQuestion and MultipleChoiceQuestion subclasses implement the question types. The Quiz class contains a main method that creates sample questions of each type, checks the answers, and displays the results.

Uploaded by

John kapembwa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (2 votes)
190 views

Unit 5 Programming Assignment Solution

The document provides code for a quiz program with multiple choice and true/false questions. The Question abstract class tracks the number of questions and correct answers. TrueFalseQuestion and MultipleChoiceQuestion subclasses implement the question types. The Quiz class contains a main method that creates sample questions of each type, checks the answers, and displays the results.

Uploaded by

John kapembwa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Unit 5 Programming Assignment Solution

The quiz questions, answers, and choices for correct answer should be unique for each submission. Here
is an example.

File "Question.java":

import javax.swing.JOptionPane;

public abstract class Question {

static int nQuestions = 0;

static int nCorrect = 0;

String question;

String correctAnswer;

abstract String ask();

void check() {

nQuestions++;

String answer = ask();

if (answer.equals(correctAnswer)) {

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

nCorrect++;

} else {

JOptionPane.showMessageDialog(null,"Incorrect. The correct


answer is "+correctAnswer+".");

static void showResults() {

JOptionPane.showMessageDialog(null,nCorrect+" correct out of


"+nQuestions+" questions");

}
File "TrueFalseQuestion.java".

import javax.swing.JOptionPane;

public class TrueFalseQuestion extends Question {

String ask() {

while (true) {

String answer = JOptionPane.showInputDialog(question);

answer = answer.toUpperCase();

if (answer.equals("T") || answer.equals("Y") ||
answer.equals("YES")) answer = "TRUE";

if (answer.equals("F") || answer.equals("N") ||
answer.equals("NO")) answer = "FALSE";

boolean valid = (answer.equals("FALSE") ||


answer.equals("TRUE"));

if (valid) return answer;

JOptionPane.showMessageDialog(null,"Invalid answer. Please


enter TRUE or FALSE.");

TrueFalseQuestion(String question, String answer) {

this.question = "TRUE or FALSE: "+question;

answer = answer.toUpperCase();

if (answer.equals("T") || answer.equals("TRUE") ||
answer.equals("Y") || answer.equals("YES")) correctAnswer = "TRUE";

if (answer.equals("F") || answer.equals("FALSE") ||
answer.equals("N") || answer.equals("NO")) correctAnswer = "FALSE";

File "MultipleChoiceQuestion.java"

import javax.swing.JOptionPane;
public class MultipleChoiceQuestion extends Question {

MultipleChoiceQuestion(String query, String a, String b, String c,


String d, String e, String answer) {

question = query+"\n";

question += "A. "+a+"\n";

question += "B. "+b+"\n";

question += "C. "+c+"\n";

question += "D. "+d+"\n";

question += "E. "+e+"\n";

correctAnswer = answer.toUpperCase();

String ask() {

while (true) {

String answer = JOptionPane.showInputDialog(question);

answer = answer.toUpperCase();

boolean valid = (answer.equals("A") || answer.equals("B")


|| answer.equals("C") || answer.equals("D") || answer.equals("E"));

if (valid) return answer;

JOptionPane.showMessageDialog(null,"Invalid answer. Please


enter A, B, C, D, or E.");

File "Quiz.java".

public class Quiz {

public static void main(String[] args) {

Question question = new TrueFalseQuestion("Quizzes are


fun!","y");
question.check();

question = new TrueFalseQuestion("Quizzes are more fun


than programming!","n");

question.check();

question = new TrueFalseQuestion("Which one starts with


T?","t");

question.check();

question = new TrueFalseQuestion("Which one starts with


F?","f");

question.check();

question = new TrueFalseQuestion("Which one is not


true?","false");

question.check();

question = new MultipleChoiceQuestion(

"What is a quiz?",

"a test of knowledge, especially a brief informal


test given to students",

"42",

"a duck",

"to get to the other side",

"To be or not to be, that is the question.",

"a");

question.check();

question = new MultipleChoiceQuestion("When is a quiz?",

"long, long ago",

"right now",

"the best of times",

"the worst of times",

"nevermore",
"b");

question.check();

question = new MultipleChoiceQuestion("Where is a quiz?",

"a galaxy far, far away",

"under the sea",

"right here",

"there and back again",

"the other side of the mountain",

"c");

question.check();

question = new MultipleChoiceQuestion("Why is a quiz?",

"I think, therefore it is.",

"Who is to say?",

"You tell me.",

"Because learning is fun!",

"Because I said so.",

"d");

question.check();

question = new MultipleChoiceQuestion("How is a quiz?",

"fair to middling",

"not bad",

"by a stroke of luck",

"by accident",

"Using Java object-oriented programming!",

"e");

question.check();

question.showResults();
}

Screen shot of a true/false question.

You might also like