// 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;
}
|