C++计算某天是某年的第几天

做这种题感觉还是很实用的。主要就是锻炼以下类的定义和使用。

问题主要描述:

定义一个日期类Date:

内有数据成员年、月、日。

另有成员函数:

(1)构造函数用于初始化数据成员。

(2)输出函数(打印)。

(3)闰年的判断。

编写主函数:创建日期对象,从键盘输入年、月、日,计算并输出该日是该年的第几天。

输入样例:

2006 3 5

输出样例:

64   (2006年3月5日是该年的第64天)

Date类如下:(学过C++的人对这个类应该都会感到很清晰)

class Date{

private:

int year,month,day;//私有成员

public://共有成员函数

Date(int year1, int month1, int day1);//构造函数

int judge();//闰年的判断函数

void print();//打印函数

};

构造函数的实现:

Date::Date(int year1, int month1, int day1){

year = year1;

month = month1;

day = day1;

}

闰年的判断函数的实现:

int Date::judge(){

if(year%4 == 0 && year%100 != 0 || year % 400 == 0)

return 1;

else

return 0;

}

打印函数的实现:

void Date::print(){

int days = 0;

int str[12] = {31,28,31,30,31,30,31,31,30,31,30,31};

if(judge())

str[1] = 29;

for(int i = 0;i < month - 1; i ++)

days += str[i];

cout<

}

ps:对于这部分,讲一下思路吧,把12个月的天数放在一个字符串数组里,闰年和平年的区别只有2月,闰年2月28天,平年2月29天,判断结束后只需将str[1]进行修改,计算天数时只需将各月天数叠加再加上日(day)而已。

主函数的实现:

#include

using namespace std;

int main(){

int yy,mm,dd;

cin>>yy>>mm>>dd;

Date a(yy,mm,dd);//定义类对象a

a.print();//调用打印函数

}

运行结果如下:

总结以下,用C++解决问题有时候真的很清晰,主函数简介明了,所有的操作都封装在类里,类里面也是用private和public划分的很清晰,成员函数的声明和实现分开,声明在类里面,实现在类外面。(当然也可以都写在类里,不过分开更好,程序员要做的就是条例清晰,层次明了,这样看着会很舒服)。

你可能感兴趣的:(C++计算某天是某年的第几天)