Source of timevector.cpp


  1: /** @file timevector.cpp */

  3: #include <iostream>
  4: #include <typeinfo>
  5: using namespace std;

  7: #include "utilities.h"
  8: using Scobey::Pause;
  9: using Scobey::RandomGenerator;

 11: #include "time.h"
 12: #include "zonetime.h"

 14: int main()
 15: {
 16:     cout << "\nThis program first creates a vector of pointers to "
 17:         "randomly created times, each\nof which is either a Time object, "
 18:         "or a ZoneTime object, and then displays each\nof these times.\n";
 19:     Pause();

 21:     RandomGenerator g;
 22:     vector<Time*> v;
 23:     Time* timePtr;

 25:     int numberOfTimes = g.getNextInt(3, 7);
 26:     cout << "\nThe number of times generated will be "
 27:         << numberOfTimes << ".\n";
 28:     Pause();

 30:     for (int i=1; i<=numberOfTimes; i++)
 31:     {
 32:         if (g.getNextInt(0, 1) == 1)
 33:         {
 34:             timePtr = new Time(g.getNextInt(0, 23),
 35:                                g.getNextInt(0, 59),
 36:                                g.getNextInt(0, 59));
 37:             v.push_back(timePtr);
 38:         }
 39:         else
 40:         {
 41:             timePtr = new ZoneTime(g.getNextInt(0, 23),
 42:                                    g.getNextInt(0, 59),
 43:                                    g.getNextInt(0, 59),
 44:                                    (ZoneType)g.getNextInt(0, 7));
 45:             v.push_back(timePtr);
 46:         }
 47:     }

 49:     cout << "\nNow we display the " << v.size() << " times.\n";
 50:     Pause();
 51:     vector<Time*>::size_type index;
 52:     for (index=0; index<v.size(); index++)
 53:     {
 54:         v.at(index)->display();
 55:         cout << endl;
 56:     }
 57:     Pause();

 59:     cout << "Finally, we return the storage for the time values "
 60:         "to the heap.\n";
 61:     Pause();
 62:     for (index=0; index<v.size(); index++)
 63:         delete v.at(index);
 64: }