#include "stdstuff.h" #include "Time.h" #include "AllTime.h" void realMain () { AllTimeList list(10); String2002 name; Time time; int option; bool found; for (;;) { // get user option cout << endl << "1 - add new swimmer 2 - report time\n" << "3 - look up time 4 - output list\n" << "5 - quit Enter Option: "; cin >> option; switch (option) { case 1: cout << "\nEnter swimmer's name: "; cin >> ws; // make sure we don't just get the tail end of the last line getline(cin, name, '\n'); cout << "Enter swimmer's best ever time: (HH MM SS) "; cin >> time; try { list.add (name, time); cout << "Add operation succeeded.\n"; } catch (exception &e) { cout << "Add operation failed (" << e.what() << ").\n"; } break; case 2: cout << "\nEnter swimmer's name: "; cin >> ws; // make sure we don't just get the tail end of the last line getline(cin, name, '\n'); cout << "Enter swimmer's time: (HH MM SS) "; cin >> time; try { list.reportTime (name, time); cout << "Report operation succeeded.\n"; } catch (exception &e) { cout << "Report operation failed (" << e.what() << ").\n"; } break; case 3: cout << "\nEnter swimmer's name: "; cin >> ws; // make sure we don't just get the tail end of the last line getline(cin, name, '\n'); try { time = list.lookupTime (name); cout << "Look up succeeded. Time is " << time << ".\n"; } catch (exception &e) { cout << "Look up operation failed (" << e.what() << ").\n"; } break; case 4: cout << endl; for (found = list.startWalk (name, time); found; found = list.continueWalk (name, time)) { cout << time << " " << name << endl; } break; case 5: return; default: cout << "\nInvalid option ignored.\n"; break; } } } int main () { try { realMain (); } catch (exception &e) { // catches all uncaught exceptions cout << "\nException <" << e.what() << "> occurred.\n"; } pause (); return 0; }