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: }