C 程式設計設計日期類,C 程式設計 設計一個日期類

時間 2022-07-21 15:40:03

1樓:du小蝦

// 設計一個日期類.要求:

// 過載帶引數建構函式(int year ,int month, int day)和預設建構函式,前者要求不合要求的資料(年月日超出範圍)丟擲異常

// 計算出該日是星期幾,(網上找公式)。

// 過載「+」操作,一個日期物件和天數相加(符合交換律)。

// 過載「-」操作,兩天日期物件相減返回相差天數。

// 過載「+=」操作當前日期加天數

// 過載輸入輸出操作。

#include

using namespace std;

typedef unsigned int uint;

#define cpp_get(returntype,para,funname) returntype \

get##funname()

class date

date(uint y,uint m,uint d);//:year(y),month(m),day(d){}

~date();

//methods

uint getweekday();

void printd();

date operator +(uint d);

date operator -(uint d);

friend ostream& operator<<(ostream &os,date &date);//過載輸出

friend ostream& operator<<(ostream &os,date &date);//過載輸入

bool isleapyear();

bool isleapyear(uint y);//判斷是否閏年

uint getdays();//距離1970.1.1 星期四

void cnvdays2date(uint days);//將填數轉換成日期

cpp_get(uint,year,year);

cpp_get(uint,month,month);

cpp_get(uint,day,day);

private:

void set(uint y,uint m,uint d);

uint year;

uint month;

uint day;

typedef enum

weekday;

};date::date(uint y,uint m,uint d)

void date::printd()

d = day - 1;

days +=d;

return days;

}void date::cnvdays2date(uint days)

else

break;

}else

else

break;

}} while (true);

//count month

bool b = isleapyear(y);

//平年

//1 2 3 4 5 6 7 8 9 10 11 12

//31 28 31 30 31 30 31 31 30 31 30 31

//31 59 90 120 151 181 212 243 273 305 334 365

days -=(uint)b;

int iarr[12] = ;

i = 0;

while(days>=iarr[i])

m = i;

//count day

days -= iarr[i-1];

d = days+1;

//如果是閏年,將3月1號變為2月29號

if (m==3&&d==1&&b)

//如果是閏年,日期前移一天

else if(m>=3&&d>1&&b)

set(y,m,d);

}void date::set(uint y,uint m,uint d)

if (y<1970)

exit(1);

exit(1);

if (d==31&&(m==4||m== 6||m== 9||m == 11))

year = y;

month = m;

day = d;

}int main()

2樓:匿名使用者

這是c++ 中用解構函式和建構函式 編的關於一個日期的類 不知道是否符合,這個程式是可一執行的 ,可以輸出結構 還可以幫你很好的理解 什麼是解構函式,什麼是建構函式。

#include

#include

int i=0; //整型變數,作為計數器,統計本檔案中date類物件的個數

class date

};date::date(int newy=2000,int newm=1,int newd=1) //建構函式實現

void date::display()

void fun () //普通函式,被主函式呼叫

void main () //輸出計數器初始值

3樓:匿名使用者

class data

;virtual ~data(){};

};cstring data::getdata(int year,int month,int day)

else

}else

else}}

if( month == 4 ||month == 6 ||month == 8 ||month == 10 ||month == 11 )

else

}if(month ==2)

else

day += 1;}}

else

else

}else

else}}

if( month == 4 ||month == 6 ||month == 8 ||month == 10 ||month == 11 )

else

}if(month ==2)

else

day += 1;}}

cstring abc;

abc.format("%d%d%d",year,month,day);

return abc;

}你可以自己測試一下

C 語言程式設計設計,C 語言已成為當前主流的面向什麼的程式設計語言之一

c 是在c語言的基礎上開發的一種物件導向程式語言,應用廣泛。c 支援多種程式設計正規化 物件導向程式設計 泛型程式設計和過程化程式設計。最新正式標準c 於2014年8月18日公佈。其程式設計領域眾廣,常用於系統開發,引擎開發等應用領域,是至今為止最受廣大程式設計師受用的最強大程式語言之一,支援類 類...

怎麼用C語言程式設計設計「輸入長方形的長和寬,求長方形的面積」的

幻翼高達 需要準備的材料分別有 電腦 c語言編譯器。1 首先,開啟c語言編譯器,新建一個初始.cpp檔案,例如 test.cpp。2 在test.cpp檔案中,輸入c語言 長方形的面積 d n l w 3 編譯器執行test.cpp檔案,此時輸入長和寬會求出長方形的面積。 灩麗 1 首先開啟軟體新建...

用switch語句程式設計設計簡單的計算器程式

include int main void return 0 include int main 用switch語句程式設計設計一個簡單的計算器程式,要求根據使用者從鍵盤輸入的表示式 閻玉花井雨 include includemain printf doyouwanttocontinue y nory...