万年历的C++实现
1、课程设计目的
编写具有以下功能的C++程序:
(1)、输入一个年份,输出是在屏幕上显示该年的日历。
假定输入的年份在1940-2040年之间。
(2)、输入年月,输出该月的日历。
(3)、输入年月日,输出距今天还有多少天,星期几,是否是公历节日。
要求该程序能提供日历的一些基本功能,且方便管理和
操作,易于扩充
2、需求分析
现在的软件市场的确有各种各样的日历软件可供我们
选择,这些软件大多含有其他的一些的功能,真正方便
快捷的日历软件却并不多,因此设计一个能真正服务大
家的日历程序是有必要的。
3、设计思路
(1)、在屏幕上输出某一年的日历。
考虑到程序有三个主要功能模块,于是运用了
类的相关知识,建立一个calendar.h的头文件。
由于程序提供1940年以后年份的服务,因此首
先要确定1940年1月1号为星期几,然后以此
为基准点确定该天以后的日历,对于功能(1),
需要推出一个算法,如下:k的初值为2,
test=((year-1940)/4*5+((year-1940)%4==0?0:((year-1940)%4+1)))%7+2;
k=test%7==0?7:test%7;//k=0表示星期天,test为一中间变量,
用来确定1940年以后每一年的1月1号为星期
几,这样更方便输出每一年的日历,而且在程
序中的循环过程也大大提供程序运行的效率。
因为在日历里面,星期是连续不断地,七天一