c语言编程万年历查询程序。

实验名称:万年历的查询和打印

内容:设计一个查询和打印万年历的程序。

步骤:

1.绘制程序流程图;

2.写程序;

3.调试程序,分析调试过程中出现的问题,找出错误的原因,并进行修正;

4.通过调试修改写出正确的源程序。

要求:

1.程序运行后,首先在屏幕上显示主菜单:

1.查询今天是星期几。

2.查询一年是否是闰年。

3.打印某一年的日历

退出

2.在主菜单中输入1后,将显示:

请输入年、月、日(XXXX,XX,XX)

运行后的输出:XX,XX,XXXX是第x周,是否继续查询(Y/N)?

如果输入y,将再次显示“请输入年、月、日(XXXX,XX,XX)”,否则将返回主菜单。

3.在主菜单中输入2后,将显示:

“请输入要检查的年份?(XXXX)”

运行后的输出:是(否)在XXXX是闰年。继续查询(是/否)?

如果输入y,它将再次显示。“请输入要检查的年份?(XXXX)”,否则返回主菜单。

4.在主菜单中输入3后,将显示:

"请输入要打印的年份(XXXX)"

运行后,以下列格式输出XXXX日历:

XXXX

x(月数)

0 1 2 3 4 5 6

S M T W T F S

××年×月×日

xx xx xx xx xx xx

xx xx xx xx xx xx xx

xx xx xx xx xx xx xx

xx xx xx

x(月数)

0 1 2 3 4 5 6

S M T W T F S

××××

x x x xxxx xx xx

xx xx xx xx xx xx xx

xx xx xx xx xx xx xx

xx xx xx xx xx

"您想继续打印吗(是/否)?"运行后会显示。

如果输入y,将再次显示“请输入要打印的年份(XXXX)”,否则将返回主菜单。

5.在主菜单中输入4后,会显示:“您真的要退出吗(Y/N)?”

如果输入y,结束程序运行,否则主菜单将再次显示。

提示:

1.闰年的计算:闰年是满足以下两个要求之一的年份:

能被4整除,但不能被100整除;

能被4整除,也能被400整除。

闰年的二月是29天,平年的二月是28天。

3.星期几的计算:

s = X-1+(X-1)/4+(X-1)/100+(X-1)/400+C

x是年份,C是从元旦到今天的天数。

S/7的余数不仅仅是周数。

例1:1982 65438+2月2 6日。

由于1982不是闰年(不能被4整除),所以那一年的2月是28天。

c = 31+28+31+30+31+30+31+30+31+30+31+30+30+26 = 360

(1月至11月的天数+12月的实际天数)

s = 1982-1+(1982-1)/4+(1982-1)/100+(1982-1)/400+360 = 2821.3925

S/7 = 2821/7 = 403余数是0,所以这一天是星期天。

例2:2000年3月8日

由于2000年是闰年(可被4、100、400整除),那一年的2月是29天。

c = 31+29+8 = 68(1月到2月的天数+3月的实际天数)

s = 2000-1+(2000-1)/4+(2000-1)/100+(2000-1)/400+68 = 2551.757

S/7 = 2551/7 = 364余数是3,所以这一天是星期三。