C语言课程设计报告万年历1.docx
- 文档编号:8713412
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:6
- 大小:39.39KB
C语言课程设计报告万年历1.docx
《C语言课程设计报告万年历1.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告万年历1.docx(6页珍藏版)》请在冰豆网上搜索。
C语言课程设计报告万年历1
课程设计题目:
万年历
实验题目:
万年历程序的编写
实验目的:
综合运用所学的C语言知识解决一个比较实际的简单问题,侧重对数组、函数、指针、结构体和文件等相关内容的综合应用,使同学们能进一步熟悉掌握C语言的基本语法,进一步提升自己的编程能力并逐步培养编程思维,进而不断提高同学们解决问题的能力,并为以后的语言学习打下良好的基础。
实验要求:
万年历设计
主要功能包括:
1、查询某年某月每一天对应星期几。
2、可以查询某年某月的上个月或是下个月的日历情况。
3、查询某年某月某日是这一年的第几天,并查询改天是星期几。
4、判断该年是闰年还是平年,判断这一年的生肖。
实现思路(要求有文字描述,并画出流程图):
实现过程(要求有文字说明实现的过程,并对相应的代码添加注释):
见程序(程序见后)后的解析。
。
。
运行时只要你输入年月日,你要的星系都会显示出来;如果想继续输入日期的话,只需按y就可以,祥结束按n就可以结束。
实验总结(分析程序的得与失):
得:
通过这次程序设计,更使我了解了编程序的严谨性,每个问题,每个不走都得有依据,不得盲目乱造,同时也让我获得了一点编写简单程序的能力,使自己平时在理论课中很多部明白的东西明白了好多,学会了好多语句的用法,比如会用‘y’or‘n’来决定程序是否要继续;怎么控制输出格式等等。
总之在这次程序设计中我学到了很多。
失:
在编程序过程中有些函数的用法不怎么会用,偶尔会落下写简单的东西。
如‘,’‘;’等;同时在编写输出上下个情况及判断程序是否要继续的程序上花费了好多时间;函数的声明、调用既然不清楚,感到很惭愧。
实验的过失就是成功的阶梯,在过失中我也学到很多。
心得体会:
我体会到了编程序的严谨性,也觉得如果我们要是熟悉课本所讲的内容,不怕麻烦,坚持不懈,我们一定可以将它实现的。
要有耐心,有时候很多的错误就是一个地方引起的,只要认真检查,一定能突破的,所以在以后的编程序是要细心,有耐心,人不断调试程序,直至最后成功。
#include<>
struct询某年某月某天对应星期几;\n\t2.查询某年某月上下个月情况;\n\t3.显示该日子是该年的第几天,并查询改天星期几;\n\t4.判断该年是平年还是闰年以及生肖等。
\n");
printf("&&&&&&&&&+++++++++++++++++++++++++++++++++++&&&&&&&&&\n");printf("请输入年月日:
");
scanf("%d,%d,%d",&,&,&;");//是否还要继续输入日期
getchar();
z=getchar();
if(z=='y'||z=='Y')//判断是
rili();//调用函数
if(z=='n'||z=='N')//判断不是结束
getchar();
return0;
}
voidprint(intyear,intmonth)//print函数的定义
{
inti,j,n,leap,days,k,count;
leap=dobb(year);//函数调用及赋值
days=date1(year,month-1,1);
//printf("%d年\n",year);
for(i=month-1;i<=month+1;i++)//输出上下月的情况
{if(i<1)printf("%3d月份\n",i+12);//上年的12月
if(i>12)printf("%3d月份\n",i-12);//下年的1月
if(i>0&&i<13)printf("%3d月份\n",i);//本年的月份
printf("\n");
printf("\t");
printf("%-8s%-8s%-8s%-8s%-8s%-8s%-8s\n","日","一","二","三","四","五","六");输出格式
if(days==7)//控制输出的个数
{
days=0;
}
elsen=days;
printf("\t");
for(j=1;j<=8*days;j++)//控制输出的日期对齐
printf("");
switch(i)
{
case0:
case1:
case3:
case5:
case7:
case8:
case10:
case12:
count=31;break;
case4:
case6:
case9:
case11:
count=30;break;
case2:
if(leap)count=29;//2月不同情况的判断
elsecount=28;break;
}
for(k=1;k<=count;k++)//逐渐输出每月的日期
{
printf("%-8d",k);
n++;
if(n==7)
{printf("\n");printf("\t");n=0;}
}printf("\n\n");
days=n;
}
}
intdobb(intyear)//判断年份的类型函数的定义
{
if%4==0&&%100!
=0||%400==0))
return
(1);//闰年输出1
elsereturn(0);//平年输出0
}
intdate1(intyear,intmonth,intday)//date1函数的定义
{intleap,cn=0,sum;
leap=dobb(year);//调用函数
switch(month-1)
{
case11:
cn+=30;
case10:
cn+=31;
case9:
cn+=30;
case8:
cn+=31;
case7:
cn+=31;
case6:
cn+=30;
case5:
cn+=31;
case4:
cn+=30;
case3:
cn+=31;
case2:
if(leap)cn+=29;
elsecn+=28;
case1:
cn+=31;
default:
cn+=day;
}
sum=year-1+(year-1)/4-(year-1)/100+(year-1)/400+cn;
return(sum%7);//判断星期几
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 万年历