PLEASE COMPLETE FOR JAVA Driver License Online Test The local driver\'s license
ID: 3703619 • Letter: P
Question
PLEASE COMPLETE FOR JAVA
Driver License Online Test The local driver's license office has asked you to write a program that grades the written portion of the drivers license Rules and Signals Test. The driver license test has 25 multiple choice questions. The set of answer keys is: 1.A 2.C 3.? 4.B S.D 6.B 7.C 8.D 9.A 10.B 11.C 12.A 13.B 14.C 15.A 16.B 17.A 18.C 19.A 20.D 21.B 22.C 23.A 24.D 25.B First, the application displays messages to ask for the information of current candidate about last name, first name, SS number to create a Test account When the canidate is ready, display the test instruction, questions aanswers THERE ARE 25 MULTIPLE CHOICE QUESTIONS 20 conRECTRS TO GET The users answer the question by typing a letter A, B, Cor D for each question. If users type other keys than A, B, C or D; display message "Invalid key-Retype" and allow users to retype the answer of current question before moving on All the answers and the key set should be sent to the Test account in array type to evaluate the result. The result will be displayed on the screen in the following format, where the date is current date and Driver's license number is a combination of two random 4-digit numbers DRIVER LICENSE TEST RESULT Driver's name: SS Number: Phone Number: Address. Driver's License: Test date: Result Missed Questions: Smith, James 112233440 2141234567 123 Plano Rd Dallas TX 75243 12345678 03/15/2018 PASSED 5, 12, 15 The program will be available for other candidates to test until users choose to exitExplanation / Answer
Code
import java.util.Scanner;
import java.util.Random;
import java.text.SimpleDateFormat;
import java.util.Date;
public class GradingDLTest {
class DriverCandidate{
String firstName;
String lastName;
String ssNumber;
String phoneNumber;
String address;
String missedQuestion="";
int correctAnswer;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getSsNumber() {
return ssNumber;
}
public void setSsNumber(String ssNumber) {
this.ssNumber = ssNumber;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
final char[] keySet = {'A','C','B','B','D','B','C','D','A','B','C','A','B','C','A','B','A','C','A','D','B','C','A','D','B'};
char[] answerSet = new char[25];
int[] evalAns = new int[25];
public int countAnswers(){
int correctAnswers = 0;
for(int j=0;j<25;j++){
if(answerSet[j] == keySet[j]){
correctAnswers++;
evalAns[j] = 1;
}else{
evalAns[j] = 0;
}
}
return correctAnswers;
}
public String toString(){
int num1 = 0;
int num2 = 0;
StringBuffer sb = new StringBuffer();
String pattern = "MM/dd/yyyy";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
Random rand = new Random();
if (correctAnswer >= 20) {
String result = "PASSED";
if (num1 < 999)
num1 = rand.nextInt(9999) + 1000;
if (num2 < 999)
num2 = rand.nextInt(9999) + 1000;
sb.append(" DRIVING LICENSE TEST RESULTS");
sb.append(" Driver's Name :" + firstName + ", " + lastName);
sb.append(" SSN Number :" + this.ssNumber);
sb.append(" Phone Number :" + phoneNumber);
sb.append(" Address :" + address);
sb.append(" Driver's License :" + (num1 + "" + num2));
sb.append(" Test Date :" + simpleDateFormat.format(new Date()));
sb.append(" Result :" + result);
sb.append(" Misssed Question :" + missedQuestion);
} else {
String result = "FAILED";
sb.append(" DRIVING LICENSE TEST RESULTS");
sb.append(" Driver's Name :" + firstName + " " + lastName);
sb.append(" SSN Number :" + ssNumber);
sb.append(" Phone Number :" + phoneNumber);
sb.append(" Address :" + address);
// System.out.println("Driver's License :" + (num1+""+num2));
sb.append("Test Date :" + simpleDateFormat.format(new Date()));
sb.append(" Result :" + result);
sb.append(" Misssed Question :" + missedQuestion);
}
return sb.toString();
}
}
public static void main(String args[]) {
String[] questionArray = new String[25];
int i=0;
for(i=0;i<25;i++){
questionArray[i] = "Question " + (i+1) + " ";
}
char option = 0;
do{
Scanner scan = new Scanner(System.in);
System.out.print("Enter First Name: ");
String firstName = scan.nextLine();
System.out.print("Enter Last Name: ");
String lastName = scan.nextLine();
System.out.print("Enter SS Number: ");
String number = scan.nextLine();
System.out.print("Enter Phone Number: ");
String phonenumber = scan.nextLine();
System.out.print("Enter Address: ");
String address = scan.nextLine();
DriverCandidate dc = new GradingDLTest().new DriverCandidate();
dc.setFirstName(firstName);
dc.setLastName(lastName);
dc.setSsNumber(number);
dc.setPhoneNumber(phonenumber);
dc.setAddress(address);
System.out.println(" DRIVING LICENSE TEST ");
System.out.println(" THERE ARE 25 MULTIPLE CHOICE QUESTION ");
System.out.println(" YOU HAVE TO GET 20 CORRECT ANSWER TO GET PASSED ");
System.out.println("*******************************************************");
i = 0;
int correctAnswer = 0;
String missedQuestion = "";
do{
System.out.println(questionArray[i]);
while(true){
System.out.print("Answer>>>");
char answer = scan.next().charAt(0);
if(answer == 'A' || answer == 'B'|| answer == 'C' || answer == 'D'){
//if(answer==answerArray[i].charAt(0)){
dc.answerSet[i] = answer;
//}
break;
}
else{
System.out.println( " Input should be A, B , C or D");
}
}
i++;
}while(i<25);
correctAnswer = dc.countAnswers();
System.out.println(dc.toString());
System.out.print("Do you want to take test again YES/NO:");
option = scan.next().charAt(0);
}while(option == 'Y');
}
}
Output
Enter First Name: Vinoth
Enter Last Name: Sivakumar
Enter SS Number: 123456789
Enter Phone Number: 9876543210
Enter Address: Bangalore India
DRIVING LICENSE TEST
THERE ARE 25 MULTIPLE CHOICE QUESTION
YOU HAVE TO GET 20 CORRECT ANSWER TO GET PASSED
*******************************************************
Question 1
Answer>>>A
Question 2
Answer>>>B
Question 3
Answer>>>C
Question 4
Answer>>>D
Question 5
Answer>>>A
Question 6
Answer>>>B
Question 7
Answer>>>C
Question 8
Answer>>>D
Question 9
Answer>>>A
Question 10
Answer>>>E
Input should be A, B , C or D
Answer>>>A
Question 11
Answer>>>B
Question 12
Answer>>>C
Question 13
Answer>>>D
Question 14
Answer>>>A
Question 15
Answer>>>C
Question 16
Answer>>>C
Question 17
Answer>>>C
Question 18
Answer>>>D
Question 19
Answer>>>A
Question 20
Answer>>>B
Question 21
Answer>>>A
Question 22
Answer>>>D
Question 23
Answer>>>A
Question 24
Answer>>>C
Question 25
Answer>>>A
DRIVING LICENSE TEST RESULTS
Driver's Name :Sivakumar, Vinoth
SSN Number :123456789
Phone Number :9876543210
Address :Bangalore India
Test Date :04/10/2018
Result :FAILED
Misssed Question :2, 3, 4, 5, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 24, 25,
Do you want to take test again: Y / N:Y
Enter First Name: Smith
Enter Last Name: James
Enter SS Number: 112233440
Enter Phone Number: 3412567890
Enter Address: 123 Plano Rd Dallas TX 73152
DRIVING LICENSE TEST
THERE ARE 25 MULTIPLE CHOICE QUESTION
YOU HAVE TO GET 20 CORRECT ANSWER TO GET PASSED
*******************************************************
Question 1
Answer>>>A
Question 2
Answer>>>C
Question 3
Answer>>>B
Question 4
Answer>>>B
Question 5
Answer>>>D
Question 6
Answer>>>B
Question 7
Answer>>>C
Question 8
Answer>>>D
Question 9
Answer>>>A
Question 10
Answer>>>B
Question 11
Answer>>>C
Question 12
Answer>>>A
Question 13
Answer>>>B
Question 14
Answer>>>C
Question 15
Answer>>>A
Question 16
Answer>>>B
Question 17
Answer>>>A
Question 18
Answer>>>C
Question 19
Answer>>>A
Question 20
Answer>>>D
Question 21
Answer>>>D
Question 22
Answer>>>D
Question 23
Answer>>>A
Question 24
Answer>>>D
Question 25
Answer>>>B
DRIVING LICENSE TEST RESULTS
Driver's Name :Smith James
SSN Number :112233440
Phone Number :3412567890
Address :123 Plano Rd Dallas TX 73152
Driver's License :296610633
Test Date :04/10/2018
Result :PASSED
Misssed Question :21, 22,
Do you want to take test again: Y / N:N
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.