The local Driver\'s License Office has asked you to write a program that grades
ID: 3803056 • Letter: T
Question
The local Driver's License Office has asked you to write a program that grades the written portion of a driver's license exam. The exam has 20 multiple choice questions. Here are the correct answers:
1. B 6. A 11. B 16. C
2. D 7. B 12. C 17. C
3. A 8. A 13. D 18. B
4. A 9. C 14. A 19. D
5. C 10. D 15. 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 that holds the student answers. The class should have the following methods:
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.
Explanation / Answer
import java.util.*;
class DriverExam
{
private char correctAnswers[] = {'B','D','A','A','C','A','B','A','C','D','B','C','D','A','D','C','C','B','D','A'};
private char[] studentAnswers;
public DriverExam(char[] studentAnswers)
{
this.studentAnswers = studentAnswers;
}
public boolean passed()
{
int count = 0;
for(int i=0;i<20;i++)
{
if(correctAnswers[i] == studentAnswers[i]) // if student answers and correct answers match
count++;
}
if(count>=15)
return true;
else
return false;
}
public int totalCorrect()
{
int count = 0;
for(int i=0;i<20;i++)
{
if(correctAnswers[i] == studentAnswers[i])
count++; //count correct answers
}
return count;
}
public int totalIncorrect()
{
int count = 0;
for(int i=0;i<20;i++)
{
if(correctAnswers[i] != studentAnswers[i])
count++;// count incorrect answers
}
return count;
}
public int questionsMissed()
{
int count = 0;
for(int i=0;i<20;i++)
{
if(studentAnswers[i] == 0) // if student does not answer it is 0
count++;
}
return count;
}
}
class DemoDriverExam
{
public static void main (String[] args)
{
char[] studentAnswers = new char[20];
char answer;
Scanner scan = new Scanner(System.in);
System.out.println("Enter the student answers for 20 questions");
for(int i=0;i<20;i++)
{
answer = scan.next().charAt(0);
if(answer == 'A' || answer == 'B' || answer == 'C' || answer == 'D') //validate
studentAnswers[i] = answer;
else
{
System.out.println("Invalid answer . Answer should be A,B,C or D . Enter answer again");
i--;
}
}
DriverExam de = new DriverExam(studentAnswers);
System.out.println(" Total Number of correct answers : "+de.totalCorrect());
System.out.println(" Total Number of incorrect answers : "+de.totalIncorrect());
System.out.println(" Total Number of answers missed : "+de.questionsMissed());
if(de.passed() == true)
System.out.println(" Student is passed");
else
System.out.println(" Student is failed");
}
}
Output:
Enter the student answers for 20 questions
B
D
A
B
C
A
B
B
C
D
B
C
D
A
A
C
B
B
D
A
Total Number of correct answers : 16
Total Number of incorrect answers : 4
Total Number of answers missed : 0
Student is passed
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.