c++简单的日期类程序填空求大佬帮忙

//自定义一个非常简单的日期类
#include <iostream
using namespace std;
const static int a[]={31,31,28,31,30,31,30,31,31,30,31,30,31};
//--------------------开始:日期类定义-------------------






......







//--------------------结束:日期类定义-------------------
//----------------开始:日期类成员函数定义---------------






......







//---------------结束:日期类成员函数定义----------------
//>>>>>>>>>>>>>>>>>>>>>主函数开始<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
int main() {
Date d1; //使用缺省值(200.1.1)构造函数定义一个日期对象
//用三个存取(访问)函数输出d1
cout<<"(Default Constructor)Date d1;----->"<<'{'< //用输出成员函数输出d1
cout"; d1.showDate();
cout< Date d2(2015,2,29);
//使用非法日期构造函数定义对象,日期对象将被置为默认值。
//合法日期:年>0,1<=月 cout"; d2.showDate(); cout< Date d3(2008,11,30); //使用普通构造函数定义对象
cout"; d3.showDate(); cout<<endl;

//设置日期(使用三个整数:年、月、日)
//如果给定的日期为非法日期则不修改原有的日期值
d3.setDate(2008,13,8);
cout<<"d3.setDate(2008,13,8);----->";
int y,m,d;
d3.getDate(y,m,d); //获得d3对应的日期值
cout<<'{'< //测试非法日期的几种典型情况。
d3.setDate(2016,2,29);
cout"; d3.showDate(); cout< d3.setDate(2016,2,0);
cout"; d3.showDate(); cout< d3.setDate(2016,11,-1);
cout"; d3.showDate(); cout< d3.setDate(2016,11,31);
cout"; d3.showDate(); cout< d3.setDate(2016,00,11);
cout"; d3.showDate(); cout< d3.setDate(2016,13,11);
cout"; d3.showDate(); cout< d3.setDate(0,11,11);
cout"; d3.showDate(); cout< d3.setDate(-123,11,11);
cout"; d3.showDate(); cout< d3.setDate(2016,12,0);
cout"; d3.showDate(); cout< d3.setDate(2016,12,32);
cout"; d3.showDate(); cout< d3.setDate(2008,8,8);
cout"; d3.showDate(); cout<<endl;

return 0;
}
//>>>>>>>>>>>>>>>>>>>>>主函数结束<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
输入

输出
参见“样例输出”
输入样例 1

输出样例 1
(Default Constructor)Date d1;----->{2000.1.1}

(Default Constructor)Date d1;----->{2000.1.1}

Date d2(2015,2,29);----->{2000.1.1}

Date d3(2008,11,30);----->{2008.11.30}

d3.setDate(2008,13,8);----->{2008.11.30}

d3.setDate(2016,2,29);----->{2016.2.29}

d3.setDate(2016,2,0);----->{2016.2.29}

d3.setDate(2016,11,-1);----->{2016.2.29}

d3.setDate(2016,11,31);----->{2016.2.29}

d3.setDate(2016,00,11);----->{2016.2.29}

d3.setDate(2016,13,11);----->{2016.2.29}

d3.setDate(0,11,11);----->{2016.2.29}

d3.setDate(-123,11,11);----->{2016.2.29}

d3.setDate(2016,12,0);----->{2016.2.29}

d3.setDate(2016,12,32);----->{2016.2.29}

d3.setDate(2008,8,8);----->{2008.8.8}

//--------------------开始:日期类定义-------------------
class Date
{
private:
    int yyyy;
    int mm;
    int dd;
    bool isleap(int y);
    bool check(int y, int m, int d);
public:
    Date(int y, int m, int d)
    {
        if (check(y, m, d))
            setDate(y, m, d);
        else
            setDate(200, 1, 1);
    }
    Date() { Date(200, 1, 1); }
    void setDate(int y, int m, int d);
    void getDate(int &y, int &m, int &d);
    void showDate();
};
//--------------------结束:日期类定义-------------------
//----------------开始:日期类成员函数定义---------------
bool Date::isleap(int y)
{
    return (y % 4 == 0 && y % 100 != 0) || y % 400 == 0;
}

bool Date::check(int y, int m, int d)
{
    if (y <= 0) return false;
    if (m < 1 || m > 12) return false;
    if (d < 1) return false;
    if ((m == 1 || m == 3 || m == 5 || m == 7 ||m == 8 ||m == 10 ||m == 12) && d > 31)
        return false;
    if ((m == 4 || m == 6 || m == 9 ||m == 11) && d > 30)
        return false;
    if (m == 2 && d > 29 && isleap(y))
        return false;
    if (m == 2 && d > 28 && !isleap(y))
        return false;
    return true;
}

void Date::setDate(int y, int m, int d)
{
    if (check(y, m, d))
    {
        yyyy = y;
        mm = m;
        dd = d;
    }
}
void Date::getDate(int& y, int& m, int& d)
{
    y = yyyy;
    m = mm;
    d = dd;
}
void Date::showDate()
{
    cout << yyyy << "-" << mm << "-" << dd;
}

//---------------结束:日期类成员函数定义----------------