C++第三章 第1题

题目:设计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);
}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值