设计Date类,该类采用整数存储日期:month、day和year。其函数成员具有按如下方式输出日期的功能:5-25-2015May 25,201525 May 2015写一个完整程序,检验此类。注意:对于日期day成员,不能接受大于31或小于1的值,对于月month,不能接受大于12或小于1的值。1)部分参考程序,仅参考,可以有不一样的设计思路。
#include
using namespace std;
class Date{ //日期类的定义
public:
bool setDate(int, int, int);
void display();
char *getMonth(int);
private:
int year,month,day; //存储日期的年、月、日
}; //获取月份的英文输出内容
char *Date::getMonth(int m){
……
} //设置成员变时,如果成功赋值则返回ture,否则返回false
bool Date::setDate( int mm, int dd, int yy) {
……
} //在屏幕上显示日期
void Date::display()
{
……
}
int main() {
Date myDate; //存储日期
int year,month,day; //临时存储年,月,日
while(true)
{
cout<<"请按yyyy格式输入年:";
cin>>year;
cin.ignore();//用来清除输入缓冲区的内容,清除上一次输入对下一次输入的影响,默认为cin.ignore(1,EOF),即把EOF前的1个字符清掉
cout<<"请按mm格式输入月:";
cin>>month;
cin.ignore();
cout<<"请按dd格式输入日:";
cin>>day;
cin.ignore();
if(myDate.setDate(month,day,year))
break;
else cout<<"日期输入错!请重新输入:";
}
cout<<"你输入的日期是:\n";
myDate.display(); return 0;
}
2)运行结果
请按(四个y)格式输入年:2015
请按mm格式输入月:5
请按dd格式输入日:25
你输入的日期是:5-25-2015
May 25,2015
25 May 2015
#include<iostream>
using namespace std;
class Date{ //日期类的定义
public:
bool setDate(int, int, int);
void display();
void getMonth(int);
private:
int year,month,day; //存储日期的年、月、日
}; //获取月份的英文输出内容
void Date::getMonth(int m){
month = m;
} //设置成员变时,如果成功赋值则返回ture,否则返回false
bool Date::setDate( int mm, int dd, int yy) {
if (mm > 0 && dd > 0 && yy > 0) {
month = mm;
day = dd;
year = yy;
return true;
}
else
return false;
} //在屏幕上显示日期
void Date::display()
{
enum months
{
January = 1, February, March, April, May, June, July, August, September, October, November, December
};
cout<<day<<"-"<<month<<"-"<<year<<"\n";
switch(month)
{
case January: cout<<"January"<<" "<<January<<day<<" "<<year<<"\n"
<<day<<" "<<"January"<<" "<<year<<"\n"; break;
case February: cout<<"February"<<" "<<day<<" "<<year<<"\n"
<<day<<" "<<"February"<<" "<<year<<"\n"; break;
case March: cout<<"March"<<" "<<day<<" "<<year<<"\n"
<<day<<" "<<"March"<<" "<<year<<"\n"; break;
case April: cout<<"April"<<" "<<day<<" "<<year<<"\n"
<<day<<" "<<"April"<<" "<<year<<"\n"; break;
case May: cout<<"May"<<" "<<day<<" "<<year<<"\n"
<<day<<" "<<"May"<<" "<<year<<"\n"; break;
case June: cout<<"June"<<" "<<day<<" "<<year<<"\n"
<<day<<" "<<"June"<<" "<<year<<"\n"; break;
case July: cout<<"July"<<" "<<day<<" "<<year<<"\n"
<<day<<" "<<"July"<<" "<<year<<"\n"; break;
case August: cout<<"August"<<" "<<day<<" "<<year<<"\n"
<<day<<" "<<"August"<<" "<<year<<"\n"; break;
case September: cout<<"September"<<" "<<day<<" "<<year<<"\n"
<<day<<" "<<"September"<<" "<<year<<"\n"; break;
case October: cout<<"October"<<" "<<day<<" "<<year<<"\n"
<<day<<" "<<"October"<<" "<<year<<"\n"; break;
case November: cout<<"November"<<" "<<day<<" "<<year<<"\n"
<<day<<" "<<"November"<<" "<<year<<"\n"; break;
case December: cout<<"December"<<" "<<day<<" "<<year<<"\n"
<<day<<" "<<"December"<<" "<<year<<"\n"; break;
default: cout<<"Error input\n"; break;
}
}
int main() {
Date myDate; //存储日期
int year,month,day; //临时存储年,月,日
while(true)
{
cout<<"请按yyyy格式输入年:";
cin>>year;
cin.ignore();//用来清除输入缓冲区的内容,清除上一次输入对下一次输入的影响,默认为cin.ignore(1,EOF),即把EOF前的1个字符清掉
cout<<"请按mm格式输入月:";
cin>>month;
cin.ignore();
cout<<"请按dd格式输入日:";
cin>>day;
cin.ignore();
if(myDate.setDate(month,day,year))
break;
else cout<<"日期输入错!请重新输入:";
}
cout<<"你输入的日期是:\n";
myDate.display(); return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: