第八周任务(二)

来源:互联网 发布:excel数据分类排序 编辑:程序博客网 时间:2024/05/21 05:59
<pre name="code" class="cpp">#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):hour(h), minute(m), second(s){ };        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);//返回s秒后的时间        CTime operator-=(int s);//返回s秒前的时间friend ostream & operator <<(ostream &,CTime &);    friend istream & operator >>(istream &,CTime &);};    //下面实现所有的运算符重载代码。    //为简化编程,请注意通过调用已有函数,利用好各函数之间的关系        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(minute>t.minute)                return true;            else if(second>t.second)                    return true;               else                    return false;    }        bool CTime::operator < (CTime &t)    {        if(hour<t.hour)            return true;        else if(minute<t.minute)                return true;            else if(second<t.second)                    return true;               else                    return false;    }        bool CTime::operator >= (CTime &t)    {        if(operator <(t)!=1)            return true;        else             return false;    }        bool CTime::operator <= (CTime &t)    {        if(operator >(t)!=1)            return true;        else             return false;    }        bool CTime::operator == (CTime &t)    {        if(operator <(t)!=1||operator >(t)!=1)            return true;        else            return false;    }        bool CTime::operator != (CTime &t)    {        if(operator <(t)==1||operator >(t)==1)            return true;        else            return false;    }        CTime CTime::operator+(CTime &c)    {        CTime c1;       c1.second=second+c.second;        c1.minute=minute+c.minute;        c1.hour=hour+c.hour;        if(c1.second>59)        {            c1.second=c1.second-60;            c1.minute=c1.minute+1;        }        if(c1.minute>59)        {            c1.minute=c1.minute-60;            c1.hour=c1.hour+1;        }        return c1;    }        CTime CTime::operator-(CTime &c)    {        CTime c1;       if(operator <(c)==1) {        cout<<"因为t1大于t2所以输出错误"<<endl;}    else      c1.second=second-c.second;        c1.minute=minute-c.minute;        c1.hour=hour-c.hour;        if(c1.second<0)        {            c1.second=c1.second+60;            c1.minute=c1.minute-1;        }        if(c1.minute<0)        {            c1.minute=c1.minute+60;            c1.hour=c1.hour-1;        }        return c1;    }     CTime CTime::operator+(int s)      {          CTime c1;          c1.second=second+s;c1.minute=minute;c1.hour=hour;    if(c1.second>59)          {              c1.second-=60;              ++c1.minute;          }          if(c1.minute>59)          {              c1.minute-=60;              ++c1.hour;          }          return c1;      }      CTime CTime::operator-(int s)    {        CTime c1; c1.second=second;c1.minute=minute;c1.hour=hour;    if(c1.second<s)        {            c1.second+=60;            --c1.minute;        }        if(c1.minute<0)        {            c1.minute+=60;            --c1.hour;        }      c1.second=second-s;    return c1;    }        CTime CTime::operator++(int)   {        CTime temp(*this);        second++;        if(second>59)        {            second-=60;            ++minute;        }        return temp;    }        CTime CTime::operator++()       {        if(++second>59)        {            second-=60;            ++minute;        }        return *this;    }        CTime CTime::operator--(int)    {        CTime temp(*this);        second--;        return temp;    }        CTime CTime::operator--()       {        --second;        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)    {               *this=*this+s;      return *this;    }        CTime CTime::operator-=(int s)    {                *this=*this-s;      return *this;    }  


void main()    {        CTime t1(8,20,25), t2(11,20,50), t;            cout << "t1为:";            t1.display();            cout << "t2为:";            t2.display();            cout << "比较两个时间大小:" << 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;            if (t1 <= t2) cout << "t1 ≤ t2" << endl;            cout<<endl;           t = t1 + t2;            cout << "t1 + t2 = ";            t.display();         t = t1-t2;            cout << "t1-t2 = ";            t.display();        t = t1;        t = t + 35;        cout<< "t1 + 35 = ";            t .display();        t = t2;        t = t - 8;        cout<< "t2 - 8 = " ;        t.display();        t = t1;        t = t ++;        cout << endl;        cout << "t1++ = ";        t.display();        t = t1;        t = ++t;        cout << "++t1 = ";        t.display();        t = t2;        t = t --;        cout << "t2-- = ";        t.display();        t = t2;        t = --t;        cout << "--t1 = ";        t.display();        t = t1;        t +=t2;        cout << "t1 += t2,t1 = " ;        t.display();        t = t2;        t -= t1;        cout << "t2 -= t1,t2 = " ;        t.display();        t = t1;        t += 5;        cout << "t1 += 5 = " ;        t.display();        t = t1;        t -= 6;         cout << "t1 -= 6 = " ;        t.display();        system("pause");    }  
原创粉丝点击