1 public class CourseGrades 2 { 3 GradedActivity[] grades = new GradedActivity[4
ID: 3758938 • Letter: 1
Question
1 public class CourseGrades
2 {
3 GradedActivity[] grades = new GradedActivity[4];
4
5 public void setLab(GradedActivity grade)
6 {
7 grades[0] = grade;
8 }
9 public void setPassFailExam(PassFailExam failExam)
10 {
11 grades[1] = failExam;
12 }
13 public void setEssay(Essay essay)
14 {
15 grades[2] = essay;
16 }
17 public void setFinalExam(finalExam finalexam)
18 {
19 grades[3] = finalexam;
20 }
21 public double getAverage()
22 {
23 double sum = 0.0;
24 for(GradedActivity g : grades){
25 sum += g.getScore();
26 }
27 return sum/grades.length;
28 }
29 public GradedActivity getHighest()
30 {
31 double max = Double.MIN_VALUE;
32 GradedActivity output = null;
33
34 for(GradedActivity g : grades)
35 {
36 if(g.getScore() > max)
37 {
38 output = g;
39 max = g.getScore();
40 }
41 }
42 return output;
43 }
44 public GradedActivity getLowest()
45 {
46 double min = Double.MAX_VALUE;
47 GradedActivity output = null;
48
49 for(GradedActivity g : grades)
50 {
51 if(g.getScore() < min)
52 {
53 output = g;
54 min = g.getScore();
55 }
56 }
57 return output;
58 }
59
60 public String toString()
61 {
62 return " Lab Activity " + grades[0].toString() +
63 " Pass Fail Exam "+ grades[1] .toString() +
64 " Essay " +grades[2].toString() +
65 " final Exam " +grades[3].toString();
66 }
67 }
1 public class CourseGradeDemo
2 {
3 public static void main(String[] args)
4 {
5 GradedActivity gradedActivity = new GradedActivity();
6 gradedActivity.setScore(60);
7
8 PassFailExam passfailExam = new PassFailExam(100, 25, 60);
9
10 Essay essay = new Essay(25, 10, 10,10);
11
12 finalExam finalexam = new finalExam(50);
13
14 CourseGrades coursegrade = new CourseGrades();
15
16 coursegrade.setLab(gradedActivity);
17
18 coursegrade.setPassFailExam(passfailExam);
19
20 coursegrade.setEssay(essay);
21
22 coursegrade.setFinalExam(finalexam);
23
24 System.out.println(coursegrade.toString());
25
26 System.out.println("Average grade score: " +coursegrade.getAverage());
27 GradedActivity highest = coursegrade.getLowest();
28 System.out.println("Highest Score: " + highest.getScore());
29 System.out.println("Highest grade: " + highest.getGrade());
30
31 GradedActivity low = coursegrade.getLowest();
32 System.out.println("lowest score : " + low.getScore());
33 System.out.println("lowest grade: " + low.getGrade());
34 }
35 }
1 public class GradedActivity
2 {
3 private double score;
4
5 public void setScore(double s)
6 {
7 score = s;
8 }
9 public double getScore()
10 {
11 return score;
12 }
13 public char getGrade()
14 {
15 char letterGrade;
16 if(score >=90)
17 letterGrade = 'A';
18 else if(score >= 80)
19 letterGrade = 'B';
20 if(score >=70)
21 letterGrade = 'C';
22 else if(score >= 60)
23 letterGrade = 'D';
24 else
25 letterGrade ='F';
26
27 return letterGrade;
28 }
29 public String toString()
30 {
31 return " Course Score " +getScore() +
32 " Course Grade " +getGrade();
33 }
34 }
1 public class PassFailActivity extends GradedActivity
2 {
3 private double minPassingScore;
4
5 public PassFailActivity(double min)
6 {
7 minPassingScore = min;
8 }
9
10 public char getGrade()
11 {
12 char letterGrade;
13 if(super.getGrade() > minPassingScore)
14 letterGrade = 'P';
15 else
16 letterGrade = 'F';
17 return letterGrade;
18 }
19 }
1 public class PassFailExam extends PassFailActivity
2 {
3 private double numQuestions;
4 private double pointsEach;
5 private double numMissed;
6 public PassFailExam(double questions, double missed, double minPass)
7 {
8 super(minPass);
9 numQuestions = questions;
10 numMissed = missed;
11 pointsEach = questions/100;
12 double numericScore = 100.0-(pointsEach *missed);
13 setScore(numericScore);
14 }
15 public double getPointsEach()
16 {
17 return pointsEach;
18 }
19 public double getMissed()
20 {
21 return numMissed;
22 }
23
24 }
1 public class finalExam extends GradedActivity
2 {
3 int numQuestions;
4
5 public finalExam(int questions)
6 {
7 setQuestions(questions);
8 }
9
10 public void setQuestions(int q)
11 {
12 numQuestions = q;
13 }
14
15 public int getQuestions()
16 {
17 return numQuestions;
18 }
19
20 public String toString()
21 {
22 return " Number of questions" + getQuestions();
23 }
24 }
1 public class Essay extends GradedActivity
2 {
3 double score;
4
5 public Essay(double grammer, double spelling, double correctlen, double content)
6 {
7 score = grammer + spelling + correctlen +content;
8 setScore(score);
9 }
10 }
need help on how to use singleton.. haven't really been taught. so i wrote this code earlier.. my question is-----> rewite this program so that the CourseGrades class is a Singleton. There should only ever be one of these objects instantiated at a time
Explanation / Answer
Singleton class is a class that creates the instance of class using the static method getInstance method.
The method returns the reference or object of the class.
------------------------------------------------------------------------------------------------------------------------------------------------------
Modified code is in bold letters
//CourseGrades.java
public class CourseGrades
{
GradedActivity[] grades = new GradedActivity[4];
/*Creta a static variable CourseGrades and set
to null */
private static CourseGrades instance = null;
/*CourseGrade object reference is created withing the getInstance
*class and returns the instance of the CourseGrades as result
*from the static method getInstace*/
public static CourseGrades getInstance()
{
if(instance == null)
{
//create an instance of CourseGrades class
instance = new CourseGrades();
}
//returns the reference of class CourseGrades
return instance;
}
public void setLab(GradedActivity grade)
{
grades[0] = grade;
}
public void setPassFailExam(PassFailExam failExam)
{
grades[1] = failExam;
}
public void setEssay(Essay essay)
{
grades[2] = essay;
}
public void setFinalExam(finalExam finalexam)
{
grades[3] = finalexam;
}
public double getAverage()
{
double sum = 0.0;
for(GradedActivity g : grades){
sum += g.getScore();
}
return sum/grades.length;
}
public GradedActivity getHighest()
{
double max = Double.MIN_VALUE;
GradedActivity output = null;
for(GradedActivity g : grades)
{
if(g.getScore() > max)
{
output = g;
max = g.getScore();
}
}
return output;
}
public GradedActivity getLowest()
{
double min = Double.MAX_VALUE;
GradedActivity output = null;
for(GradedActivity g : grades)
{
if(g.getScore() < min)
{
output = g;
min = g.getScore();
}
}
return output;
}
public String toString()
{
return " Lab Activity " + grades[0].toString() +
" Pass Fail Exam "+ grades[1] .toString() +
" Essay " +grades[2].toString() +
" final Exam " +grades[3].toString();
}
}
-------------------------------------------------------------------------------------------------------------------------------------------------
//CourseGradeDemo.java
public class CourseGradeDemo
{
public static void main(String[] args)
{
GradedActivity gradedActivity = new GradedActivity();
gradedActivity.setScore(60);
PassFailExam passfailExam = new PassFailExam(100, 25, 60);
Essay essay = new Essay(25, 10, 10,10);
finalExam finalexam = new finalExam(50);
/*Call method getInstance to create an instance of Singleton
class CourseGrades
The method getInstance maintains the reference of the CourseGrades*/
CourseGrades coursegrade = CourseGrades.getInstance();
coursegrade.setLab(gradedActivity);
coursegrade.setPassFailExam(passfailExam);
coursegrade.setEssay(essay);
coursegrade.setFinalExam(finalexam);
System.out.println(coursegrade.toString());
System.out.println("Average grade score: " +coursegrade.getAverage());
GradedActivity highest = coursegrade.getLowest();
System.out.println("Highest Score: " + highest.getScore());
System.out.println("Highest grade: " + highest.getGrade());
GradedActivity low = coursegrade.getLowest();
System.out.println("lowest score : " + low.getScore());
System.out.println("lowest grade: " + low.getGrade());
}
}
------------------------------------------------------------------------------------------------------------------------------------------------------
Sample output:
Only modified classes are posted. rest of classes are same as before .
Lab Activity
Course Score 60.0
Course Grade D
Pass Fail Exam
Course Score 75.0
Course Grade P
Essay
Course Score 55.0
Course Grade F
final Exam
Number of questions50
Average grade score: 47.5
Highest Score: 0.0
Highest grade: F
lowest score : 0.0
lowest grade: F
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.