Time类中的运算符重载
来源:互联网 发布:怎么购买app软件 编辑:程序博客网 时间:2024/05/22 06:55
/** 程序的版权和版本声明部分* Copyright (c)2013, 烟台大学计算机学院学生* All rightsreserved* 文件名称:score.cpp* 作 者: 赵兰* 完成日期: 2013年 4月 24日* 版本号: v1.0* 输入描述:略* 问题描述:略* 输出:如下*/// qq.com.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"//【项目2-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 &c);//返回c所规定的时、分、秒后的时间,例t1(8,20,25),t2(11,20,50),t1+t2为:41:15 CTime operator-(CTime &c);//对照+理解 CTime operator+(int s);//返回s秒后的时间 CTime operator-(int s);//返回s秒前的时间 //一目运算符的重载 CTime operator++( int);//后置++,下一秒 CTime operator++();//前置++,下一秒,前置与后置返回值不一样 CTime operator--( int);//后置--,前一秒 CTime operator--();//前置--,前一秒 //赋值运算符的重载 CTime operator+=(CTime &c); CTime operator-=(CTime &c); CTime operator+=(int s); CTime operator-=(int s);};//下面实现所有的运算符重载代码。//为简化编程,请注意通过调用已有函数,利用好各函数之间的关系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;}void CTime::display(){ cout<<hour<<":"<<minute<<":"<<second<<endl;}//比较运算符(二目)的重载bool CTime::operator > (CTime &t){ if(hour>t.hour) return true; else if(hour==t.hour&&minute>t.minute) return true; else if(hour==t.hour&&minute==t.minute&&second>t.second) return true; else return false;}bool CTime::operator < (CTime &t){ if(hour<t.hour) return true; else if(hour==t.hour&&minute<t.minute) return true; else if(hour==t.hour&&minute==t.minute&&second<t.second) return true; else return false;}bool CTime::operator >= (CTime &t){ if(hour>t.hour) return true; else if(hour==t.hour && minute>t.minute) return true; else if(hour==t.hour && minute==t.minute && second>t.second) return true; else if(hour==t.hour && minute==t.minute && second==t.second) return true; else return false;}bool CTime::operator <= (CTime &t){ if(hour<t.hour) return true; else if(hour==t.hour&&minute<t.minute) return true; else if(hour==t.hour&&minute==t.minute&&second<t.second) return true; else if(hour==t.hour&&minute==t.minute&&second==t.second) return true; else return false;}bool CTime::operator == (CTime &t){ if(hour==t.hour&&minute==t.minute&&second==t.second) return true; else return false;}bool CTime::operator != (CTime &t){ if(hour!=t.hour||minute!=t.minute||second!=t.second) return true; else return false;}//二目运算符的重载CTime CTime::operator+(CTime &c){ CTime t; t.hour=hour+c.hour; t.minute=minute+c.minute; t.second=second+c.second; if(t.second>=60){ t.second=t.second-60; t.minute=t.minute+1; if(t.minute>=60){ t.minute=t.minute-60; t.hour=t.hour+1; if(t.hour>=24) t.hour=t.hour-24; } } return t;}CTime CTime::operator-(CTime &c){ CTime t; t.hour=hour-c.hour; t.minute=minute-c.minute; t.second=second-c.second; if(t.second<0){ t.second=t.second+60; t.minute=t.minute-1; } if(t.minute<0){ t.minute=t.minute+60; t.hour=t.hour-1; } if(t.hour<0) t.hour=t.hour+24; return t;}CTime CTime::operator+(int s){ CTime t; t.second=t.second+s; if(t.second>=60){ t.second=t.second-60; t.minute=t.minute+1; if(t.minute>=60){ t.minute=t.minute-60; t.hour=t.hour+1; if(t.hour>=24) t.hour=t.hour-24; } } return t;}CTime CTime::operator-(int s){ CTime t; t.second=t.second-s; if(t.second<0){ t.second=t.second+60; t.minute=t.minute-1; } if(t.minute<0){ t.minute=t.minute+60; t.hour=t.hour-1; } return t;}CTime CTime::operator++( int ){ CTime t(*this); second++; if(second>=60){ second=second-60; minute=minute+1; } return t;}CTime CTime::operator++(){ second++; if(second>=60){ second=second-60; minute=minute+1; } return *this;}CTime CTime::operator--( int){ CTime t(*this); second--; if(second<0){ second=second+60; minute=minute-1; } return t;}CTime CTime::operator--(){ second--; if(second<0){ second=second+60; minute=minute-1; } return *this;}//赋值运算符的重载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){ second=second+s; if(second>=60){ second=second-60; minute=minute+1; if(minute>=60){ minute=minute-60; hour=hour+1; if(hour>=24) hour=hour-24; } } return CTime(hour,minute,second);}CTime CTime::operator-=(int s){ second=second-s; if(second<0){ second=second+60; minute=minute-1; if(minute<0){ minute=minute+60; hour=hour-1; if(hour<0) hour=hour+24; } } return CTime(hour,minute,second);}int main(){ CTime t1(8,20,25),t2(11,20,50),t3,t; cout<<"t1为:"; t1.display(); cout<<"t2为:"; t2.display(); 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; //下面自行设计对其他运算符的重载的测试 cout<<endl; cout<<"两项相加之后"<<endl; t=t1+t2; t.display(); cout<<"两项相减之后"<<endl; t=t2-t1; t.display(); cout<<"时间加加之后t1++="<<endl; t=t1++; t.display(); cout<<"++t1="<<endl; t=++t1; t.display(); cout<<"时间减减t2--="<<endl; t=t2--; t.display(); cout<<"--t2="<<endl; t=--t2; t.display(); cout<<"+=的应用t2=t2+2="<<endl; t2+=2; t2.display(); cout<<"-=的应用t2=t2-2="<<endl; t2-=2; t2.display(); t3.setTime(1,2,3); cout<<"加上的应用t3=t3+t1="<<endl; t3+=t1; t3.display(); cout<<"减去的应用t2=t2-t1="<<endl; t2-=t1; t2.display(); return 0;}
- 实现Time类中的运算符重载
- Time类中的运算符重载
- Time类中的运算符重载
- Time类中的运算符重载
- Time类中的运算符重载
- Time类中的运算符重载
- 实现Time类中的运算符重载
- 实现Time类中的运算符重载
- Time 类中的运算符重载
- Time类中的运算符重载
- Time类中的运算符重载
- Time类中的运算符重载
- Time类中的运算符重载
- Time类中的运算符重载
- Time类中的运算符重载
- Time类中的运算符重载
- Time类中的运算符重载
- Time类中的运算符重载
- Spring Bean 单例化的问题
- 和菜鸟一起学linux内核之初始化init篇
- Java自学视频整理(持续更新中...) .
- 翻译---搞不懂的Metrics
- 趣味经济学
- Time类中的运算符重载
- hdu 1372 bfs Knight Moves
- Rockets to face in the direction it's going
- WSAAsyncSelect模型
- 数学专项number_theory:UVa 10622
- How to make enemies follow your hero (seeking missiles)
- 第一个spring项目helloWord
- Heat-Seeking Missile Game Physics
- NYOJ 478 月老的难题 (1)解题报告