// File:Student.cpp // Student Class Definition #include "Student.h" #include #include // Need for strcpy #include // Need for toupper #include // Need for setw in cout // Default Constructor Student::Student() {strcpy(Name,""); Hours=Points=0; } // Constructor with argument Student::Student(char StudentName[]) {strcpy(Name,StudentName); Hours=Points=0; } // Initialize Name of Student void Student::SetName(char StudentName[]) {strcpy(Name,StudentName);} // Update the class with a class record (#Hours,Grade in class 0..4) void Student::AddClass(int CourseHours,char Grade) {Hours+=CourseHours; if (Grade!='F') Points+=('E'-toupper(Grade))*CourseHours; } // Change a Grade (#Hours, Previous Grade, New Grade) void Student::ChangeGrade(int CourseHours,char OldGrade,char NewGrade) {Points+=(toupper(OldGrade)-toupper(NewGrade))*CourseHours;} // Remove a class from student's record (Hours, Grade) void Student::RemoveClass(int CourseHours,char Grade) {Hours-=CourseHours; if (Grade!='F') Points-=('F'-toupper(Grade))*CourseHours; } // Get Hours Completed int Student::HoursCompleted() const {return(Hours);} // Print Student Info void Student::PrintStudentInfo() {cout << "\nStudent Name Hours GPA\n"; cout.setf(ios::showpoint); cout.precision(2); cout << setiosflags(ios::left) << setw(20) << Name; cout.setf(ios::right); cout << setw(4) << Hours << setw(10) << ComputeGPA() << endl; } // Get Student's GPA float Student::ComputeGPA() const {if (Hours>0) return(float(Points)/Hours); return(0); }