第八周任務二 運算子過載 計算時間

2021-06-05 16:42:14 字數 3341 閱讀 4429

/* (程式頭部注釋開始)

* 程式的版權和版本宣告部分

* 檔名稱:

* 作 者: 姜雅明

* 完成日期: 2012 年 04 月 10 日

* 版 本 號: 1.0

* 對任務及求解方法的描述部分

* 輸入描述: 時間

* 問題描述: 運算子過載,時間的計算

* 程式輸出: 計算後的時間

* 程式頭部的注釋結束

*/#include using namespace std;

class ctime

; 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秒前的時間

};//下面實現所有的運算子過載**。

//為簡化程式設計,請注意通過呼叫已有函式,利用好各函式之間的關係

void ctime::settime(int h,int m,int s)

void ctime::display()

bool ctime::operator > (ctime &t)

else if(minute > t.minute)

else if(second > t.second)

else }

bool ctime::operator < (ctime &t)

else if(minute < t.minute)

else if(second < t.second)

else }

bool ctime::operator >= (ctime &t)

else }

bool ctime::operator <= (ctime &t)

else }

bool ctime::operator == (ctime &t)

else }

bool ctime::operator != (ctime &t)

else }

ctime ctime::operator + (ctime &c)

t.minute+= c.minute;

if (t.minute>=60)

t.hour+= c.hour;

if (t.hour>23)

return t;

}ctime ctime::operator - (ctime &c)

else

if (t.minute < c.minute)

else

if (t.hour < c.hour)

else

return t;

}ctime ctime::operator + (int s)

} }

return t;

}ctime ctime::operator - (int s)

ctime ctime::operator ++ (int)//後置++,下一秒

ctime ctime::operator ++ ()//前置++,下一秒

ctime ctime::operator -- (int)//後置--,前一秒

ctime ctime::operator -- ()//前置--,前一秒

ctime ctime::operator+= (ctime &c)

minute+= c.minute;

if (minute>=60)

hour+= c.hour;

if (hour>23)

return (*this);

}ctime ctime::operator-= (ctime &c)

else

if (minute < c.minute)

else

if (hour < c.hour)

else

return (*this);

}ctime ctime::operator+= (int s)//返回s秒後的時間

} }

return (*this);

}ctime ctime::operator-= (int s)//返回s秒前的時間

減去時間比較麻煩···開始一直不成功,因為時間沒有負的···只能化成秒後計算了···

到後來直接亂了·······

第八周任務二

include using namespace std class ctime void settime int h,int m,int s void display 比較運算子 二目 的過載 bool operator ctime t bool operator ctime t bool oper...

第八周任務(二)

cpp view plaincopy 01.程式頭部注釋開始 02.程式的版權和版本宣告部分 05.檔名稱 renwu.cpp 06.作 者 苗向前 07.完成日期 2012 年 4 月 11 日 08.版 本 號 8.2 09.對任務及求解方法的描述部分 10.輸入描述 略 11.問題描述 略 1...

第八周任務(二)

程式頭部注釋開始 程式的版權和版本宣告部分 作 者 楊繼宇 完成日期 2012年04 月11 日 版 本 號 0000 對任務及求解方法的描述部分 輸入描述 過載 問題描述 程式輸出 程式頭部的注釋結束 include using namespace std class ctime 建構函式 cti...