您的位置:首页 > 其它

第5章课堂作业

2015-05-12 19:45 134 查看
#include <iostream.h>

class Time{

public:

Time(){}

Time(int h,int m,int s)

{

hour=h;

minute=m;

second=s;

}

friend istream & operator>>(istream &,Time &);

friend ostream & operator<<(ostream &,Time &);

void operator =(Time &);

friend bool operator >(Time &t1,Time &t2);

friend bool operator <(Time &t1,Time &t2);

friend bool operator ==(Time &t1,Time &t2);

friend void compare(Time &,Time &);

void show()

{

cout<<hour<<":"<<minute<<":"<<second<<endl;

}

int hour;

int minute;

int second;

};

istream & operator>>(istream &input,Time &t1)

{

input>>t1.hour>>t1.minute>>t1.second;

return input;

}

ostream & operator<<(ostream &output,Time &t1)

{

output<<t1.hour<<":"<<t1.minute<<":"<<t1.second;

return output;

}

void Time::operator =(Time & t1)

{

hour=t1.hour;

minute=t1.minute;

second=t1.second;

}

bool operator >(Time &t1,Time &t2)

{

if(t1.hour>t2.hour)

return true;

else if(t1.hour==t2.hour&&t1.minute>t2.minute)

return true;

else if(t1.hour==t2.hour&&t1.minute>t2.minute&&t1.second>t2.second)

return true;

else

return false;

}

bool operator <(Time &t1,Time &t2)

{

if(!operator >(t1,t2))

return true;

else

return false;

}

bool operator ==(Time &t1,Time &t2)

{

if(t1.hour==t2.hour&&t1.minute==t2.minute&&t1.second==t2.second)

return true;

else

return false;

}

void compare(Time &t1,Time &t2)

{

if(operator>(t1,t2))

cout<<"t1>t2";

if(operator<(t1,t2))

cout<<"t1<t2";

if(operator==(t1,t2))

cout<<"t1=t2";

}

class Date{

public:

Date(){}

Date(int y,int mo,int d)

{

year=y;

month=mo;

day=d;

}

void get_value()

{

cin>>year>>month>>day;

}

void show()

{

cout<<year<<"-"<<month<<"-"<<day<<endl;

}

protected:

int year;

int month;

int day;

};

class DateTime:public Date,public Time

{

public:

DateTime(){}

DateTime(int y,int mo,int d,int h,int m,int s):Date(y,mo,d),Time(h,m,s){}

DateTime operator -(DateTime &c2);

DateTime operator +(Time &t1);

DateTime operator -(Time &t1);

void show()

{

cout<<year<<"-"<<month<<"-"<<day<<" "<<hour<<":"<<minute<<":"<<second<<endl;

}

};

DateTime DateTime::operator -(DateTime &c2)

{

DateTime c3;

c3.year=year-c2.year;

c3.month=month-c2.month;

c3.day=day-c2.day;

c3.hour=hour-c2.hour;

c3.minute=minute-c2.minute;

c3.second=second-c2.second;

return c3;

}

DateTime DateTime::operator +(Time &t1)

{

DateTime c3;

c3.year=year;

c3.month=month;

c3.day=day;

c3.hour=hour+t1.hour;

c3.minute=minute+t1.minute;

c3.second=second+t1.second;

return c3;

}

DateTime DateTime::operator -(Time &t1)

{

DateTime c3;

c3.year=year;

c3.month=month;

c3.day=day;

c3.hour=hour-t1.hour;

c3.minute=minute-t1.minute;

c3.second=second-t1.second;

return c3;

}

int main()

{

Time t1(12,20,30),t2(10,21,25);

cout<<"时间t1="<<t1<<endl;

cout<<"时间t2="<<t2<<endl;

Time t3,t4;

cout<<"输入时间t3:";

cin>>t3;

cout<<"时间t3="<<t3<<endl;

cout<<"时间t1赋值给时间t4"<<endl;

t4=t1;

cout<<"输出时间t4=";

t4.show();

cout<<"比较时间t1和时间t2:";

compare(t1,t2);

Date d1;

cout<<endl;

cout<<"输入日期d1:";

d1.get_value();

cout<<"输出日期d1=";

d1.show();

DateTime c1(1996,8,28,22,22,22),c2(1992,2,12,6,6,6);

DateTime c3,c4,c5;

cout<<"日期时间c3等于日期时间c1-c2:"<<endl;

c3=c1-c2;

cout<<"输出日期时间c3=";

c3.show();

cout<<"日期时间c4等于日期时间c1+时间t1:"<<endl;

c4=c1+t1;

cout<<"输出日期时间c4=";

c4.show();

cout<<"日期时间c5等于日期时间c1-时间t1:"<<endl;

c5=c1-t1;

cout<<"输出日期时间c5=";

c5.show();

return 0;

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: