Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

1. B 2. D 3. A 4. A 5. C 6. A 7. B 8. A 9.C 10. D 11.B 12. C 13. D 14. A 15. D 1

ID: 3764180 • Letter: 1

Question

1. B 2. D   3. A 4. A 5. C 6. A 7. B 8. A 9.C 10. D 11.B 12. C

13. D 14. A 15. D 16. C 17. C 18. B 19. D 20. A

A student must correctly answer 15 of the 20 questions to pass the exam.Write a class named DriverExam that holds the correct answers to the exam in an array field.

The class should also have an array field that holds the student’s answers. The class should have the following methods:

result. Returns true if the student passed the exam, or false if the student failed

CorrectAnswers. Returns the total number of correctly answered questions

IncorrectAnswers. Returns the total number of incorrectly answered questions

missed. An int array containing the question numbers of the questions that the student missed

Demonstrate the class in a complete program that asks the user to enter a student’s answers, and then displays the results returned from the DriverExam class’s methods. Input Validation: Only accept the letters A, B, C, or D as answers. Use basic programming loops, string and dialog boxes.

Explanation / Answer

public class DriverExam

    {

       //An array containing a student's answers

       private String[] correctAnswers =

                                     {"B", "D", "A", "A", "C", "A",

                                      "B", "A", "C", "D",

                                      "B", "C", "D", "A",

                                      "D", "C", "C", "B", "D", "A"};

       //Store the user's answers

       private String[] userAnswers;

      int[] missed = new int[correctAnswers.length];

       //Process the user's answers

       public DriverExam (String[] Answers)

       {

          userAnswers = new String[Answers.length];

          for (int i = 0; i < Answers.length; i++)

          {

             userAnswers[i] = Answers[i];

          }

       }

       //Returns a boolean value if correct answers > 15

       public boolean passed()

       {

          if (totalCorrect() >= 15)

             return true;

          else

             return false;

       }

       //Determines the total correct answers

       public int totalCorrect()

       {

          int correctCount = 0;

          for (int i = 0; i < correctAnswers.length; i++)

          {

             if (userAnswers[i].equalsIgnoreCase(correctAnswers[i]))

             {

                correctCount++;

             }

          }

          return correctCount;

       }

       //Determines the total incorrect answers

       public int totalIncorrect()

       {

          int incorrectCount = 0;

          for (int i = 0; i < correctAnswers.length; i++)

          {

             if (!userAnswers[i].equalsIgnoreCase(correctAnswers[i]))

             {

                missed[incorrectCount] = i;

                incorrectCount++;

             }

          }

          return incorrectCount;

       }

       //Missed questions

       public int[] questionsMissed()

       {

          return missed;

       }

    }

    //end of DriverExam class

   /* The DriverExamApplication class demonstrates the methods of DriverExam class. */

import java.util.Scanner;

public class DriverExamApplication

{

   public static void main(String[] args)

   {

      System.out.println("    Driver's License Exam ");

      Scanner input = new Scanner(System.in);

      System.out.println(" 20 Multiple-Choice Questions ");

      System.out.println("       Mark A, B, C, D   ");

      //Inputting string

      String[] answers = new String[20];

      String answer;

      for (int i = 0; i < 20; i++)

      {

         do

         {

            System.out.print((i+1) + ": ");

            answer = input.nextLine();

         } while (!isValidAnswer(answer));

         answers[i] = answer;

      }

      //Process

     DriverExam exam = new DriverExam(answers);

      //Results

      System.out.println(" RESULTS ");

      //Outputting total correct

      System.out.println("Total Correct: " + exam.totalCorrect());

      //Outputting total incorrect

      System.out.println("Total Incorrect: " + exam.totalIncorrect());

      String passed = exam.passed() ? "YES" : "NO";

      //Result pass or fail

      System.out.println("Passed: " + passed);

      if (exam.totalIncorrect() > 0)

      {

          System.out.println("The incorrect answers are: ");

          int missedIndex;

          for (int i = 0; i < exam.totalIncorrect(); i++)

          {

            missedIndex = exam.questionsMissed()[i]+1;

            System.out.print(" " + missedIndex);

          }

      }

   } //end of main function

                                                                      

   //Returns true when answer is valid

   public static boolean isValidAnswer (String answer)

   {

      return "A".equalsIgnoreCase(answer) ||

         "B".equalsIgnoreCase(answer)

         || "C".equalsIgnoreCase(answer) ||

         "D".equalsIgnoreCase(answer);

   }

} //end of Test class