|
// file CClock04.cpp // date 09/28/2007 // authors AOU #include <iostream> #include <ctime> using namespace std; int const TEST_COUNT = 20; class CClock { private: int hr; int min; int sec; public: CClock(void); // CClock myClock; void display(void); // myClock.display(); CClock(int h); // CClock myClock(5); CClock(int h, int m); // CClock myClock(5,1); CClock(int h, int m, int s); // CClock myClock(5,1,3); CClock(char ch); // CClock myClock('r'); bool isValid(void); // if(myClock.isValid()) ... bool isEqualTo(CClock t); // if (t1.isEqualTo(t2)) }; void driver_ConstructorRandom(void); void driver_isValid(void); void driver_isEqualTo(void); void main(void) { srand((unsigned int)time(NULL)); /* { CClock myClock; myClock.display(); } { CClock time2(4); time2.display(); } { CClock time2(4,6); time2.display(); } { CClock time2(-44,-66,188); time2.display(); } */ //driver_ConstructorRandom(); //driver_isValid(); driver_isEqualTo(); } void driver_isEqualTo(void) { for (int i=1; i<=TEST_COUNT; i++) { CClock time1('r'), time2('r'); cout << "time1= "; time1.display(); cout << "time2= "; time2.display(); if (time1.isEqualTo(time2)) cout << " Times are equal\n"; else cout << " Time are NOT equal\n"; time1 = time2; cout << "After time1 = time2;\n"; cout << "time1= "; time1.display(); cout << "time2= "; time2.display(); if (time1.isEqualTo(time2)) cout << " Times are equal\n"; else cout << " Time are NOT equal\n"; cout << "-------------------\n"; } } bool CClock::isEqualTo(CClock t) { if (this->hr != t.hr) return false; if (this->min != t.min) return false; if (this->sec != t.sec) return false; return true; } void driver_isValid(void) { { CClock time2(12); time2.display(); if (time2.isValid() == true) cout << " Time is good\n"; else cout << " Time is NOT good\n"; } { CClock time2(12,13); time2.display(); if (time2.isValid() == true) cout << " Time is good\n"; else cout << " Time is NOT good\n"; } { CClock time2(12,13,14); time2.display(); if (time2.isValid() == true) cout << " Time is good\n"; else cout << " Time is NOT good\n"; } for (int i=1; i<=TEST_COUNT; i++) { CClock time2('r'); time2.display(); if (time2.isValid() == true) cout << " Time is good\n"; else cout << " Time is NOT good\n"; } } bool CClock::isValid(void) { //check for hr if (hr < 0 || hr > 23) return false; //check for min if (min < 0 || min > 59) return false; //check for sec if (sec < 0 || sec > 59) return false; return true; } void driver_ConstructorRandom(void) { for (int i=1; i<=TEST_COUNT; i++) { CClock time2('r'); time2.display(); } } CClock::CClock(char ch) { //set a random hour hr = rand()%24; //set a random value for minute min = rand()%60; //set a random value for second sec = rand()%60; } CClock::CClock(int h, int m, int s) { if (h >= 0 && h <= 23) hr = h; else hr = 0; if (m >= 0 && m <= 59) min = m; else min = 0; if (s >= 0 && s <= 59) sec = s; else sec = 0; } CClock::CClock(int h, int m) { if (h >= 0 && h <= 23) hr = h; else hr = 0; if (m >= 0 && m <= 59) min = m; else min = 0; sec = 0; } CClock::CClock(int h) { if (h >= 0 && h <= 23) hr = h; else hr = 0; min = 0; sec = 0; } CClock::CClock(void) { hr = min = sec = 0; } void CClock::display(void) { if (hr<10) cout << '0'; cout << hr; cout << ':'; if (min<10) cout << '0'; cout << min ; cout << ':'; if (sec<10) cout << '0'; cout << sec; cout << endl; } |