Java >> Tutoriel Java >  >> Java

Programme Java pour l'examen du permis de conduire

Programme Java d'examen de permis de conduire | Dans cette section, nous écrivons le code pour l'examen du permis de conduire en Java.

Description du programme :- Le bureau local des permis de conduire vous a demandé d'écrire un programme qui note la partie écrite de l'examen de permis. Dans l'examen, il y a un total de 20 questions où l'étudiant doit répondre à au moins 15 bonnes réponses pour réussir l'examen, sinon il est qualifié d'échec.

Il s'agit généralement de questions à choix multiples comportant quatre options :"A", "B", "C", "D". L'élève doit sélectionner l'une d'entre elles.

import java.util.ArrayList;
import java.util.List;

public class DriverExam {
   
   // correct answers
   private char ansKey[] = 
                  { 'B', 'D', 'A', 'A', 'C', 
                    'A', 'B', 'A', 'C', 'D', 
                    'B', 'C', 'D', 'A', 'D', 
                    'C', 'C', 'B', 'D', 'A' };

   // array to store user answers
   private char userAns[] = new char[ansKey.length];
   private double passing = 65.0;

   // constructor
   public DriverExam(char[] userAns) {
      this.userAns = userAns;
   }

   // method to check whether user is passed or not
   public boolean passed() {
      double percentage = (totalCorrectAns()*100) / ansKey.length;
      return (percentage >= passing);
   }

   // method to count total correct answers
   public int totalCorrectAns() {
      int countCorrect = 0;
      for (int i = 0; i < userAns.length; i++) {
         if (userAns[i] == ansKey[i]) {
            countCorrect++;
         }
      }
      return countCorrect;
   }

   // method to count total incorrect answers
   public int totalIncorrectAns() {
      int countIncorrectAns = 0;
      for (int i = 0; i < userAns.length; i++) {
         if (userAns[i] != ansKey[i]) {
            countIncorrectAns++;
         }
      }
      return countIncorrectAns;
   }

   // method to return array of questions 
   // having incorrect answers
   public int[] questionsMissed() {
      List<Integer> missedQuestions = new ArrayList<Integer>();
      for (int i = 0; i < userAns.length; i++) {
         if (userAns[i] != ansKey[i]) {
            missedQuestions.add(i + 1);
         }
      }
      int questions[] = new int[missedQuestions.size()];
      for(int i=0; i<questions.length; i++) {
         questions[i] = missedQuestions.get(i);
      }
      return questions;
   }
}
import java.util.Arrays;
import java.util.Scanner;

public class Application {
   public static void main(String[] args) {
      System.out.println("******************"
             +"********************************");
      System.out.println("****Driver's License Exam****");
      System.out.println("20 Multiple-Choice Questions");
      System.out.println("Answer in A, B, C, D\n");
      System.out.println("******************"
             +"********************************");

      Scanner scan = new Scanner(System.in);
      char studentAns[] = new char[20];
      System.out.println("Enter the answer of the " +
                         "following questions:- ");
      for (int i = 0; i < studentAns.length; i++) {
         System.out.print((i + 1) + ": ");
         studentAns[i] = scan.nextLine().charAt(0);
      }

      // create object
      DriverExam exam = new DriverExam(studentAns);

      System.out.println("\n******************"
             +"********************************");
      System.out.println("Results:- ");
      System.out.println("Total correct answers: " 
                         + exam.totalCorrectAns());
      System.out.println("Total incorrect answers: " 
                         + exam.totalIncorrectAns());

      int[] missedQuestions = exam.questionsMissed();
      if (missedQuestions.length != 0) {
         System.out.print("The following questions " + 
                          "have incorrect answers: ");
         System.out.println(Arrays.toString(missedQuestions));
      } else {
         System.out.println("All answers are corrects");
      }

      System.out.println("Passing is at 65%");
      if (exam.passed()) {
         System.out.print("Congratulations, " 
                          + "You have passed the exam!");
      } else {
         System.out.print("You failed. Better luck next time.");
      }
   }
}

Sortie :-

******************************************************
****Examen du permis de conduire****
20 questions à choix multiples
Réponse en A, B, C, D

***** *********************************************
Entrez la réponse aux questions suivantes :-
1 : B
2 : D
3 : A
4 : A
5 : C
6 : A
7 : Si
8 : A
9 : A
10 : D
11 : B
12 : C
13 : D
14 :A
15 :A
16 :C
17 :C
18 :B
19 :D
20 :A
/>
******************************************** ******
Résultats :-
Total des réponses correctes :18
Total des réponses incorrectes :2
Les questions suivantes ont des réponses incorrectes :[9, 15]
La réussite est à 65 %
Félicitations, vous avez réussi l'examen !


Balise Java