c语言程序设计打印月历.docx
《c语言程序设计打印月历.docx》由会员分享,可在线阅读,更多相关《c语言程序设计打印月历.docx(7页珍藏版)》请在冰豆网上搜索。
![c语言程序设计打印月历.docx](https://file1.bdocx.com/fileroot1/2023-1/10/c545effa-f67a-4a63-97f0-352366deb4ed/c545effa-f67a-4a63-97f0-352366deb4ed1.gif)
c语言程序设计打印月历
《C语言课程设计》
课程设计报告
题目
学号
姓名
年级专业
指导教师
完成日期
年
月
日
安徽师范大学物理与电子信息学院
CollegeofPhysicsandElectronicInformation,AnhuiNormalUniversity
一、问题描述
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整除的年份为闰年,否则为平年。
日期的查询,就是直接打印改天所在月份的月历。
三、小组成员:
四、总体设计
功能模块
流程图
五、详细设计
主要函数:
intrunYear(intyear);
该函数判断某年是否是闰年,参数year表示要判断的年份,返回值1表示该年为闰年,0表示该年为平年。
int CalWkd(int yr,int mth)
该函数确定每月的天数,闰年二月为29天。
showcld(int wkd,int mtd)
该函数用以根据一个日期推断星期,参数为要判断的年月日。
返回值为整型,123456分别表示星期一到星期六,0表示星期天。
六、程序清单
#include
intJgYr(intyr)
{
if(yr%4==0&&yr%100!
=0¦¦yr%100==0&&yr%400==0)
return1;
else
return0;
}
intCalWkd(intyr,intmth)
{
intds=0,i,rst,wkd;
intmthd[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(JgYr(yr))
mthd[2]=29;
for(i=1;ids+=mthd[i];
ds+=1;
rst=yr-1+(int)((yr-1)/4)-(int)((yr-1)/100)+(int)((yr-1)/400)+ds;
wkd=rst%7;
returnwkd;
}
showcld(intwkd,intmtd)
{
intdt=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
return0;
}
}
}
intmain()
{
intyr,mth,mtd,wkd,mthd[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
printf("InputtheYearandMonth(Year-Month):
");
scanf("%d-%d",&yr,&mth);
if(yr<0¦¦mth<1¦¦mth>12)
return0;
if(JgYr(yr))
mthd[2]=29;
mtd=mthd[mth];
wkd=CalWkd(yr,mth);
showcld(wkd,mtd);
return0;
}
七、测试数据
八、心得体会
经过两周的奋战,终于达到了预定的效果,完成了该信息系统的设计和编写。
此程序是一个功能比较完整的能实现一定的实际功能的程序,代码比较短,不到100行,实现的功能有显示当前日历,闰年的判断,按星期显示。
然后在程序编写过程中,遇到了问题,比如在输入年月格式不正确的情况下,有时会出现程序崩溃。
到写报告为止,漏洞基本被找出,并得到修正。
通过写这个程序,我对C语言有了更深的认识,C语言是一门较为实用的计算机语言。
在本次课程设计中,要感谢老师的指导,也要感谢提供意见和建议的同学,才得以大致完成该设计。
通过本次设计我也明白了团队合作的重要,也体会到了编程的乐趣。
再次感谢老师的指导!
九、参考文献
●谭浩强,c语言设计教程,清华大学出版社,2007年
●赵永哲,李雄飞,戴秀英编著,《c语言设计程序》,科学出版社,2003年
●夏宽理,赵志正编著,《c语言程序设计》,中国铁道出版社,2006年
●谭浩强编著,《c程序设计》,清华大学出版社,1991年
物理与电子信息学院课程设计评定意见
指导教师评语
主要内容包括:
设计报告内容的完整性和完成情况、报告格式的规范性、通过课程设计取得的收获等。
成绩:
签名:
年 月 日