题目:设计Date类,该类采用3个整数存储日期:month、day和year。其函数成员具有按如下方式输出日期的功能:
12-25-11
December 25, 2011
25 December 2011
#include<iostream>
#include<string.h>
char *transform(int x); //将月份数字转换为单词
using namespace std;
class Date
{
int month,day,year;
public:
void setMonth(int a){month=a;};
void setDay(int b){day=b;};
void setYear(int c){year=c;};
int getMonth(){return month;};
int getDay(){return day;};
int getYear(){return year;};
int printOne(); //第一种输出 12-25-11
int printTwo(); //第二种输出 December 25,2011
int printThree(); //第三种输出 25 December 2011
};
int Date::printOne()
{
int x;
x=year%100;
cout<<month<<"-"<<day<<"-"<<x<<endl;
}
int Date::printTwo()
{
cout<<transform(month)<<" "<<day<<","<<year<<endl;
}
int Date::printThree()
{
cout<<day<<" "<<transform(month)<<" "<<year;
}
int main()
{
Date date;
int month,year,day,flag=0;
cout<<"请输入年份:"<<endl;
cin>>year;
cout<<"请输入月份:"<<endl;
cin>>month;
while(flag<200) //检验月份是否在1~12
{
if(month<1||month>12)
{
cout<<"月份输入错误,请重新输入:";
cin>>month;
flag++;
}
else
break;
}
cout<<"请输入天:"<<endl;
cin>>day;
while(flag<200) //检验日期是否在1~31
{
if(day>31||day<1)
{
cout<<"日输入错误,请重新输入:"<<endl;
cin>>day;
flag++;
}
else
break;
}
date.setMonth(month);
date.setYear(year);
date.setDay(day);
date.printOne();
date.printTwo();
date.printThree();
}
char *transform(int x)
{
static char str[20];
switch(x)
{
case 1:strcpy(str,"January");break;
case 2:strcpy(str,"Febuary");break;
case 3:strcpy(str,"March");break;
case 4:strcpy(str,"April");break;
case 5:strcpy(str,"May");break;
case 6:strcpy(str,"June");break;
case 7:strcpy(str,"July");break;
case 8:strcpy(str,"August");break;
case 9:strcpy(str,"September");break;
case 10:strcpy(str,"October");break;
case 11:strcpy(str,"November");break;
case 12:strcpy(str,"December");break;
}
return(str);
}