课程设计说明万年历程序设计Word格式.docx
- 文档编号:17182741
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:13
- 大小:80KB
课程设计说明万年历程序设计Word格式.docx
《课程设计说明万年历程序设计Word格式.docx》由会员分享,可在线阅读,更多相关《课程设计说明万年历程序设计Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
概要设计
1-判断是否为闰年
计算所输入的年份是否可被4整除,若不能被整除,为平年。
若可被4整除,计算此年份能否被100整除,不能被100整除则为闰年。
既能被4整除,也能被100整除的年份,若也能被400整除,则为闰年,否则为平年。
闰年366天,平年365天
2-主要设计思路
四:
详细设计
源程序:
#include<
stdio.h>
stdlib.h>
voidDayOfWeek()
{
intrtnDay;
inty,m,d;
charch;
while
(1)
{
printf("
请输入年月日(xxxx,xx,xx):
"
);
scanf("
%d,%d,%d"
&
y,&
m,&
d);
fflush(stdin);
rtnDay=(3*y-(7*(y+(m+9)/12))/4+(23*m)/9+d+17-((y+(m<
3?
-1:
0))/100+1)*3/4)%7;
%04d年%02d月%02d日是星期%d\n"
y,m,d,rtnDay?
rtnDay:
7);
继续查询(y/n)"
ch=getchar();
if(ch!
='
y'
&
&
ch!
Y'
)
break;
}
}
voidGetMonth(intD,intmd,intn)
{
intN,m,d,y,c,Wd;
inti,maxday,i1;
if(md>
=13||md<
=0)
HAVEWRONG!
"
else
for(i1=0;
;
md++,i1++)
if(md==0)
{
md=12;
D-=1;
}
else
if(md==13)
md=1;
D+=1;
m=md;
\n============%d,%2d============\n"
D,md);
if(0<
m&
m<
=12)
switch(m)
case1:
maxday=31;
break;
case2:
if(D%4==0&
D%100!
=0||D%400==0)
maxday=29;
maxday=28;
case3:
case4:
maxday=30;
case5:
case6:
case7:
case8:
case9:
case10:
case11:
case12:
default:
printf("
HAVEWRONG"
=2)
N=D-1;
m=m+10;
N=D;
m=m-2;
c=N/100;
y=N%100;
Wd=((1+(13*m-1)/5+y+y/4+c/4-2*c)%7+7)%7;
SUNMOUTUEWEDTURFRISAT\n"
for(i=0;
i<
Wd;
i++)
%4c"
'
'
for(d=1;
d<
=maxday;
d++)
%4d"
d);
Wd=(Wd+1)%7;
if(Wd==0)
\n"
if(i1==n)
voidMonthOfYear()
inty,m;
请输入年月(xxxx,xx):
%d,%d"
m);
GetMonth(y,m,0);
\n继续查询(y/n)"
voidGetYear()
inty;
请输入年:
%d"
y);
GetMonth(y,1,11);
intmain()
while
(1)
system("
cls"
1.查询星期\n"
2.查询月份\n"
3.显示一年\n"
4.退出程序\n"
switch(ch)
case'
1'
:
DayOfWeek();
2'
MonthOfYear();
3'
GetYear();
4'
是否退出(y/n)"
if(ch=='
||ch=='
exit(0);
五:
运行效果及分析
1登录界面
输入3,通过输入年份可显示一年每个月份的日历;
输入2,通过输入年份和月份(中间以空格分开)可显示该月的日历;
若输入1,通过输入年份月份和日期(中间以逗号分开)可显示该日的星期;
输入4,则退出查询系统
2查询星期
输入1后回车,然后输入具体的年月日可查出该天为星期几
3查询月历
输入2回车,然后输入年月可显示该月月历
4显示一年
输入3后回车,输入一个有效年份可显示该年的十二个月的月历。
六:
课程设计心得
通过本次课程设计我第一次通过自己的实践对书本上的知识进行了与生活相关的运用。
在这个程序中,主要应用了这学期所学习的循环,条件语句,数组以及调用函数。
这些知识的应用使我对课本内容的认识得到了加深。
在编写程序的过程中,也出现了很多错误。
比如程序语句错误导致检测时连续报错;
函数语句编写错误导致输出结果与实际不符等。
出现这些情况后,通过对一些新知识的学习和对网上相关资料的阅览,我发现了自己的程序的问题所在并进行了改正。
最后得到了正确的结果。
在程序的编写完成后,我按照要求对程序进行了拓展。
在输出年历的基础上增加了月历及确定日期的输出。
经过这一次的课程设计我再一次清楚地认识到了编译的重要性,虽然课程结业了,但我们仍然要不断的学习这一方面的知识,只有这样我们才能够成为一个出色的大学生!
参考文献:
《c语言程序设计教程》第三版谭浩强
《C语言程序设计》.北京:
清华大学出版社.李泽中孙红艳主编.
《.C语言程序设计教程[M]》清华大学出版社.杨文君,杨柳
《C语言程序设计》精品课程学习网站
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 说明 万年历 程序 设计