第十一周项目——Time类中的运算符重载
来源:互联网 发布:电脑cpu评测软件 编辑:程序博客网 时间:2024/05/28 11:51
- /*
- *Copyright (c) 2015,烟台大学计算机学院
- *All rights reserved.
- *文件名称:text.cpp
- *作者:李德彪
- *完成日期:2015年5月16日
- *版本号:v1.0
- *
- *问题描述: 实现time类的运算符重载
- *输入描述: 无
- *程序输出: 求time类运算符重载后的结果
- */
- #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);
- void display();
- bool operator >(CTime &t);
- bool operator <(CTime &t);
- bool operator >=(CTime &t);
- bool operator <=(CTime &t);
- bool operator ==(CTime &t);
- bool operator !=(CTime &t);
- CTime operator +(CTime &t);
- CTime operator -(CTime &t);
- CTime operator +(int s);
- CTime operator -(int s);
- CTime &operator +=(CTime &c);
- CTime &operator -=(CTime &c);
- CTime &operator +=(int s);
- CTime &operator -=(int s);
- CTime operator ++(int );
- CTime operator ++();
- CTime operator --(int );
- CTime operator --();
- };
- CTime::CTime (int h,int m,int s):hour(h),minute(m),second(s)
- {
- }
- void CTime::setTime(int h,int m,int s)
- {
- minute=m;
- hour=h;
- second=s;
- }
- void CTime::display()
- {
- cout<<hour<<":"<<minute<<":"<<second<<endl;
- }
- bool CTime::operator >(CTime &t)
- {
- if(hour>t.hour)return true;
- if(hour<t.hour)return false;
- if(minute>t.minute)return true;
- if(minute<t.minute)return false;
- if(second>t.second)return true;
- if(second<t.second)return false;
- }
- bool CTime::operator <(CTime &t)
- {
- if(hour>t.hour)return false;
- if(hour<t.hour)return true;
- if(minute>t.minute)return false;
- if(minute<t.minute)return true;
- if(second>t.second)return false;
- if(second<t.second)return true;
- }
- bool CTime::operator >=(CTime &t)
- {
- if(*this<t)return false;
- return true;
- }
- bool CTime::operator <=(CTime &t)
- {
- if(*this>t)return false;
- return true;
- }
- bool CTime::operator ==(CTime &t)
- {
- if(*this<t||*this>t)return false;
- return true;
- }
- bool CTime::operator !=(CTime &t)
- {
- if(*this>t||*this<t)return true;
- return false;
- }
- //当两个不规范的时间相加时可以用此方法
- CTime CTime::operator +(CTime &t)
- {
- int h,m,s;
- h=hour+t.hour;
- m=minute+t.minute;
- s=second+t.second;
- if(s>=60){
- s=s%60;
- m=m+s/60;
- }
- if(m>=60){
- m=m%60;
- h=h+m/60;
- }
- if(h>=24)
- h=h%24;
- CTime tt(h,m,s);
- return tt;
- }
- //当两个规范的时间相减时可以用此方法
- CTime CTime::operator -(CTime &t)
- {
- int h,m,s;
- s=second-t.second;
- m=minute-t.minute;
- h=hour-t.hour;
- if (s<0)
- {
- s+=60;
- m--;
- }
- if (m<0)
- {
- m+=60;
- h--;
- }
- if (h<0) h+=24;
- CTime tt(h,m,s);
- return tt;
- }
- CTime CTime::operator +(int s)
- {
- int ss=s%60;
- int mm=(s/60)%60;
- int hh=s/3600;
- CTime t0(hh,mm,ss);
- return *this+t0;
- }
- CTime CTime::operator -(int s)
- {
- int ss=s%60;
- int mm=(s/60)%60;
- int hh=s/3600;
- CTime t0(hh,mm,ss);
- return *this-t0;
- }
- CTime &CTime::operator +=(CTime &c)
- {
- *this=*this+c;
- return *this;
- }
- CTime &CTime::operator -=(CTime &c)
- {
- *this=*this-c;
- return *this;
- }
- CTime &CTime::operator +=(int s)
- {
- *this=*this+s;
- return *this;
- }
- CTime &CTime::operator -=(int s)
- {
- *this=*this-s;
- return *this;
- }
- CTime CTime::operator ++(int )
- {
- CTime t=*this;
- *this=*this+1;
- return t;
- }
- CTime CTime::operator ++()
- {
- *this=*this+1;
- return *this;
- }
- CTime CTime::operator --(int )
- {
- CTime t=*this;
- *this=*this-1;
- return t;
- }
- CTime CTime::operator --()
- {
- *this=*this-1;
- return *this;
- }
- int main()
- {
- CTime t1(12,22,31),t2(19,20,55),t;
- cout<<"t1为:";
- t1.display();
- cout<<"t2为:";
- t2.display();
- if (t1>t2) cout<<"t1>t2"<<endl;
- if (t1<t2) cout<<"t1<t2"<<endl;
- if (t1==t2) cout<<"t1=t2"<<endl;
- if (t1!=t2) cout<<"t1≠t2"<<endl;
- if (t1>=t2) cout<<"t1≥t2"<<endl;
- if (t1<=t2) cout<<"t1≤t2"<<endl;
- t=t1+t2;
- t=t1-t2;
- t=t1+3000;
- t=t1-7000;
- t1+=t2;
- t1-=t2;
- t1+=3000;
- t1-=7000;
- return 0;
- }
0 0
- 第十一周项目50-Time类中的运算符重载
- 第十一周项目——Time类中的运算符重载
- 第十一周——实现类中的运算符重载
- 第十一周项目49-实现类中的运算符重载
- 第十一周项目48-运算符重载
- 第十一周项目1-分数类中的运算符重载(1)
- 第十周上机项目2-Time类中的运算符重载
- 【项目2-Time类中的运算符重载】实现Time类中的运算符重载
- 第十二周上机时间项目——项目2-Time类中的运算符重载
- 第九周项目二——Time类中的运算符重载(利用输入输出运算符重载)
- 第十一周项目47-运算符重载的实现
- 第八周项目二——Time类中的运算符重载
- 第八周上机实践项目——Time类中的运算符重载
- 第八周(项目二)——Time类中的运算符重载。
- 第九周(项目二)——Time类中的运算符重载。
- C++项目——实现Time类中的运算符重载
- 第八周项目2——time类中的运算符重载
- 第八周上机实践项目2——Time类中的运算符重载
- Android之解决aidl里面函数参数太大不能跨进程通信的问题
- Sublime Text2插件之 - JSON格式化
- Python模拟登陆
- 华中农业大学第四届程序设计大赛网络同步赛 Arithmetic Sequence
- spring——控制反转简单例子
- 第十一周项目——Time类中的运算符重载
- cv::Mat& dst 这名话从语法是怎么理解?
- js中使用for 循环和 for in 遍历数组区别
- OpenGL ES Shader相关API 总结【5】——VBO与VAO的作用与关系
- css图片变色变暗变亮
- 第12周项目1——实现复数类的运算符重载
- 数据挖掘实习面经
- Perl printf 函数
- vs2013下编写你的第一个CUDA程序