Time类中的运算符重载
2014-04-20 09:46
204 查看
/* * 程序的版权和版本声明部分 * Copyright (c)2014, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称: fibnacci.cpp * 作 者:高古尊 * 完成日期:2014年4月20日 * 版本号: v1.0 * * 输入描述: * 问题描述: * 程序输出: * 问题分析: */ #include <iostream> using namespace std; class CTime { private: unsigned short int hour; // 时 unsigned short int minute; // 分 unsigned short int second; // 秒 public: CTime(int h=0,int m=0,int s=0); void setTime(int h,int m,int s); //二目的比较运算符重载 bool operator > (CTime &t); bool operator < (CTime &t); bool operator >= (CTime &t); bool operator <= (CTime &t); bool operator == (CTime &t); bool operator != (CTime &t); //二目的加减运算符的重载 //返回t规定的时、分、秒后的时间,例t1(8,20,25),t2(11,20,50),t1+t2为:41:15 CTime operator+(CTime &t); CTime operator-(CTime &t);//对照+理解 CTime operator+(int s);//返回s秒后的时间 CTime operator-(int s);//返回s秒前的时间 //二目赋值运算符的重载 CTime operator+=(CTime &c); CTime operator-=(CTime &c); CTime operator+=(int s);//返回s秒后的时间 CTime operator-=(int s);//返回s秒前的时间 void disple(); }; //下面实现所有的运算符重载代码。 //自行编制用于测试的main()函数,有些结果不必依赖display()函数,提倡用单步执行查看结果 int main( ) { char ch; CTime t1,t2,t3; int hour,miunte,second; cout<<"请输入两个时间:"; cin>>hour>>ch>>miunte>>ch>>second; t1.setTime(hour,miunte,second); cin>>hour>>ch>>miunte>>ch>>second; t2.setTime(hour,miunte,second); cout<<"比较两个时间的大小:\n"; if(t1>t2) cout<<"时间1大于时间2;\n"; if(t1<t2) cout<<"时间1小于时间2;\n"; if(t1==t2) cout<<"时间1等于时间2。\n"; cout<<"时间的运算:\n"; cout<<"加法运算;\n"; t3=(t1+t2); cout<<"t3=t1+t2="; t3.disple(); cout<<"减法运算;\n"; cout<<"t3=t2-t1="; t3=t2-t1; t3.disple(); return 0; } //下面定义两个类中的成员函数,要求不得再增加成员函数 //注意体会在Time的成员函数中可以调用Date类的私有数据成员 CTime::CTime(int h,int m,int s) { hour=h; minute=m; second=s; } void CTime::setTime(int h,int m,int s) { hour=h; minute=m; second=s; } bool CTime::operator > (CTime &t) { if(hour>t.hour||(hour==t.hour&&minute>t.minute)||(hour==t.hour&&minute==t.minute&&second>t.second)) return true; else return false; } bool CTime::operator < (CTime &t) { if(hour<t.hour||(hour==t.hour&&minute<t.minute)||(hour==t.hour&&minute==t.minute&&second<t.second)) return true; else return false; } bool CTime::operator >= (CTime &t) { if(*this>t||*this==t) return true; else return false; } bool CTime::operator <= (CTime &t) { if(*this<t||*this==t) return true; else return false; } bool CTime::operator == (CTime &t) { if(*this<t&&*this>t) return true; else return false; } bool CTime::operator != (CTime &t) { if(*this>t||*this<t) return true; else return false; } CTime CTime::operator+(CTime &d) { CTime c; c.second=(second+d.second); c.minute=(minute+d.minute); c.hour=(hour+d.hour); if(c.second>=60) ++c.minute,c.second-=60; if(c.minute>=60) ++c.hour,c.minute-=60; if(c.hour>=24) c.hour-=24; return c; } CTime CTime::operator-(CTime &t)//对照+理解 { CTime c; c.second=(second-t.second); c.minute=(minute-t.minute); c.hour=(hour-t.hour); if(c.second<=0) --c.minute,c.second+=60; if(c.minute<=0) --c.hour,c.minute+=60; if(c.hour<=0) c.hour+=24; return c; } CTime CTime::operator+(int s)//返回s秒后的时间 { CTime c; c=*this; c.second+=s; if(c.second>=60) ++c.minute,c.second-=60; if(c.minute>=60) ++c.hour,c.minute-=60; if(c.hour>=24) c.hour-=24; return c; } CTime CTime::operator-(int s)//返回s秒前的时间 { CTime c; c=*this; c.second-=s; if(c.second<=0) --c.minute,c.second+=60; if(c.minute<=0) --c.hour,c.minute+=60; if(c.hour<=0) c.hour+=24; return c; } CTime CTime::operator+=(int s)//返回s秒后的时间 { *this.second+=s return *this; } CTime CTime::operator-=(int s)//返回s秒前的时间 { *this.second-=s; return *this; } CTime CTime::operator+=(CTime &d) { *this=*this+d; return *this; } CTime CTime::operator-=(CTime &t)//对照+理解 { *this=*this-t; return *this; } void CTime::disple() { cout<<hour<<':'<<minute<<':'<<second<<endl; }
相关文章推荐
- 第九周项目2-Time类中的运算符重载(续)
- 第十一周项目——Time类中的运算符重载
- 第十二周项目2-Time类中的运算符重载
- Time类的运算符重载
- 第八周项目2——time类中的运算符重载
- Time类中的运算符重载(续)
- 第九周 项目2-Time类中的运算符重载(续)(2)
- 第12周第二项目——Time类的运算(运算符重载)
- 第十二周上机时间项目——项目2-Time类中的运算符重载
- Time类中运算符重载
- 第八周 项目2 Time类中的运算符重载
- Time类中的运算符重载
- 第8周项目2-Time类中的运算符重载
- 第9周项目2-Time类中的运算符重载(续)
- Time类中的运算符重载
- 第12周项目2——Time类中的运算符重载
- Time类中的运算符重载
- Time类中的运算符重载
- 第九周项目二——Time类中的运算符重载(利用输入输出运算符重载)
- 第八周项目2-Time类中的运算符重载