C++实现万年历(附代码)

本文给大家介绍如何使用C++语言解决万年历问题,笔者尽量做到讲解过程简单、细致,让读者可以轻松阅读。

正文开始:

目录

前提知识

1.闰年的判断方法

2.每年、月的时长

3.公元1年的第一天是星期一

讲解

函数说明

代码讲解

主函数

(1)RUN:计算当年是否是闰年

(2)MD:计算当月的天数

(3)YFD:计算当年第一天是星期几

(4)MFD:当月第一天是星期几

(5)Print_1:打印选择1的万年历 

(6)Print_2:打印选择2的万年历

完整代码


前提知识

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,结束。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值