Create a program to mark and grade a set of multiple choice test results.This is a console programm that uses JOptionPane dialog boxes as well.
Read a set of 10 correct answers,using a JOptionPane dialog box and store the entire answer as one string in one variable.There are no spaces between the letters and the user may enter capital or small letters.
Extract each letter from this and fill an array with the 10 letter answers.This is done in a method Load Answers after above .When the answers have been written to the array,display the confirmation box displaying The information has been saved.
The programm must then ask the user for the number of students to process .
Thereafter the program must prompt the user for the student name and thereafter for the student's 10 answers.Use Input Dialog boxes to achieve this.The 10 answers for the student must be saved in another array.
Please ensure the wording of your dialog boxes are shown
After successful capture of the marks ,show another success confirmation dialog box .Thereafter compare the student's answers with the answers in an array.Keep count of the number of answers in the answer array.Keep a count of the number of answers from the student's record that match the answers in the answer key.
Store the student's name and the number of correct answers in another array(s). Calculate the symbol based on the results below
Score Letter Grade
9-10 A 8 B 7 C 6 D 5 E 0-4 F
For each student ,display the student's name ,the number of correct answers and a symbol(letter grade).Calculate the average number of correct answers for the class and report it in the format similar to the one below
Jean 10 A Above Average
Jack 7 C Above Average
George 9 A Above Average
Paul 5 E Below Average
Steven 7 C Above Average
Jackie 6 D Below Average
lucky 0 F Below Average
lan 8 B Above Average
Matr 8 B Above Average
And 9 A Above Average
The class average is :
Using the array of student records ,display a list for all students.Report if a student had an average, above average or below average number of correct answers as shown above
To end the program display a dialog box asking the user for confirmation of exit :
import java.util.*; import javax.swing.*; class Student { String name; int total; Student(String name, int total) { this.name = name; this.total = total; } public String getName() { return name; } public int getTotal() { return total; } } public class StudentTest { public static void main(String[] args) { ArrayList<Student> list = new ArrayList<Student>(); String finalResult = ""; String finalSymbol = ""; String st = JOptionPane .showInputDialog("Please enter the answers to the ten multiple choice questions \nno spaces and all in Capital letters e.g. ABCDEABCDE"); String answers[] = st.split(""); int count = 0; int numOfStudents = Integer.parseInt(JOptionPane .showInputDialog("Please enter the number of students :")); String studentanswers[] = new String[10]; for (int j = 1; j <= numOfStudents; j++) { String name = JOptionPane .showInputDialog("Please enter the student name:"); for (int i = 0; i < 10; i++) { String ans = JOptionPane.showInputDialog("Please enter " + name + "'s answer for Question " + (i + 1)); studentanswers[i] = ans; } for (int i = 0; i < studentanswers.length; i++) { if (studentanswers[i].equals(answers[i + 1])) { count++; } } list.add(new Student(name, count)); count = 0; } int sum = 0; for (Student s : list) { int tt = s.getTotal(); if (tt == 0 || tt == 1 || tt == 2 || tt == 3 || tt == 4) { finalSymbol = "F"; } else if (tt == 5) { finalSymbol = "E"; } else if (tt == 6) { finalSymbol = "D"; } else if (tt == 7) { finalSymbol = "C"; } else if (tt == 8) { finalSymbol = "B"; } else if (tt == 9 || tt == 10) { finalSymbol = "A"; } if (tt >= 5) { finalResult = "Above Average"; } else if (tt < 5) { finalResult = "Below Average"; } sum += tt; System.out.println(s.getName() + "\t" + tt + "\t" + finalSymbol + "\t" + finalResult); } double averageOfClass = sum / numOfStudents; System.out.println("The class average is: " + averageOfClass); } }