C++計(jì)算某天是某年的第幾天

做這種題感覺(jué)還是很實(shí)用的。主要就是鍛煉以下類(lèi)的定義和使用。

問(wèn)題主要描述:

定義一個(gè)日期類(lèi)Date:

內(nèi)有數(shù)據(jù)成員年、月、日。

另有成員函數(shù):

(1)構(gòu)造函數(shù)用于初始化數(shù)據(jù)成員。

(2)輸出函數(shù)(打?。?/p>

(3)閏年的判斷。

編寫(xiě)主函數(shù):創(chuàng)建日期對(duì)象,從鍵盤(pán)輸入年、月、日,計(jì)算并輸出該日是該年的第幾天。

輸入樣例:

2006 3 5

輸出樣例:

64 ??(2006年3月5日是該年的第64天)

Date類(lèi)如下:(學(xué)過(guò)C++的人對(duì)這個(gè)類(lèi)應(yīng)該都會(huì)感到很清晰)

class Date{

private:

int year,month,day;//私有成員

public://共有成員函數(shù)

Date(int year1, int month1, int day1);//構(gòu)造函數(shù)

int judge();//閏年的判斷函數(shù)

void print();//打印函數(shù)

};

構(gòu)造函數(shù)的實(shí)現(xiàn):

Date::Date(int year1, int month1, int day1){

year = year1;

month = month1;

day = day1;

}

閏年的判斷函數(shù)的實(shí)現(xiàn):

int Date::judge(){

if(year%4 == 0 && year%100 != 0 || year % 400 == 0)

return 1;

else

return 0;

}

打印函數(shù)的實(shí)現(xiàn):

void Date::print(){

int days = 0;

int str[12] = {31,28,31,30,31,30,31,31,30,31,30,31};

if(judge())

str[1] = 29;

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

days += str[i];

cout<<days + day<<endl;

}

ps:對(duì)于這部分,講一下思路吧,把12個(gè)月的天數(shù)放在一個(gè)字符串?dāng)?shù)組里,閏年和平年的區(qū)別只有2月,閏年2月28天,平年2月29天,判斷結(jié)束后只需將str[1]進(jìn)行修改,計(jì)算天數(shù)時(shí)只需將各月天數(shù)疊加再加上日(day)而已。

主函數(shù)的實(shí)現(xiàn):

#include <iostream>

using namespace std;

int main(){

int yy,mm,dd;

cin>>yy>>mm>>dd;

Date a(yy,mm,dd);//定義類(lèi)對(duì)象a

a.print();//調(diào)用打印函數(shù)

}

運(yùn)行結(jié)果如下:

總結(jié)以下,用C++解決問(wèn)題有時(shí)候真的很清晰,主函數(shù)簡(jiǎn)介明了,所有的操作都封裝在類(lèi)里,類(lèi)里面也是用private和public劃分的很清晰,成員函數(shù)的聲明和實(shí)現(xiàn)分開(kāi),聲明在類(lèi)里面,實(shí)現(xiàn)在類(lèi)外面。(當(dāng)然也可以都寫(xiě)在類(lèi)里,不過(guò)分開(kāi)更好,程序員要做的就是條例清晰,層次明了,這樣看著會(huì)很舒服)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容