// using Dev C++ under WinXP
#include <iostream>
#include <cstdlib>
using namespace std; //standard c++ style about namespace
//define ADT Time
class Time
{
public:
Time(); //default constructor
void setTime(int,int,int);//set time for hours,minutes,seconds
void printMilitary(void);//print time using army's style
void printStandard(void);//print time using standart style
private:
int hour; //0-23
int minute;//0-59
int second;//0-59
};
//constructor Time() initionalize every variable to 0
Time::Time(void)
{
hour=minute=second=0;
}
//set time
void Time::setTime(int h,int m,int s)
{
hour=(h>=0&&h<24)?h:0;
minute=(m>=0&&m<=59)?m:0;
second=(s>=0&&s<=59)?s:0;
}
//print using army's style
void Time::printMilitary(void)
{
cout<<(hour<10?"0":"")<<hour<<":"
<<(minute<10?"0":"")<<minute<<":"
<<(second<10?"0":"")<<second<<endl;
}
//print using standard style
void Time::printStandard(void)
{
cout<<((hour==0||hour==12)?12:hour%12)<<":"
<<(minute<10?"0":"")<<minute<<":"
<<(second<10?"0":"")<<second
<<(hour<12?"AM":"PM")<<endl;
}
//testing for simple class Time
int main(void)
{
Time t;
cout<<"The initial military time is:";
t.printMilitary();
cout<<"\nThe initial standard time is:";
t.printStandard();
t.setTime(13,27,6);
cout<<"\n\nMilitary time after set time is:";
t.printMilitary();
cout<<"\n\nStandard time after set time is:";
t.printStandard();
t.setTime(99,99,99);
cout<<"\n\nAfter attempting invalid settings:\n"
<<"Military time is:";
t.printMilitary();
cout<<"Standard time is:";
t.printStandard();
cout<<endl;
system("pause");
return(0);
}