c语言程序设计-打印月历
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言课程设计》课程设计报告
题目
学号
姓名
年级专业
指导教师
完成日期年月日
师大学物理与电子信息学院
College of Physics and Electronic Information, Anhui Normal University
一、问题描述
1)日期按星期排列
2)日历查询,输入日期进行查询。
3)闰年判断功能显示查询日期所在月份的月历,还将显示所在年份
是否为闰年。
二、问题分析
对于要求1:根据蔡勒公式,可以很容易地有年月日推断出星期:
rst=yr-1+(int)((yr-1)/4)-(int)((yr-1)/100)+(int)((yr-1)/400)+d s;
wkd=rst%7;
4)对于要求2:在打印月历时,只要知道第一天的星期,就可以
依次输入后面的日期,通过定长度输出日期,在遇到某天时星期六时,就换行输出,因此可以按照月历的格式输出。
5)
对于要求3:闰年的判断,能被4整除但不能被100整除,或者能被400整除的年份为闰年,否则为平年。日期的查询,就是直接打印改天所在
月份的月历。三、小组成员:
四、总体设计功能模块
流程图
五、详细设计
主要函数:
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))
mthd[2]=29;
for (i=1;i ds+=mthd[i]; ds+=1; rst=yr-1+(int)((yr-1)/4)-(int)((yr-1)/100)+(int)((yr-1)/400)+ds; wkd=rst%7; return wkd; } showcld(int wkd,int mtd) { int dt=1,i,j=0; printf("Sun\tMon\tTue\tWed\tThu\tFri\tSat\n"); for (i=0;i { printf("\t"); j++; } while (j!=7) { printf("%d",dt); if (j<6) printf("\t"); else printf("\n"); dt++; j++; } while (1) { for (j=0;j<7;j++) { printf("%d",dt); if (j!=6) printf("\t"); else printf("\n"); if (dt!=mtd) dt++; else return 0; } } } int main() { int yr,mth,mtd,wkd,mthd[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; printf("Input the Year and Month(Year-Month):"); scanf("%d-%d",&yr,&mth); if (yr<0¦¦mth<1¦¦mth>12) return 0; if (JgYr(yr)) mthd[2]=29; mtd=mthd[mth]; wkd=CalWkd(yr,mth); showcld(wkd,mtd); return 0; } 七、测试数据 八、心得体会 经过两周的奋战,终于达到了预定的效果,完成了该信息系统的设计和编写。 此程序是一个功能比较完整的能实现一定的实际功能的程序,代码比较短,不到100行,实现的功能有显示当前日历,闰年的判断,按星期显示。 然后在程序编写过程中,遇到了问题,比如在输入年月格式不正确的情况下,有时会出现程序崩溃。到写报告为止,漏洞基本被找出,并得到修正。通过写这个程序,我对C语言有了更深的认识,C语言是一门较为实用的计算机语言。 在本次课程设计中,要感老师的指导,也要感提供意见和建议的同学,