定义一个名为Date的类,用于输入并验证日期,类中的数据成员和成员函数应满足以下规则;在主函数中编写相

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 14:56:23
定义一个名为Date的类,用于输入并验证日期,类中的数据成员和成员函数应满足以下规则;在主函数中编写相

定义一个名为Date的类,用于输入并验证日期,类中的数据成员和成员函数应满足以下规则;在主函数中编写相
定义一个名为Date的类,用于输入并验证日期,类中的数据成员和成员函数应满足以下规则;在主函数中编写相

定义一个名为Date的类,用于输入并验证日期,类中的数据成员和成员函数应满足以下规则;在主函数中编写相
Date();
Date(Date &d);
Date(const char *input);
Date(int y,int m=2,int d=29);
void setDate(const char *input);
void printDate();
private:
int year;
int month;
int day;
bool pass;
bool checkFormat(const char* input);
void validate();
};
//默认构造函数
Date::Date() :year(2006),month(1),day(1)
{
validate();
}
//拷贝构造函数
Date::Date(Date &date)
{
year = date.year;
month = date.month;
day = date.day;
pass = date.pass;
validate();
}
//带参数构造函数
Date::Date(const char *input)
{
setDate(input);
}
//带默认参数构造函数
Date::Date(int y,int m,int d) :year(y),month(m),day(d)
{
validate();
}
//private checkFormat
bool Date::checkFormat(const char * input)
{
unsigned int length=strlen(input);
if(length!=10)
return false;
else
{
for(unsigned int i=0;i<4;i++)
if((unsigned int)input[i]<47 || (unsigned int)input[i]>57)
return false;
if(input[4]!=':')
return false;
for(unsigned int i=5;i<7;i++)
if((unsigned int)input[i]<47 || (unsigned int)input[i]>57)
return false;
if(input[7]!=':')
return false;
for(unsigned int i=8;i<10;i++)
if((unsigned int)input[i]<47 || (unsigned int)input[i]>57)
return false;
}
return true;
}
//private validate
void Date::validate()
{
pass=true;
if(month<0 || month>12)
{
pass=false;
return ;
}
//这里没有考虑闰年
switch(month)
{
case 1:case 3:case 5:case 7:case 8:case 10:case 12:
if(day<0 || day>31)
pass=false;
break;
case 2:
if(day<0 || day>28)
pass=false;
break;
case 4:case 6:case 9:case 11:
if(day<0 || day>30)
pass=false;
break;
default:
pass=false;
break;
}
}
//public setDate
void Date::setDate(const char * input)
{
if(checkFormat(input))
{
char temp[5];
memcpy(temp,input,4);
temp[4]='\0';
year = atoi(temp);
memcpy(temp,input+5,2);
temp[2]='\0';
month = atoi(temp);
memcpy(temp,input+8,2);
temp[2]='\0';
day = atoi(temp);
validate();
}
else
pass=false;
}
//public printDate
void Date::printDate()
{
if(pass)
{
if(day<10)
{
if(month<10)
printf("today is %d:0%d:0%d",year,month,day);
else
printf("today is %d:%d:0%d",year,month,day);
}
else
{
if(month<10)
printf("today is %d:0%d:%d",year,month,day);
else
printf("today is %d:%d:%d",year,month,day);
}
}
}
int main()
{
Date c;
Date d("2007:02:12");
Date e=d;
Date f(2008);
f.setDate("2006:04:24");
f.printDate();
return 0;
}

定义一个名为Date的类,用于输入并验证日期,类中的数据成员和成员函数应满足以下规则;在主函数中编写相 生成一个表示日期的类Date,包含year,month,day三个属性,并给出对应的构造函数,要求用这个Date类定义对 定义一个日期类Date,Date类有年月日三个数据,并对日期进行设置,用年-月-日的格式输出日期,还要判断是 编写java程序,用于将摄氏温度转换为华氏温度,反之亦然.使用继承定义一个父类,其中包含名为conver()抽象方法,定义两个子类以重写conver()方法.一个子类将提供从摄氏温度到华氏温度转换的实 编写一个名为Complex的类,完成复数的数学运算.同时提供public方法实现复数的加减乘除,并提供打印方法.(2)编写一个名为Date的类,要求提供多个构造方法完成对实例变量year、month、和day的初 C++设计并测试一个名为Ellipse的椭圆类其属性为外接矩形的左上角和右下角两个点的坐标,将点也定义为一个point类,并能计算椭圆的面积 定义一个名为complex的复数类,其属性数据为复数的实部和虚部,要求构造函数和拷贝构造函数使用,并定义成员函数打印复数的值 求用VF写个循环语句啊 编写一个程序,文件名为:prog1.prg,输入3个数,找出并输出其中最大的数 scala 定义一个过程,将列表作为输入并返回这个列表的第一个元素. 编写autolisp程序并通过visual lisp集成开发环境调试该程序 :程序文件名为drawing.lsp,程序中定义了函数drawing,用于根据用户指定的圆心位置和半径绘一个基圆和与该圆同心的另外三个圆,这三个 定义一个名为circle的圆类,其中Radius为一个表示半径的数据成员,设计 对 数据成员的各种操作(如获取圆心半径计算周长面积),并测试这个类.如获取圆心坐标 编写程序,完成如下功能:输入三个整型数,求三个整型数中的最大数,并将其输出要求:定义一个名为maxi的函数,该函数声明如下:int maxi(int a, int b);maxi函数的功能是返回 a和b之间的最大值你 定义一个Point类,在其中定义两个变量表示一个点的坐标值,再定义构造函数初始化为坐标原点然后定义一个方法实现点的移动,再定义一个方法打印当前点的坐标.并创建一个对象验证.急需 谢 Java定义一个三角形类,将求面积,周长,内切圆,外接圆等方法放入类中,并验证 定义一个日期类date定义一个日期类date,成员为y,m,d.定义一个time类,成员为h,mi.两个类中各有一个成员函数display(),用来输出私有成员.程序输入年,月,日,时,分.中间以空格隔开.(y表示年,m表示月,d 一个类的对象是另一个类的成员函数如何定义.这样对吗private: int umber; DATE birthday; DATE是另一个类 char sex; int id; 小妹求教一个有关类函数扩充的问题题目是这样的:扩充日期类Date的定义,增加一个成员函数NumberOfDays(),计算当前对象中的日期是其年份的第几天,并编写一个主函数用来测试这个函数.date类 定义一个点类,输入坐标上的两个点,计算出两点之间的距离,并输出我是c++初学者,完全不知道类是个什么东西