第九周——时间类和输入输出运算符的重载
来源:互联网 发布:java 读取内存 编辑:程序博客网 时间:2024/05/02 15:29
#include<iostream>using namespace std;class CTime{private: int hour; // 时 int minute; // 分 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); //二目的加减运算符的重载 //返回t规定的时、分、秒后的时间, //例t1(8,20,25),t2(11,20,50),t1+t2为:19: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秒前的时间 //一目运算符的重载CTime operator++(int);//后置++,下一秒CTime operator++();//前置++,下一秒,前置与后置返回值不一样CTime operator--( int);//后置--,前一秒CTime operator--();//前置--,前一秒friend ostream& operator<< (ostream& output, CTime& c); friend istream& operator>> (istream& input,CTime& c);};//下面实现所有的运算符重载代码。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)return true;elsereturn false;if(minute>t.minute)return true;elsereturn false;if(second>t.second)return true;elsereturn false;}bool CTime::operator < (CTime &t){ if(hour<t.hour)return true;elsereturn false;if(minute<t.minute)return true;elsereturn false;if(second<t.second)return true;elsereturn false;}bool CTime::operator >= (CTime &t){if(hour>=t.hour)return true;elsereturn false;if(minute>=t.minute)return true;elsereturn false;if(second>=t.second)return true;elsereturn false;}bool CTime::operator <= (CTime &t){if(hour<=t.hour)return true;elsereturn false;if(minute<=t.minute)return true;elsereturn false;if(second<=t.second)return true;elsereturn false;}bool CTime::operator == (CTime &t){if(hour==t.hour)return true;elsereturn false;if(minute==t.minute)return true;elsereturn false;if(second==t.second)return true;elsereturn false;}bool CTime::operator != (CTime &t){if(hour!=t.hour)return true;elsereturn false;if(minute!=t.minute)return true;elsereturn false;if(second!=t.second)return true;elsereturn false;}CTime CTime::operator+(CTime &t){int s,m,h; s=second+t.second;m=minute+t.minute;h=hour+t.hour; while(s>=60) { s-=60; m++; } while(m>=60) { m-=60; h++; } while(h>=24) h-=24; CTime t1(h,m,s);return t1;}CTime CTime::operator-(CTime &t){int s,m,h; s=second-t.second;m=minute-t.minute;h=hour-t.hour; if(s<0) { s+=60; m--; } if(m<0) { m+=60; h--; } while(h<0) h+=24; CTime t1(h,m,s);return t1;}CTime CTime::operator+(int s){ int sec,min,hou;sec=s%60;min=(s/60)%60;hou=s/3600;CTime t(hou,min,hou);return *this+t;}CTime CTime::operator-(int s){ int sec,min,hou;sec=s%60;min=(s/60)%60;hou=s/3600;CTime t(hou,min,hou);return *this-t;}CTime CTime::operator+=(CTime &t){second+=t.second;minute+=t.minute;hour+=t.hour; while(second>=60) { second-=60; minute++; } while(minute>=60) { minute-=60; hour++; } while(hour>=24) hour-=24;CTime t1(hour,minute,second);return t1;}CTime CTime::operator-=(CTime &t){second-=t.second;minute-=t.minute;hour-=t.hour; while(second<0) { second+=60; minute--; } while(minute<0) { minute++; hour--; } while(hour<0) hour+=24;CTime t1(hour,minute,second);return t1;}CTime CTime::operator+=(int s){second+=s;while(second>60){second-=60;minute++;while(minute>60){minute-=60;hour++;}}return CTime(hour,minute,second);}CTime CTime::operator-=(int s){second-=s;while(second<0){second+=60;minute--;while(minute<0){minute+=60;hour--;}}return CTime(hour,minute,second);}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; return t;}CTime CTime::operator--(){ *this=*this+1; return *this;}ostream& operator<< (ostream& output, CTime& c){ output<<"("<<c.hour<<":"<<c.minute<<":"<<c.second<<endl; return output;}istream& operator>> (istream& input,CTime& c){ int x,y,z; char ch; do { cout<<"输入**:**:**形式"<<endl; input>>x>>ch>>y>>ch>>z; } while (ch!=':'&&!(x>=24&&y>=60&&z>=60)); c.hour=x; c.minute=y; c.second=z; return input;}int main(){ CTime t1(8,20,25),t2(11,20,50),t3,t;cout<<"t1为:";cout<<t1;cout<<"t2为:";cout<<t2;cout<<"下面比较两个时间大小:\n";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;cout<<endl;t=t1+t2;cout<<t;t=t1-t2;cout<<t;t=t1+2000;cout<<t;t=t1-5000;cout<<t;t1+=t2;cout<<t1;t1-=t2;cout<<t1;t1+=2000;cout<<t1;t1-=5000;cout<<t1;return 0;}
0 0
- 第九周——时间类和输入输出运算符的重载
- 第九周C++报告二。定义Time类中的<<和>>运算符重载,实现时间的输入输出
- 第九周任务二之定义Time类中的<<和>>运算符重载,实现时间的输入输出
- C++第九周【任务二】定义Time类中的<<和>>运算符重载,实现时间的输入输出
- 第九周任务二 时间 输入输出运算符重载
- 第九周项目二——Time类中的运算符重载(利用输入输出运算符重载)
- 第九周项目三——分数类中的运算符重载(利用输入输出运算符重载)
- 《C++第九周实验报告2-1》---接第8周任务2,定义Time类中的<<和>>运算符重载,实现时间的输入输出
- 第九周项目一——Complex类(利用输入输出运算符重载)
- 第九周任务一 复数 输入输出运算符的重载
- 第九周 任务2 定义TIME类中的《和》运算重载,实现分数的输入输出。
- 九周任务二:定义Time类中的<<和>>运算符重载,实现时间的输入输出
- 第九周C++任务三。定义分数类中<<和>>运算符重载,实现分数的输入输出
- 第九周任务三之定义分数类中<<和>>运算符重载,实现分数的输入输出
- C++第九周【任务三】定义分数类中<<和>>运算符重载,实现分数的输入输出
- 《第九周任务二》定义Time类中的<<和>>运算符的重载,实现时间输入输出,改造源程序中对运算结果的显示方式,使程序读起来更自然
- 第九周实验报告任务 1 定义Time类中的<<和>>运算符重载,实现时间的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然。
- 第九周项目二 时间类的输入输出符的重载
- Struts2 <s:iterator> 标签实现 for 循环式 循环控制
- select,poll,epoll区别
- 别忽略那些无用的事。
- Sdut 2409 The Best Seat in ACM Contest(山东省第三届ACM省赛 H 题)(模拟)
- 图书销售系统可行性分析报告
- 第九周——时间类和输入输出运算符的重载
- 串的链式存储的基本操作
- Androi Studio问题汇总
- eclipse Flash Builder 4.0 plugin 安装
- 好的程序员到底好在哪里
- CakePHP控制台
- 杜宇甫:京东JOS进化论
- appserv关于include_path='.;C:\php5\pear'的错误处理
- 04期:技术美女超上镜,音乐也要玩开源