日曆 oop試題

2022-04-13 17:07:18 字數 1902 閱讀 9144

20 分)設計乙個日期類

date

, 要求:(1

) 西元前年份的表達方式遵守

iso8601

標準:公元

1 年為

1,西元前

1 年為 0,公

元前 2

年為-1

,以此類推;(2

) 在

1752

年 9

月 2

日之前使用儒略曆,其後一天起使用格利歷,調整為

1752 年 9

月 14 日;(

3) 提供轉換建構函式,把整數轉成日期,規則為整數代表

1970-01-01

加上此整數

天數的日期;(4

) 提供建構函式,接受三個整數分別代表年、月、日三個字段;(5

) 過載

<, >, ==

, 可以比較兩天的大小,例如

2016-04-28 > 2016-04-27

為 true(6

) 過載+,

-,可以對乙個日期加

/減乙個整數, 整數的含義為天數,

例如,

2016-04-28 + 1 = 2016-04-29

,二個日期類之間可以做減法,結果為相差的天數,

例如,

2016-04-29 – 2016-04-27 = 2(7

) 過載

<<

以便使用

cout

輸出,輸出格式為

iso8601

標準,即

yyyy-mm-dd

,不足位時補 0。

#include using namespace std;

class date()

;int getdaysinmounth(int m,bool isleapyear);

int getdaysinyear(int year);

bool isleapyear(int year);

int getdays(int year,int mounth,int day);

void getdate(int& year,int& mounth,int& day,int days);

bool isvalid(int year,int month,int day);

ostream& operator<<(ostream& os,const date& dt)

return false;

}bool isleapyear(int year)

else

else

}}int getdaysinmounth(int m,bool isleapyear)

}int getdaysinyear(int year)

int getdays(int year,int mounth,int day)//days=0 是2023年的時候

for(int i=1;i<=month;i++)

}else

for(int i=1;i<=month-1;i++)

}bool isjiuli=false;

if(year==1752)

}else if(month<9)

}else if(year<1752)

if(isjiuli) days+=11;

days+=day-1;

return days;

}void getdate(int& year,int& mounth,int& day,int days)

startyear--;

yearofdays=getdaysinyear(startyear);

while(day<0);

}}

oop程式設計

1.重用 2.封裝 1.重用 2.內部資料安全 3.只能通過預留的介面 api 進行訪問 var f function var a new f console.log a.name console.log a.age console.log a.hover 靜態方法只能被類來訪問 靜態屬性只能被類來...

OOP程式設計

oop程式設計 oop程式語言有乙個標誌,就是它們都有類的概念。js中物件定義為 無序屬性的集合 其屬性可以包含基本值 物件或者函式。因此js物件可以被想象成雜湊表 無非就是一組名值對,其中值可以是資料或函式。組合使用建構函式和原型模式,是目前js使用最廣泛 認同度最高的一種建立自定義型別的方法 建...

任務日曆,資源日曆以及專案日曆關係

其實日曆本無所謂 資源 任務 專案 的,只是將日曆付給資源後,我們習慣稱之為 資源日曆 只是將日曆付給任務後,我們習慣稱之為 任務日曆 只是將日曆付給專案後,我們習慣稱之為 專案日曆 要用好這些日曆首先就要明白這幾個日曆的關係 list 任務日曆是優先於專案日曆的 資源日曆也是優先於專案日曆的 而資...