C语言课程设计报告 万年历
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.
课程设计题目:万年历
实验题目:万年历程序的编写实验目的:综合运用所学的C语言知识解
决一个比较实际的简单问题,侧重对数组、函数、指针、结构体和文件等相关内容的综合应用,使同学们能进一步熟悉掌握C语言的基本语法,进一步提升自己的编程能力并逐步培养编程思维,进而不断提高同学们解决问题的能力,并为以后的语言学习打下良好的基础。
实验要求:万年历设计
主要功能包括:
1、查询某年某月每一天对应星期几。
2、可以查询某年某月的上个月或是下个月的日历情况。
3、查询某年某月某日是这一年的第几天,并查询改天
是星期几。
4、判断该年是闰年还是平年,判断这一年的生肖。
实现思路(要求有文字描述,并画出流程图):.
.
开始
.
.
实现过程(要求有文字说明实现的过程,并对相应的代码添加注释):见程序(程序见后)后的解析。。。运行时只要你输入年月日,
你要的星系都会显示出来;如果想继续输入日期的话,只需按y就可以,祥就可以结束。n结束按实验总结(分析程序的得与失):
得:通过这次程序设计,更使我了解了编程序的严谨性,每个问题,每个不
走都得有依据,不得盲目乱造,同时也让我获得了一点编写简单程序的能力,使自己平时在理论课中很多部明白的东西明白了好多,学会了好多语句的用法,比如会用‘y' or‘ n'来决定程序是否要继续;怎么控制输出格式等等。总之在这次程序设计中我学到了很多。
失:在编程序过程中有些函数的用法不怎么会用,偶尔会落下写简单的东西。
如‘,'‘;'等;同时在编写输出上下个情况及判断程序是否要继续的程序上花费了好多时间;函数的声明、调用既然不清楚,感到很惭愧。实验的过失就是成功的阶梯,在过失中我也学到很多。
心得体会:我体会到了编程序的严谨性,也觉得如果我们要是熟悉课本所讲的内容,不怕麻烦,坚持不懈,我们一定可以将它实现的。要有耐心,有时候很
多的错误就是一个地方引起的,只要认真检查,一定能突破的,所以在以后的编程序是要细心,有耐心,人不断调试程序,直至最后成功。
#include
struct //定义包含年月日数组结构体
{int year;
int month;
int day;
.
.
}date;
int main() //主函数
{
void print(int,int); //函数的声明
int dobb(int); //函数的声明
int date1(int,int,int); //函数的声明
int rili(); //函数的声明
rili(); //函数的调用
return 0;
}
int rili() //定义函数
{
int days; //定义整型变量
int a,b; //定义整型变量
char z; // 定义字符变量
printf(+++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n); //
输出头的格式
printf( 万年历\n\n);
printf(+++++++++++++++++++++++++++++++++++++++++++++++++++++\n);
牰湩晴尨功能有:\n); printf(\);
printf(.查询某年某月某天对应星期几;\n\t2.查询某年某月上下个月情况;\n\t3.显示该日子是该年的第几天,并查询改天星期几;\n\t4.判断该年是平年还是闰年以及生肖等。\n);
printf(&&&&&&&&&+++++++++++++++++++++++++++++++++++&&&&&&&&&\n);pr湩晴
尨请输入年月日:);
scanf(%d,%d,%d,&date.year,&date.month,&date.day); // 输入年月日
switch(date.month) //计算第几天的
{case 1: days=date.day; break;
case 2: days=date.day+31; break;
case 3: days=date.day+59; break;
case 4: days=date.day+90; break;
case 5: days=date.day+120; break;
case 6: days=date.day+151; break;
case 7: days=date.day+181; break;
case 8: days=date.day+212; break;
case 9: days=date.day+243; break;
case 10: days=date.day+273; break;
case 11: days=date.day+304; break;
case 12: days=date.day+334; break;
}
.
.
if(((date.year%4==0&&date.year_x0010_0!=0)||date.year@0==0)&&date.month>=3) days++; printf(%d月%d日是%d的第%d天。\n,date.month,date.day,date.year,days);
if((date.year%4==0&&date.year_x0010_0!=0)||date.year@0==0) // 判断平闰年的语句printf(%d 是闰年。\n,date.year); //输出平闰年的
else
printf(%d 是平年。\n,date.year);
if(date.year>=2013) //判断2013年后生肖的语句
{a=(date.year-2013)_x0012_;
switch(a)
{case 0: printf(%d 是蛇年。\n,date.year); break;
case 1: printf(%d 是马年。\n,date.year); break;
case 2: printf(%d 是羊年。\n,date.year); break;
case 3: printf(%d 是猴年。\n,date.year); break;
case 4: printf(%d 是鸡年。\n,date.year); break;
case 5: printf(%d 是狗年。\n,date.year); break;
case 6: printf(%d 是猪年。\n,date.year); break;
case 7: printf(%d 是鼠年。\n,date.year); break;
case 8: printf(%d 是牛年。\n,date.year); break;
case 9: printf(%d 是虎年。\n,date.year); break;
case 10: printf(%d 是兔年。\n,date.year); break;
case 11: printf(%d 是龙年。\n,date.year); break;
}
}