天天看點

C++訓練題自定義一個簡單日期類 DateType,它具有資料成員 y、m、d,用來表示目前日期的年、月、日。 而後設計該類欲實作(完成)的功能,進而設計出相應的類成員函數。C++訓練題

C++訓練題

自定義一個簡單日期類 DateType,它具有資料成員 y、m、d,用來表示目前日期的年、月、日。

而後設計該類欲實作(完成)的功能,進而設計出相應的類成員函數。

題目描述

自定義一個簡單日期類 DateType,它具有資料成員 y、m、d,用來表示目前日期的年、月、日。

而後設計該類欲實作(完成)的功能,進而設計出相應的類成員函數。

class DateType {

//自定義的日期類 DateType

int y,m,d; //資料成員,表示目前日期的年、月、日
           

public:

DateType(int y0=1, int m0=1, int d0=1);

   //構造函數,設定年、月、日;并設定參數預設值

   void IncrementDay(); //增加 1 天

   bool Equal(DateType dt2); //判斷二日期是否相等

   void PrintDate(); //螢幕輸出日期對象的有關資料(年、月、日)
           

};

1、完成有參構造函數

2、完成 void

IncrementDay()函數,計算天數加1後的日期。

3、完成Equal(DateType

dt2)函數,判斷兩個日期是否相等。

4、完成列印輸出函數PrintDate(),在螢幕上輸出日期對象的有關資料(年、月、日)

5、編寫并完成主函數,實作輸入包含六個整數,說明DateType類對象dt1,dt2,分别是dt1和dt2的年月日。請先輸出dt1,dt2,然後判斷dt1,dt2是否相等,再對dt1,dt2分别增加一天。最後輸出dt1,dt2。

代碼如下:‘

#include<iostream>

using namespace
std;

class DateType { 

//自定義的日期類 DateType

       int y,m,d; //資料成員,表示目前日期的年、月、日

public:

       DateType(int y0=1, int m0=1, int d0=1);

       //構造函數,設定年、月、日;并設定參數預設值

       void IncrementDay(); //增加 1 天

       bool Equal(DateType dt2); //判斷二日期是否相等

       void PrintDate(); //螢幕輸出日期對象的有關資料(年、月、日)

};

DateType ::
DateType(int y0,int m0,int d0)

{

       y=y0;

       m=m0;

       d=d0;

};

void DateType ::
PrintDate()

{

       cout<<y<<":"<<m<<":"<<d<<endl;

}

 bool DateType:: Equal(DateType dt2)

{

       if(y==dt2.y&&m==dt2.m&&d==dt2.d)

       return 1;

       else

       return 0;

};

void DateType ::
IncrementDay()

{

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

       if(y%4==0&&y%100==0||y%400==0)

       {

              M[1]=29;

       };

       switch(m)

       {

              case 1:if((d+1)>31){

                     m++;

                     d=1;}

                     else

                     d++;

                     break;

              case 2:if((d+1)>M[1]){

                     m++;

                     d=1;}

                     else

                     d++;

                     break;

              case 3:if((d+1)>M[2]){

                     m++;

                     d=1;}

                     else

                     d++;

                     break;

              case 4:if((d+1)>M[3]){

                     m++;

                     d=1;}

                     else

                     d++;

                     break;

              case 5:if((d+1)>M[4]){

                     m++;

                     d=1;}

                     else

                     d++;

                     break;

              case 6:if((d+1)>M[5]){

                     m++;

                     d=1;}

                     else

                     d++;

                     break;

              case 7:if((d+1)>M[6]){

                     m++;

                     d=1;}

                     else

                     d++;

                     break;    

              case 8:if((d+1)>M[7]){

                     m++;

                     d=1;}

                     else

                     d++;

                     break;    

              case 9:if((d+1)>M[8]){

                     m++;

                     d=1;}

                     else

                     d++;

                     break;    

              case 10:if((d+1)>M[9]){

                     m++;

                     d=1;}

                     else

                     d++;

                     break;    

              case 11:if((d+1)>M[10]){

                     m++;

                     d=1;}

                     else

                     d++;

                     break;

              case 12:if((d+1)>M[11]){

                     m=1;

                     y++;

                     d=1;}

                     else

                     d++;

                     break;

       }

       

};

int main()

{

       int 
d1_y,d1_m,d1_d,d2_y,d2_m,d2_d; 

       
cin>>d1_y>>d1_m>>d1_d>>d2_y>>d2_m>>d2_d;


        DateType  dt1(d1_y,d1_m,d1_d),dt2(d2_y,d2_m,d2_d); 

        dt1.PrintDate(); 

        dt2.PrintDate(); 

        if(dt1.Equal(dt2)) 

               
cout<<"True"<<endl; 

        else 

                cout<<"False"<<endl; 

        dt1.IncrementDay();   

        dt2.IncrementDay(); 

        dt1.PrintDate(); 

        dt2.PrintDate(); 

}

           

繼續閱讀