// File:Student.java // Student Class Definition import java.io.*; public class Student { private String Name; private int Hours,Points; // Default Constructor public Student() {Name=""; Hours=Points=0; } // Constructor with Name argument public Student(String StudentName) {Name=StudentName; Hours=Points=0; } // Constructor with Name, Hours and Points argument public Student(String StudentName,int NumHours,int NumPoints) {Name=StudentName; Hours=NumHours; Points=NumPoints; } // Initialize Name of Student public void SetName(String StudentName) {Name=StudentName;} // Update the class with a class record (#Hours,Grade in class 0..4) public void AddClass(int CourseHours,char Grade) {Hours+=CourseHours; if (Grade!='F') Points+=('E'-Character.toUpperCase(Grade))*CourseHours; } // Change a Grade (#Hours, Previous Grade, New Grade) public void ChangeGrade(int CourseHours,char OldGrade,char NewGrade) {Points+=(Character.toUpperCase(OldGrade)-Character.toUpperCase(NewGrade))*CourseHours;} // Remove a class from student's record (Hours, Grade) public void RemoveClass(int CourseHours,char Grade) {Hours-=CourseHours; if (Grade!='F') Points-=('F'-Character.toUpperCase(Grade))*CourseHours; } // Get Hours Completed public int HoursCompleted() {return(Hours);} // Get Student's GPA public double ComputeGPA() {if (Hours>0) return(1.0*Points/Hours); return(0); } // Get Student's GPA static double ComputeGPA(int Hours,int Points) {if (Hours>0) return(1.0*Points/Hours); return(0); } // Print Student Info public void PrintStudentInfo() throws java.io.IOException {System.out.println("\nStudent Name Hours GPA\n"); System.out.println(Name+FormattedOutput.IntegerToFormatString(Hours,13)+ FormattedOutput.DoubleToFormatString(ComputeGPA(Hours,Points),13)); } }