$25
For this assignment you will complete programming challenges 4, 5, and 6. Each challenge leads from one to the next. When you are finished, submit a single working application that consists of the code that results from doing the three programming challenges, one after another.
Chapter 10, Programming Challenge 4
Start by implementing Challenge 4 in chapter 10.
Design an Essay class that extends the GradedActivity class presented in chapter 10 (edition 3) of the Gaddis text for the course. The Essay class should determine the grade a student receives for an essay. The student’s essay score can be up to 100 and is determined in the following manner:
· Grammar: 30 points
· Spelling: 20 points
· Correct length: 20 points
· Content: 30 points
Chapter 10, Programming Challenge 5
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 a GradedActivity array named grades as a field. The 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 already hold the student’s score for the lab activity. Element 0 of the grades field should reference this object.
setPassFailExam – This method should accept a PassFailExam object as its argument. This object should already hold the student’s score for the pass/fail exam. Element 1 of the grades field should reference this object.
setEssay – This method should accept as Essay object as its argument. See Programming Challenge 4 for the Essay class. This object should already hold the student’s score for the essay. Element 2 of the grades field should reference this object.
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 numeric scores and grades for each element in the grades array.
Chapter 10, Programming Challenge
Modify the CoursesGrades class created in Programming Challenge 5 so it implements the following interface:
Public interface Analyzable {
Double getAverage();
GradedActivity getHighest();
GradedActivity getLowest();
}
The getAverage method should return the average of the numeric scores stored in the grades array. The getHighest method should return a reference to the element of the grades array that has the highest numeric score. The getLowest method should return a reference to the element of the grades array that has the lowest numeric score.