天天看点

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(); 

}

           

继续阅读