Source of tt2a.cpp


  1: // Filenme: TESTIME2.CPP
  2: // Purpose: Illustrates a simple time class, with the class accessed
  3: //          from a separate header (.H) file and separately compiled
  4: //          object (.OBJ) file.  This driver tests the version of the
  5: //          Time class containing two constructors and two other functions.

  7: #include <iostream>
  8: using namespace std;

 10: #include "TIME2.H"
 11: #include "PAUSE.H"

 13: void GetTimeFromUser(Time&);
 14: Time IncrementedTime(const Time&, int);


 17: int main()
 18: {
 19:     cout << endl
 20:          << "This program illustrates the use "
 21:          << "of a simple time class with constructors. "  << endl
 22:          << "You should study the source code "
 23:          << "at the same time as the output. "            << endl
 24:          << endl;

 26:     Time t1(13, 21, 55);
 27:     Time t2;
 28:     t1.Display();  cout << endl;
 29:     t2.Display();  cout << endl;
 30:     Pause(0);      cout << endl;

 32:     Time t3 = t1;
 33:     Time t4;
 34:     for (int i = 1; i <= 17; i++)
 35:         t1.Increment();
 36:     t4 = t1;
 37:     t3.Display();  cout << endl;
 38:     t4.Display();  cout << endl;
 39:     Pause(0);      cout << endl;

 41:     Time myTime;
 42:     GetTimeFromUser(myTime);
 43:     myTime.Display();  cout << endl;
 44:     Pause(0);          cout << endl;

 46:     int numberOfSeconds;
 47:     cout << "Enter a number of seconds to increment the time: ";
 48:     cin >> numberOfSeconds;  cin.ignore(80, '\n');  cout << endl;
 49:     Time yourTime = IncrementedTime(myTime, numberOfSeconds);
 50:     yourTime.Display();  cout << endl;
 51:     Pause(0);            cout << endl;

 53:     IncrementedTime(yourTime, 71).Display();  cout << endl;
 54:     cout << endl;

 56:     return 0;
 57: }


 60: void GetTimeFromUser(/* out */ Time& t)
 61: // Pre:  none
 62: // Post: "t" contains a time value entered by the user from the keyboard.
 63: {
 64:     int hours;
 65:     int minutes;
 66:     int seconds;

 68:     cout << endl;
 69:     cout << "Enter the hours, minutes and "
 70:          << "seconds for a time. "               << endl
 71:          << "Enter the values in that order, "
 72:          << "separated by a blank space: ";
 73:     cin >> hours >> minutes >> seconds;  cin.ignore(80, '\n');
 74:     cout << endl;

 76:     t.Set(hours, minutes, seconds);
 77: }


 80: Time IncrementedTime(/* in */ const Time& t,
 81:                      /* in */ int numberOfSeconds)
 82: // Pre:  "t" contains a valid time value.
 83: // Post: The return-value of the function is the time value obtained
 84: //       by incrementing "t" by numberOfSeconds seconds.  The value
 85: //       of "t" itself is unchanged.
 86: {
 87:     Time tempTime = t;

 89:     for (int i = 1; i <= numberOfSeconds; i++)
 90:         tempTime.Increment();

 92:     return tempTime;
 93: }