In a course, a teacher gives the following tests and assignments:• A lab activity that is observed by the teacher and assigned a numeric score.• A pass/fail exam that has 10 questions. The minimum passing score is 70,• An essay that is assigned a numeric score.• A final exam that has 50 questions.
Write a class named CourseGrades. The class should have an array of GradedActivity objects as a field. The array should be named grades. The grades array should have four elements, one for each of the assignments previously described. The class should have the following methods;
setLab:
This method should accept a GradedActivity object as its argument.This object should have already hold the student's score for thelab activity. Element 0 of the grades field should reference thisobject
setPassFailExam:
This method should accept a PassFailExan object as its argument.This object should already hold the student's score for the pass/failexam. Element I of the grades field should reference the object.
setEssay:
This method should accept an Essay object as its argument, (SeeProgramming Challenge 4 for the Essay class. If you have notcompleted Programming Challenge 4, use a GradedActivity objectinstead.) This object should already hold the student's score forthe essay, Element 2 of the grades field should reference thisobject.
setFinalExam:
This method should accept a FinalExam object as its argument. This object should already hold the student’s score for the final exam. Element 3 of the grades field should reference this object.
toString:This method should return a string that contains the numericscores and grades for each element in the grades array
Demonstrate the class in a program.
Additional requirements:
1. Need to have proper design ( UML with Flowchart) via Dia app. Flowchart should be drawn for each method in UML.
2. Proper comments.
3.Proper doc-string describing each method in code.
4.Proper Documentation should be for the code.