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...