C语言课程设计报告-万年历1

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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");

printf("功能有:\n"); printf("\t");

printf("1.查询某年某月某天对应星期几;\n\t2.查询某年某月上下个月情况;\n\t3.显示该日子是该年的第几天,并查询改天星期几;\n\t4.判断该年是平年还是闰年以及生肖等。\n"); printf("&&&&&&&&&+++++++++++++++++++++++++++++++++++&&&&&&&&&\n");pr intf("请输入年月日:");

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%100!=0)||date.year%400==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%100!=0)||date.year%400==0) // 判断平闰年的语句printf("%d 是闰年。\n",date.year); //输出平闰年的

else

printf("%d 是平年。\n",date.year);

if(date.year>=2013) //判断2013年后生肖的语句

{a=(date.year-2013)%12;

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;

}

}

else b=(2013-date.year)%12;

switch(b) // 判断2013年前生肖的语句{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;

}

dobb( date.year); //调用函数

date1( date.year, date.month,date.day); //调用函数

print(date.year,date.month); //调用函数

printf("continue>>>>>>>>>>>>>>>>>>Y/N.."); //是否还要继续输入日期getchar();

相关文档
最新文档