Problem 2 Create a superclass named Student The student clas
Problem 2 Create a superclass named Student. The student class contains name of the student, midterm grade, a final grade, and the average grade.The average grade is obtained by adding the midterm grade to the final grade and dividing the result by 2. Then, create a subclass for students that receive a letter grade. The letter grade is distributed as follows: 90 and above = A; 80 and above = B; 70 and above = C; 60 and above = D; anything below 50 is F. Then, create a subclass for students that receive a Pass or Fail grade. Any student that receives a grade of 60 and above passes the class. Finally, create a test class for the programs above. The test class should prompt the user to enter a student\'s first name, middle name, last name, midterm grade, and final grade. The program then calculates the average grade as speceified in the preceding section.The program should also prompt the user to enter the category of the student (letter grade or pass/fail). After the student enters the above information, the program shoud ask the user if they would like to continue entering information for another student. If the user wishes to continue, the program prompts her/him again to enter the information specified above otherwise the program stops. The program then displays the following information for the student(s) whose information has been entered: First name, Middle name, Last Name, Category, and Grade.
Solution
Note:Could you please check the output .I can modify If you need any changes.Thank You
_________________________
Student.java
public class Student {
//Declaring instance variables
private String name;
private int midterm_grade;
private int final_grade;
private double average_grade;
//Parameterized constructor
public Student(String name, int midterm_grade, int final_grade)
{
this.name = name;
this.midterm_grade = midterm_grade;
this.final_grade = final_grade;
this.average_grade = (midterm_grade+final_grade)/2;
}
//Setters and getters
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getMidterm_grade() {
return midterm_grade;
}
public void setMidterm_gade(int midterm_grade) {
this.midterm_grade = midterm_grade;
}
public int getFinal_grade() {
return final_grade;
}
public void setFinal_grade(int final_grade) {
this.final_grade = final_grade;
}
public double getAverage_grade() {
return average_grade;
}
//toString() method is used to display the contents of an object
@Override
public String toString() {
return \"\ Student #\ Name=\" + getName() + \"\ Midterm Gade=\" + getMidterm_grade()
+ \"\ Final Grade=\" +getFinal_grade()+ \"Average Grade=\"
+ getAverage_grade();
}
}
____________________
GradeLetter.java
public class GradeLetter extends Student {
// Declaring variables
private char gradeLetter;
// Parameterized constructor
public GradeLetter(String name, int midterm_gade, int final_grade) {
super(name, midterm_gade, final_grade);
}
// Getter method which returns the grade letter based on the average grade
public char getGradeLetter() {
if (getAverage_grade() >= 90)
gradeLetter = \'A\';
else if (getAverage_grade() >= 80 && getAverage_grade() < 90)
gradeLetter = \'B\';
else if (getAverage_grade() >= 70 && getAverage_grade() < 80)
gradeLetter = \'C\';
else if (getAverage_grade() >= 60 && getAverage_grade() < 70)
gradeLetter = \'D\';
else if (getAverage_grade() < 60)
gradeLetter = \'F\';
return gradeLetter;
}
// toString() method is used to display the contents of an object
@Override
public String toString() {
System.out.println(super.toString());
return \"GradeLetter :\" + getGradeLetter();
}
}
________________________
Test.java
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
//Declaring variables
String firstname;
String middlename;
String lastname;
int midterm_grade;
int final_grade;
//Scanner cl;ass object is used to read the inputs entered by the user
Scanner sc=new Scanner(System.in);
//This loop continues to execute until the suer enters other than \'y\' or \'Y\'
while(true)
{
//Getting the first name entered by the user
System.out.print(\"\ Enter firstname :\");
firstname=sc.next();
//Getting the middle name entered by the user
System.out.print(\"Enter middlename :\");
middlename=sc.next();
//Getting the last name entered by the user
System.out.print(\"Enter lastname :\");
lastname=sc.next();
//Getting the midterm grade entered by the user
System.out.print(\"Enter Mid term grade :\");
midterm_grade=sc.nextInt();
//Getting the final term grade entered by the user
System.out.print(\"Enter Final Term grade :\");
final_grade=sc.nextInt();
//Concatenating the user name
String name=firstname+\" \"+middlename+\" \"+lastname;
//Creating the Grade Letter object by passing the inputs as arguments
GradeLetter g=new GradeLetter(name, midterm_grade, final_grade);
//Displaying the contents of GradeLetter object
System.out.println(g.toString());
//Getting the character from the user \'Y\' or \'y\' or \'N\' or \'n\'
System.out.print(\"Do you want to Enter Another Student Info(Y/N) ::\");
char ch = sc.next(\".\").charAt(0);
if(ch==\'Y\'||ch==\'y\')
continue;
else
{
System.out.println(\":: Program Exit ::\");
break;
}
}
}
}
______________________
Output:
Enter firstname :Williams
Enter middlename :H
Enter lastname :Kane
Enter Mid term grade :89
Enter Final Term grade :92
Student #
Name=Williams H Kane
Midterm Gade=89
Final Grade=92Average Grade=90.0
GradeLetter :A
Do you want to Enter Another Student Info(Y/N) ::y
Enter firstname :James
Enter middlename :P
Enter lastname :Roy
Enter Mid term grade :56
Enter Final Term grade :45
Student #
Name=James P Roy
Midterm Gade=56
Final Grade=45Average Grade=50.0
GradeLetter :F
Do you want to Enter Another Student Info(Y/N) ::n
:: Program Exit ::
_____________Thank You



