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

So i can not figure out this question at all. Everytime i try and add a interfac

ID: 3623242 • Letter: S

Question

So i can not figure out this question at all. Everytime i try and add a interface to my code it says cannot inherit interface to class b/c the class is not abstract.

The question is

Modify the CourseGrades class you 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 the highest numeric score in the array. And the getLowest should return the lowest numeric score.

Here is my sample code from Problem 5. Everything compiles and runs perfect with number 5.

package coursegradedemo;

public class Main {

public static void main(String[] args)
{
//Calling all classes
CourseGrades courseGrades = new CourseGrades();
Lab lab = new Lab();
PassFailExam passFail = new PassFailExam();
Essay essay = new Essay();
FinalExam finalExam = new FinalExam();

// 85
lab.setScore(85);
// 20 questions, 3 missed
passFail.setScore(17);
// grammar = 25, spelling = 18, length = 17, content = 20
essay.setScore(25, 18, 17, 20);
finalExam.setScore(40); // 50 questions, 10 missed


//Here I assign the values to each individual class
courseGrades.setLab(lab);
courseGrades.setPassFailExam(passFail);
courseGrades.setEssay(essay);
courseGrades.setFinalExam(finalExam);

//This prints out the individuals grades.
//Calls this information from CourseGrades
System.out.print(courseGrades.toString());



}

}
------------------------------------------------------------------------------------------------------

package coursegradedemo;



public class CourseGrades

{
//The array is created here
private GradedActivity[] grades;
private static int NUM_GRADES = 4;

public CourseGrades()
{
grades = new GradedActivity[NUM_GRADES];
}

//Values for each grade is assigned to the array

public void setLab(Lab 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;
}



//This Creates what the user will see printed on the window.
public String toString()
{
String result;

result = "Lab Score: " + grades[0].getScore() + " Grade: " + grades[0].getGrade() + " 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;
}
}
__________________________________________________________________________
package coursegradedemo;

//This is the Parent Class. This class is used to assign Letter grades and
//pass/fail grades to assignments....
public class GradedActivity
{
public double score;


public void setScore(double s)
{
score = s;
}

public double getScore()
{
return score;
}


// Assigns a letter grade.
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;
}

}
____________________________________________________________________________

package coursegradedemo;

//This Class Demonstrates a students grade on an essay.
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)
{
//This Adds all the individual grade up.
score = gr + sp + len + cnt;
}

private void setGrammar(double g)
{
grammar = g;
}

private void setSpelling(double s)
{
spelling = s;
}

private void setCorrectLength(double c)
{
correctLength = c;
}

private void setContent(double c)
{
content = c;
}

public double getGrammar()
{
return grammar;
}

public double getSpelling()
{
return spelling;
}

public double getCorrectLength()
{
return correctLength;
}

public double getScore()
{
return score;
}
}
_____________________________________________________________________________


package coursegradedemo;

public class FinalExam extends GradedActivity

{
public void setScore(int questionCorrect)
{
// 50 questions, therefore 2 points each
score = questionCorrect * 2;
}

public double getScore()
{
return score;
}


}
____________________________________________________________________________

package coursegradedemo;

//Simple class for Lab grade. Creates a value and stores it.
public class Lab extends GradedActivity

{
public void setScore(double sc)
{
score = sc;
}

public double getScore()
{
return score;
}

}
_____________________________________________________________________________

package coursegradedemo;

//Pass/Fail class. Takes the questions correct, finds the letter grade
//and assigns P or F for the final grade.

public class PassFailExam extends GradedActivity
{

public void setScore(int questionCorrect)
{
// 20 questions, therefore 5 points each
// Find the Score.
score = questionCorrect * 5;
}
//A P or F is assigned.
public char getGrade()
{
char letterGrade;

if(score >= 70)
{
letterGrade = 'P';
}
else
{
letterGrade = 'F';
}

return letterGrade;
}

public double getScore()
{
return score;
}

}
____________________________________________________________________________



Thanx

Explanation / Answer

It says it can't inherit the interface because you're not implementing all the methods.

First, declare the class to implement the interface.

public class CourseGrades implements Analyzable

Next, implement in CourseGrades all methods declared in Analyzable.

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;
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote