c语言程序设计---万年历01
西安科技大学
《C语言程序设计》
课程设计报告
题 目 * 万年历 *
院、系 ( 部) 电气与控制工程学院微电子系
专业及班级 微电子 1001
姓 名 刘建辉 刘鑫 张莉莉
日 期 2011.07.06
万年历 /* 刘建辉·张莉莉·刘鑫 */
1. 功能要求:
(1) 输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在
1940-2040 年之间。
(2) 输入年月,输出该月的日历。
(3) 输入年月日,输出距今天还有多少天,星期几,是否是公历节日。
设计思路:设置两个数组:一维 m数组存放月份的天数,如 m(8)=31,即 8 月份
为 31 天;二维数组 d 数组存放日号,如 d(3,24)=11 ,即 3 月份第 2 个星期的星
期四为 11 号,其中 24 分解为十位数字 2 与个位数字 4。
根据历法, 设 y 年元旦是星期 w (取值为0~6,其中 0 为星期日),整数 w 的计算
公式为:
y 1 y 1 y 1
w ( y )% 7 其中 [] 为取整。
4 100 400
设置三重循环 i ,j ,k 为 d 数组的的( i ,j*10+k )赋值。i:1~12 ,表示月份号;
j:1~6 ,表示每月约定最多 6 个星期; k:0~6 ,表示星期 k 。从元旦的 a=1 开始,
每赋一个元素, a 增 1,同时 w=k+1。当 w=7时,w=0 (为星期日)。当 a>m(i) 时,
终止第 i 月的赋值操作。
2. 总体设计
(1),系统业务处理流程:
开始
输 入 选 项
P=A 或 B 或
C
输入年份 输入年月 输入当前年月日
输入查询年月日
计 算 该 年 第 一 天 的 星 期
y 1 y 1 y 1 判断闰
w (y )%7
4 100 400 真 年平年 假 i=0
二月为 29 天 二月为 28
i
判 断 闰