本文给大家介绍如何使用C++语言解决万年历问题,笔者尽量做到讲解过程简单、细致,让读者可以轻松阅读。
正文开始:
目录
前提知识
1.闰年的判断方法
普通闰年:公历年份是4的倍数,且不是100的倍数,为闰年。
世纪闰年:公历年份是400的倍数也是闰年。
其他为平年。
2.每年、月的时长
平年一年365天。每月天数分别为{ 31,28,31,30,31,30,31,31,30,31,30,31 }。
闰年二月多一天,为29天,一年366天。
3.公元1年的第一天是星期一
讲解
笔者讲解的万年历问题有两种输入输出类型,按年输出or按月输出。
根据模块化程序设计思想,我们把万年历问题分为计算天数和输出两个部分。
借助函数我们可以将复杂的问题分解为小问题分别解决。
函数说明
分多个模块进行:
(1)RUN:计算当年是否是闰年
(2)MD:MonthDay,计算当月的天数,函数名简写为MD
(3)YFD:YearFirstDay,计算当年第一天是星期几,简写为YFD
(4)MFD:MonthFirstDay,计算当月第一天是星期几,简写为MFD
(5)Print:根据当月天数打印万年历 i)Print_1:打印选择1的万年历 ii)Print_2:打印选择2的万年历
代码讲解
主函数
先输出提示内容。
cout << "万年历显示程序" << endl;
cout << "***********************" << endl;
cout << "1 按年输出" << endl << "2 按月输出" << endl << "0 退出" << endl;
cout << "***********************" << endl;
根据输入,输出不同类的万年历或退出。
for (int i = 1;;i++)
{
cout << "万年历 " << i << " :" << endl;
cout << "请输入您的选择" ;
int choice;
cin >> choice;
if (choice == 1)
{
cout << "请输入显示的年份" ;
int year;
cin >> year;
Print_1(year);
}
else if (choice == 2)
{
int year, month;
cout << "请输入显示的年份" ;
cin >> year;
cout << "月份" ;
cin >> month;
Print_2(year, month);
}
else if (choice == 0)
{
cout << "程序结束!" << endl;
break;
}
cout << endl;
}
以上只是简单的输入与函数调用。for循环是为了有多次输入与输出,直至输入0,结束。

4200

被折叠的 条评论
为什么被折叠?



