You have been instructed to develop a standalone Student Grade Manager application using Java.
The application, called the Student_Grade_Manager maintains student marks for one course. The records are stored in a file under the name courseslist.txt. Besides allowing record maintenance, the Student Grade Manager shall provide simple reporting and statistical analysis of grade trends across courses and classes. A sample of the file in CSV format follows:
ITM100
SAM ALBION,3426650,17,11,12,34
NICK ALLEN,2501120,20,12,13,29
JACK AMES,7346600,15,10,8,10 Etc.
1. At a class or global level, declare and initialize 5 parallel class level arrays into appropriate data types: name[],studentID[], assign1[], assign2[], midterm[] & final[]. You can assume a max of a 1,000 students (between 0 and 999). Also declare separate fname[], lname[], mark[], & grade[] arrays as well as a count variable globally.
2. From a main method:
mark grade:
Case Is >= 90 GradeMK = "A+"
Case Is >= 85 GradeMK = "A"
Case Is >= 80 GradeMK = "A-"
Case Is >= 77 GradeMK = "B+"
Case Is >= 73 GradeMK = "B"
Case Is >= 70 GradeMK = "B-"
Case Is >= 67 GradeMK = "C+"
Case Is >= 63 GradeMK = "C"
Case Is >= 60 GradeMK = "C-"
Case Is >= 57 GradeMK = "D+"
Case Is >= 53 GradeMK = "D"
Case Is >= 50 GradeMK = "D-"
Case Else GradeMK = "F"
The total number of students read in was 42.
The mean was 63.5 or a C.
The standard deviation was 17.54.
Highest Mark was 88%.
Lowest Mark was 35%.
3. From the main method call a separate adjustMarks() method. Due to a low class average, the Course Coordinator wants to implement a mark increase using the following bell structure. To do this, write code to a temporary.txt file with the new mark. The data file should look exactly the same as the old, but with the new marks present. (Keep the original student names as the original file.)
The total mark increase logic is as follows:
If the current mark is: The new mark is:
>=80 110 % of the old mark
>=65 120 % of the old mark
>=50 130 % of the old mark
>=0 140 % of the old mark
Rerun the report.
4. From the main method call a separate filteredReport() method that filters the contents of the arrays. User will be asked to see all marks greater than an amount that they will specify using an inputbox (Ask for the query mark before you start generating the report).
5. From the main method call a separate findStudent() method. Ask the user for a studentID to look up and display the information as per below example to the console:
Name: NICK ALLEN
First Name: Nick
Last Name: Allen
Student ID: 2501120
Assignment #1: 20
Assignment #2: 12
Midterm: 13
Final: 29
Mark: 88.8
Grade: A