Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

In a course, a teacher gives the following tests and assignments: - A lab activi

ID: 3633460 • Letter: I

Question

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 GradeActivity 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 PassFailExam object as its argument. This object should already hold the students score for the pass/fail exam. Element 1 of the grades field should reference this object.

setEssay: This method should accept GradedActivity object as its argument. 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 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 methos should return a string that contains the numeric scores and grades for each element in the grades array.

Explanation / Answer

Dear.. // GradedActivity
public class GradedActivity
{ private double score; public void setScore(double s)
{ score = s;
} public double getScore()
{ return score;
} public char getGrade()
{ char letterGrade; if (score >= 90)
letterGrade = 'A'; else if (score >= 80)
letterGrade = 'B'; else if (score >= 70)
letterGrade = 'C'; else if (score >= 60)
letterGrade = 'D'; else letterGrade = 'F'; return letterGrade;
}
} // PassFailActivity.java public class PassFailActivity extends GradedActivity
{ private double minPassingScore; public PassFailActivity(double mps)
{ minPassingScore = mps;
} public char getGrade()
{ char letterGrade; if (super.getScore() >= minPassingScore)
letterGrade = 'P'; else letterGrade = 'F'; return letterGrade;
}
} // Eassy.java public class Essay extends GradedActivity
{ private double grammar; private double spelling; private double correctLength; private double content; public void setScore(double gr, double sp, double len, double cnt)
{
setGrammar(gr);
setSpelling(sp);
setCorrectLength(len);
setContent(cnt); super.setScore(grammar + spelling + correctLength + content);
} private void setGrammar(double g)
{ if (g <= 30.0) grammar = g; else grammar = 0.0;
} private void setSpelling(double s)
{ if (s <= 20.0) spelling = s; else spelling = 0.0;
} private void setCorrectLength(double c)
{ if (c <= 20.0) correctLength = c; else correctLength = 0.0;
} private void setContent(double c)
{ if (c <= 30) content = c; else content = 0.0;
} public double getGrammar()
{ return grammar;
} public double getSpelling()
{ return spelling;
} public double getCorrectLength()
{ return correctLength;
} public double getContent()
{ return content;
} public double getScore()
{ return grammar + spelling + correctLength + content;
}
} // FinalExam.java public class FinalExam extends GradedActivity
{ private int numQuestions; private double pointsEach; private int numMissed; public FinalExam(int questions, int missed)
{ double numericScore; numQuestions = questions; numMissed = missed; pointsEach = 100.0 / questions;
numericScore = 100.0 - (missed * pointsEach);
setScore(numericScore);
} public double getPointsEach()
{ return pointsEach;
} public int getNumMissed()
{ return numMissed;
}
}

// CourseGrades.java

public class CourseGrades
{ private GradedActivity[] grades; private static int NUM_GRADES = 4; public CourseGrades()
{ grades = new grades[NUM_GRADES];
} public void setLab(GradedActivity aLab)
{ grades[0] = aLab;
} public void setPassFailExam(PassFailExam aPassFailExam)
{ grades[1] = aPassFailExam;
} public void setEssay(Essay anEssay)
{ grades[2] = anEssay; grades[2] = anEssay; } public void setFinalExam(FinalExam aFinalExam)
{ grades[3] = aFinalExam.getScore(); grades[3] = aFinalExam.getScore(); } public String toString()
{
String result = "";
result = "Lab Score: " + grades[0] + "Pass/Fail Exam Score: " + grades[1].getScore() + " Grade: " + grades[1].getGrade()
                     + " Essay Score: " + grades[2].getScore() + " Grade: " + grades[2].getGrade() + " Final Exam Score: "
                              + grades[3].getScore() + " Grade: " + grades[3].getGrade()"; return result;
}
}

// CourseGradeDemo

public class CourseGradeDemo
{ public static void main(String[] args)
{
CourseGrades courseGrades = new CourseGrades();
Lab lab = new Lab();
PassFailExam passFailExam = new PassFailExam();
Essay essay = new Essay();
FinalExam finalExam = new FinalExam();
lab.setScore(85); passFailExam().setScore(17); essay.setScore(25, 18, 17, 20); finalExam.setScore(40); courseGrades.setLab(lab);
courseGrades.setPassFailExam(passFailExam);
courseGrades.setEssay(essay);
courseGrades.setFinalExam(finalExam);
System.out.print(courseGrades.toString());
}
}