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

Java Assignment - GradeBookEntry Make GradeBookEntry an abstract class. Remove n

ID: 640822 • Letter: J

Question

Java

Assignment - GradeBookEntry

Make GradeBookEntry an abstract class. Remove numericGrade member variable.

Make getNumericGrade an abstract method. Add getData as an abstract method.

Make two subclasses of GradeBookEntry - HomeworkEntry and ExamEntry.

Exam has a curve. getNumericGrade should add the curve to the numericGrade.

Press down arrow for more assignment info.

Assignment cont.

HomeworkEntry can just return numericGrade as is.

Add appropriate constructors.

Add appropriate exception handling.

Here is the code:

import java.util.Scanner;

public class GradeBookEntry {

   private Person student;
   private String assessmentName;
   private int numericGrade;
  
   public GradeBookEntry( String assessmentName ){
       this.assessmentName = assessmentName;
   }

   public GradeBookEntry(Person student, String assessmentName) {
       this.student = student;
       this.assessmentName = assessmentName;
   }


   public GradeBookEntry() {
   }

   // The next six methods are just getters and setters
   // for the member variables of this class.
   public Person getStudent() {
       return student;
   }

   public void setStudent(Person person) {
       this.student = person;
   }

   public String getAssessmentName() {
       return assessmentName;
   }
  
   public int getNumericGrade(){
       return this.numericGrade;
   }

   public void setAssessmentName(String assessmentName) {
       this.assessmentName = assessmentName;
   }
  
   public String getLetterGrade(){
       GradeConverter converter = new GradeConverter();
       return converter.convertGrade(this.getNumericGrade());
   }

   public void printEntry(){
       System.out.println("Assignment: " + getAssessmentName() );
       System.out.println("For student: " + getStudent().getName() );
       System.out.println("Grade: " + getNumericGrade() );
       System.out.println("Letter Grade: " + getLetterGrade() );
   }
}

Explanation / Answer

GradeBookEntry.java

public abstract class GradeBookEntry {

public abstract int getNumericGrade();
        public abstract void getData();
       
}

ExamEntry.java

import java.io.Serializable;

public class ExamEntry extends GradeBookEntry implements Serializable
{
   
     private Person student;
private int numericGrade;
private String assessmentName;
       
// The next six methods are just getters and setters
// for the member variables of this class.

        public ExamEntry ()
        {
            student = new Person();
            numericGrade = 0;
            assessmentName = "";
        }
        public ExamEntry(Person initialStudent, String assessment, int grade, int examCurve)
        {
            this.setStudent(initialStudent);
            this.setAssessmentName(assessment);
            this.setNumericGrade(grade,examCurve);
        }
       
       
        public Person getStudent() {
return student;
}

public final void setStudent(Person student) {
this.student = student;
}

        @Override
public int getNumericGrade() {
            return numericGrade;
}

public final void setNumericGrade(int numericGrade, int curve)
        {
                // flat curve is the best this can do without a collection to work with
this.numericGrade = numericGrade + curve;
}

public String getAssessmentName() {
return assessmentName;
}

public final void setAssessmentName(String assessmentName) {
this.assessmentName = assessmentName;
}

public String getLetterGrade(){
GradeConverter converter = new GradeConverter();
return converter.convertGrade(numericGrade);
}

        @Override
public void getData(){
System.out.println(student.toString());

// instantiate a GradeConverter to get the letter grade.
GradeConverter converter = new GradeConverter();
System.out.println("Scored " + numericGrade );
System.out.println("Which is a: " + converter.convertGrade(numericGrade));
System.out.println("For assessment: " + assessmentName);
}
       
}
HomeWorkEntry.java

import java.io.Serializable;

public class HomeWorkEntry extends GradeBookEntry implements Serializable
{
     private Person student;
private int numericGrade;
private String assessmentName;

// The next six methods are just getters and setters
// for the member variables of this class.

        // add constructor here
       
        public HomeWorkEntry ()
        {
            student = new Person();
            numericGrade =0;
            assessmentName = "";
        }
       
        public HomeWorkEntry (Person initialStudent, int grade, String assessment)
        {
            this.setStudent(initialStudent);
            this.setAssessmentName(assessment);
            this.setNumericGrade(grade);
        }
       
        public Person getStudent() {
return student;
}

public final void setStudent(Person student) {
this.student = student;
}

        @Override
public int getNumericGrade() {
return numericGrade;
}

public final void setNumericGrade(int numericGrade) {
this.numericGrade = numericGrade;
}

public String getAssessmentName() {
return assessmentName;
}

public final void setAssessmentName(String assessmentName) {
this.assessmentName = assessmentName;
}

public String getLetterGrade(){
GradeConverter converter = new GradeConverter();
return converter.convertGrade(numericGrade);
}

        @Override
public void getData(){
System.out.println(student.toString());

// instantiate a GradeConverter to get the letter grade.
GradeConverter converter = new GradeConverter();
System.out.println("Scored " + numericGrade );
System.out.println("Which is a: " + converter.convertGrade(numericGrade));
System.out.println("For assignment: " + assessmentName);
}
   
}


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