Giascal Directions to Solve any problem: 1) start att 2) Work on the problem every day a, le practicing a musical instrument many small sessions are better than one large che c. often need a breakthrough thought or isos which only comes wth many sestions 3) Design solution must understand the problemen 11 de data 21 get operations on data 31 Ogorithmuse divide and conquer method 4) test algoritten on paper (desk check) 4) Code code each operation that you dontfied in the design til emnete syntax errors C) test each piece as you witeit e System out to see as the programisu 1. check illons generated throughout the code for expected values predicted by your algorithm 2. When there is a decrepancy between the tested again and the results peated by the System.out protiv) then ro.code the program 2. itlogical paths of your code must be checked All work that you sentints class must be entry your own parte 1 YOU MUST NOT look at another person's program na pretul or screen before completing and submitting your own work 2 YOU MUST NOT Wolksopether wih woher person, deving just one solution between the two of you 3 YOU MUST NOT CO any part of any other person is not even to use the copy as a Verone Assignment Description: Note 1: Read and understand all the given text of the assignment, then start writing the algorithm for the problem and test its correctness, and then, translate the algorithm to Java statements and enter/type it into Java complier editor. Then: a. Compile and debug the editor content and correct all syntax errors, if any. And then .. Test the program by running it and correct all runtime errors, if any. C. Make sure one of the tests you run resembles the given sample run below. Write a Java grading class program, StudentGrade, for an instructor whose course has specific policies provided, below. You must follow the following given steps, guidelines, and notes, in the implementation of the class/program: 1. Declare the following instance variables (inside and at the beginning of the class and outside of all the methods): A. stundentName, as a private String type. B.quiz1, quiz2, mid Term Test, final Test, percentGrade as private Integer (int) types. C. finalLetterGrade, as private character(char) type, Note: You are not allowed to declare any other variables as instance variable in your program, beside the above given ones. 2. Define the following methods, using the given method signatures, Inside the class: A vold readStudentData(): This method has no passed parameters and must do the following: I should prompt and read in the student's name. Must assign the read data to stundentName, which is declared in 1.A, above. II, should prompt and read each of the following student's scores, with specific policy for each: Score of quiz 1: Must be checked for being between 0 and 10 points inclusively. If an out of range (invalid) score is entered, must re-prompt the user, until an in-range (valid) score is entered. Must assign the valid read score to quiz1, which is declared in 1.B, above. Score of quiz 2: Must be checked for being between 0 and 10 points inclusively. If an out of range (invalid) score is entered, must re-prompt the user, until an in-range (valid) score is entered. Must assign the valid read score to quiz2, which is declared in 1.B, above. Score of midterm test: Must be checked for being between 0 and 100 points inclusively. If an out of rang (invalid) score is entered, must re-prompt, until an in-range (valid) score is entered. Must assign the valid read score to mid Term Test, which is declared in 1.B, above. Score of final test: Must be checked for being between 0 and 100 points inclusively. If an out of range (invalid) score is entered, must re-prompt the user, until an in-range (valid) score is entered. Must assign the valid read score to finalTest, which is declared in 1.B, above. B. Int getPercentGrade(): This method has no passed parameters and must do the following: 1. Must have the following declaration inside and at the beginning of this method: int percentGrade; II. Should calculate percent grade and assign it to: 1. local percentGrade and to 2. percentGrade, which is declared in 1.B, above, and then 3. return the locally declared percentGrade student's percent grade. Student's percent grade is calculated, using a weighted average: a. the quiz and quiz2 are 10 points each and together count 25%, b. the midterm is 100 points and counts 25%, and c. the final Test is 100 points and counts 50% Note: Use the following formula to calculate the student's percent grade, based on the above specifications: (int) (double)25. (quiz1 + quiz2)/20 + (double)25 * mid Torm Test / 100 + (double)50" final Tost/100 + 0.5); C. char findFinalLetterGrade (Int percentGrade): This method must do the following: 1. Must receive(passed the calculated student percentage grade as parameter, which is calculated in getPercentGrade method. II. Using the passed student percentage grade: A. Find the letter grade, which corresponds to the student percentage grade and then, B. Assign the letter grade to finalLetterGrade, which is declared in 1.B above and then C. return the letter grade to the caller method. III. Must use the following criteria to find calculate finalLetterGrade: 1. Any grade percent between 90 and 100 inclusively, is an A 2. Any grade percent between 80 and 89 inclusively, is a B, 3. Any grade percent between 70 and 79 inclusively, is a C, 4. Any grade percent between 60 and 69 inclusively, is a D, and 5. Any grade percent below 60 is an F. IV. Must return a letter grade, which is a character (char) type. D.void displayStudentData(): This method has no passed parameters and must do the following: Note: No values are passed to this method. Should display the values of following instance variables, with proper labeling for each value: 1. Student's name II. Student's quiz1, quiz2, mid Term Test, finalTest scores. III. Student's calculated percent grade (percentGrade) IV. Student's calculated final grade letter (finalLetterGrade) Write a second Java class, StudentGradeDemo, to contain a main method. Note: This class must be in a file by itself, not in the same file of StudentGrade class. This main method must use the methods in StudentGrade class. This class must create the following conversation for a current student you are processing his/her record/scores, by making calls to the following methods in the StudentGrade class: A. Must do the following actions: 1. Read input/read data values, for a student: 2. Display all input/read values in step 1 above: Student's name, Student's quiz1, quiz2. mid Termfest, finalTest scores 3. Calculated data values (Student's percent grade and final letter grade) and display them both. B. Allow the user to perform correction to the current student inputted data values, in the following way: 1. Display current processed student name, then: 2. Prompt the user to enter the correct student name 3. Read the user input for student name 4. Store the input value in the stundentName field, this will allow the user to overwrite the current name. 5. Repeat the steps 1 through 4 above, for the following fields: quiz1, quiz2, mid Term Test, and final Test, then 6. Recalculate percentGrade and finalLetterGrade, using the latest user input values 7. Display all the latest input and recalculated data values, in step 6, above. Note the following: A. The user may enter the same displayed cluta value. If the user sees no correction is needed, then, reenters the same value. Otherwise, enters a different value. B. Regardless, what is entered by the user for the field value, the program must read the entered value and overwrite the current field value. Note the following: The main method must have the following instructions, to make calls to the following StudentGrade methods: 1. readStudentData 2. getPercentGrade. 3. findFinalLetterGrade 4. displayStudentData. 5. Steps 1 through 4 above must be inside a loop to be able to process another student data. Thus, must prompt the user, if he/she wants to process another student data? If user enters "Yes or Y", repeat steps 1 through 4 above. If user enters "No or N". quit terminate the program. 6. You may need to write extra methods in StudentGrade class, to be called from main method, to fulfill the above requirements in the main method. Th main method must only make calls to StudentGrade class methods, to perform all the required activities above. StudentGrade class must contain all the methods, for the activities. The studentGradeDemo class must only contain the main method, no any other methods. Note the following: A. Returned values from methods with return value, must be storedisaved in the corresponding instance variables, declared at the beginning of the class. B. Use proper display messages, as needed. C. Use proper and meaningful variable names and prompt messages, as needed. The assignment must have the following two files: A StudentGrade class, in file StudentGrade.java 8 StudentGradeDemo class, in file StudentGradeDemo.java cDo not zip the above files. o Must attach/upload each of the above two Java files and then click Submit button, to submit all the attached/uploaded files