《C 语言课程设计 》
课程设计报告
题 目
学 号
姓 名
年级专业
指导教师
完成日期 年 月 日
安徽师范大学物理与电子信息学院
College of Physics and Electronic Information, Anhui Normal University
2
一、 问题描述
1) 日期按星期排列
2) 日历查询,输入日期进行查询。
3) 闰年判断功能显示查询日期所在月份的月历, 还将显示所在年份
是否为闰年。
二、 问题分析
对于要求 1:
根据蔡勒公式, 可以很容易地有年月日推断出星
期:
rst=yr-1+(int)((yr-1)/4)-(int)((yr-1)/100)+(int)((yr-
1)/400)+ds;
wkd=rst%7;
4) 对于要求 2: 在打印月历时,只要知道第一天的星期,就可以
依次输入后面的日期,通过定长度输出日期,在遇到某天时星期六时,就
换行输出,因此可以按照月历的格式输出。
5)
对于要求 3:闰年的判断,能被 4 整除但不能被 100 整除,或者能被
400 整除的年份为闰年,否则为平年。日期的查询,就是直接打印改天所在
月份的月历。
三、 小组成员:
3
四、 总体设计
功能模块
输入日期 日期查询 闰年判断 排列星期
月历显示
流程图
进入程序
输入年月
判断闰年
按星期排
输出月历
4
五、 详细设计
主要函数:
int runYear(int year);
该函数判断某年是否是闰年,参数 year 表示要判断的年份,返回值 1 表示该年
为闰年, 0 表示该年为平年。
int CalWkd(int yr,int mth)
该函数确定每月的天数,闰年二月为 29 天。
showcld(int wkd,int mtd)
该函数用以根据一个日期推断星期,参数为要判断的年月日。返回值为整型,
123456 分别表示星期一到星期六, 0 表示星期天。
六、 程序清单
#include
int JgYr(int yr)
{
if (yr%4==0&&yr%100!=0||yr%100==0&&yr%400==0)
return 1;
else
return 0;
}
int CalWkd(int yr,int mth)
{
int ds=0,i,rst,wkd;
int mthd[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if (JgYr(yr))