In a course, a teacher gives the following tests and assignments: A lab activity
ID: 3555371 • 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:
setPassFailExam:
MtEssay:
satFinalExam:
toString:
This method should accept a GradedActivity object as its argu- ment. This object should already hold the student's score for the lab activity. Element 0 of the grades field should reference this object
This method should accept a PassFailExan object as its argument. This object should already hold the student's score for the pass/fail exam. Element I of the grades field should reference thil object.
This method should accept an Essay object as its argument, (See Programming Challenge 4 for the Essay class. If you have not completed Programming Challenge 4, use a GradedActivity object instead.) This object should already hold the student's score for the essay, Element 2 of the grades field should reference this
object.
This method should accept a FinalExam object as its argument. This object should already hold the student's store for the final
exam. Flcment J of the grades field should reference this object.
This method should return a string that contains the numeric scores and grades for each element in the grades a r m .
Demonstrate the class in a program
can you please put comments above each line so i can really grasp whats going on in every line of code. thansyou all so much.
make uml and java documentation
Explanation / Answer
// 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;
}
public void setFinalExam(FinalExam aFinalExam)
{
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());
}
}