// File: Stud_tst.cpp // Test student class #include "StudentVector.h" #include "Char_ops.h" #include using namespace std; char StudentMenu(); char mainMenu(); void AddClass(Student &); void ChangeClass(Student &); void RemoveClass(Student &); void SetStudentName(Student &); void main() {StudentList theStudents; char Choice,selection; string name=""; ifstream Data; Student *theStudent; do { switch(selection=mainMenu()) { case 'A':cin >> theStudents; break; case 'E':cout << "Enter Student Name >"; getline(cin,name); theStudent=theStudents.getStudentByName(name); if (theStudent) do { cin.ignore(80,'\n'); cout << "\nStudent Name Hours GPA\n"; cout << *theStudent; switch (Choice=StudentMenu()) { case 'A':AddClass(*theStudent);break; case 'C':if (theStudent->HoursCompleted()) ChangeClass(*theStudent);break; case 'R':if (theStudent->HoursCompleted()) RemoveClass(*theStudent);break; case 'P':cout << "\nStudent Name Hours GPA\n"; cout << (*theStudent); break; case 'H':cout << "Hours Completed:" << theStudent->HoursCompleted() << endl; break; case 'S':SetStudentName(*theStudent);break; } } while (Choice!='E'); break; case 'I':Data.open("Students.dat"); if (!Data.fail()) Data>>theStudents; Data.close(); break; case 'P':cout << "\nStudent Name Hours GPA\n"; cout << theStudents; } } while (selection!='Q'); /* cout << theStudent; Student S2("ABCD",10,30); cout << "New Student:\n" << S2 << endl; if (theStudent>>=S2) cout << "1st Student has a higher GPA"; else cout << "2nd Student has a higher GPA"; cout.flush(); // Need it again!*/ } char mainMenu() {cout << "\nSelect:\n"; cout << "\tA)dd a Student\n"; cout << "\tE)dit a Student\n"; cout << "\tP)rint the Students\n"; cout << "\tI)nput a list of Students from a File\n"; cout << "\tQuit the Program\n"; cout.flush(); return(GetChoice("AEPIQ")); } char StudentMenu() {cout << "\nSelect:\n"; cout << "\tA)dd Class\n"; cout << "\tC)hange Grade\n"; cout << "\tR)emove Class\n"; cout << "\tP)rint Student\n"; cout << "\tH)ours Completed\n"; cout << "\tS)tudent Name\n"; cout << "\tE)xit this Student\n"; cout.flush(); // Need this in VS C++ return (GetChoice("ACRPHSE")); } void SetStudentName(Student &S) {char Name[NameLength]; cout << "Enter Student Name >"; cout.flush(); cin >> Name; S.SetName(Name); } void AddClass(Student &S) {CourseData data; cout << "#Hours? >"; cout.flush(); cin >> data.Hours; cout << "Grade? (A-D,F) >"; cout.flush(); data.Grade=GetChoice("ABCDF");; S+=data; } void ChangeClass(Student &S) {int Hours; char OldGrade,NewGrade; cout << "#Hours? >"; cout.flush(); cin >> Hours; cout << "Old Grade? (A-D,F) >"; cout.flush(); OldGrade=GetChoice("ABCDF"); cout << "New Grade? (A-D,F) >"; cout.flush(); NewGrade=GetChoice("ABCDF");; S.ChangeGrade(Hours,OldGrade,NewGrade); } void RemoveClass(Student &S) {CourseData data; cout << "#Hours? >"; cout.flush(); cin >> data.Hours; cout << "Grade? (A-D,F) >"; cout.flush(); data.Grade=GetChoice("ABCDF");; S-=data; }