In: Computer Science
Driver’s License test. Write a program that grades the written portion of the driver’s license test. The test has 20 multiple choice questions. Here are the correct answers: ( use array to store ) 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 ( use array to store) 15 of 20 questions to pass test. Write the following methods: Passed : return true if the student passed the test, or false if the student failed boolean Passed( char[ ] solution, char [] answer) totalCorrect: return the total number of correctly answered questions int totalCorrect( char[ ] solution, char [] answer) The main program should ask user to enter a student’s answers and then display the results from calling methods: If the student passed or failed, number of correct answers, number of incorrect answers, Extra credits(10pts) Add another method questionMissed: in integer array containing the question numbers of the question that the student missed Int [] questionMissed(char[] solution, char [] answer) In main method, print out list of question numbers with incorrect answers.
LANGUAGE(JAVA)
Java program that grades the written portion of the driver’s license test :
public class DriverLicense
{
//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 DriverLicense (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 DriverLicense class
/* The DriverLicenseApplication class demonstrates the methods of DriverExam class. */
import java.util.Scanner;
public class DriverLicenseApplication
{
public static void main(String[] args)
{
System.out.println(" Driver's License Test ");
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.println((i+1) + ": ");
answer = input.nextLine();
} while (!isValidAnswer(answer));
answers[i] = answer;
}
//Process
DriverLicense license = new DriverExam(answers);
//Results
System.out.println(" RESULTS ");
//Outputting total correct
System.out.println("Total Correct: " + license.totalCorrect());
//Outputting total incorrect
System.out.println("Total Incorrect: " +
license.totalIncorrect());
String passed = license.passed() ? "YES" : "NO";
//Result pass or fail
System.out.println("Passed: " + passed);
if (license.totalIncorrect() > 0)
{
System.out.println("The incorrect answers are: ");
int missedIndex;
for (int i = 0; i < license.totalIncorrect(); i++)
{
missedIndex = exam.questionsMissed()[i]+1;
System.out.println(" " + 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