CClock03
Home ] Up ]

 

// file CClock03.cpp
// date 09/26/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);
  };


void driver_ConstructorRandom(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();

  }


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