




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计题目:万年历实验题目: 万年历程序的编写实验目的: 综合运用所学的 c 语言知识解决一个比较实际的简单问题,侧重对数组、函数、指针、结构体和文件等相关内容的综合应用,使同学们能进一步熟悉掌握c 语言的基本语法,进一步提升自己的编程能力并逐步培养编程思维, 进而不断提高同学们解决问题的能力,并为以后的语言学习打下良好的基础。实验要求: 万年历设计主要功能包括:1、查询某年某月每一天对应星期几。2、可以查询某年某月的上个月或是下个月的日历情况。3、查询某年某月某日是这一年的第几天,并查询改天是星期几。4、 判断该年是闰年还是平年,判断这一年的生肖。实 现 思 路 ( 要 求 有 文 字 描
2、 述 , 并 画 出 流 程 图 ):编辑版 word开始实现过程(要求有文字说明实现的过程,并对相应的代码添加注释) : 见程序(程序见后)后的解析。 。 。运行时只要你输入年月日,你要的星系都会显示出来;如果想继续输入日期的话,只需按y 就可以,祥结束按 n 就可以结束。实验总结(分析程序的得与失) :得: 通过这次程序设计, 更使我了解了编程序的严谨性,每个问题,每个不走都得有依据,不得盲目乱造,同时也让我获得了一点编写简单程序的能力,使自己平时在理论课中很多部明白的东西明白了好多, 学会了好多语句的用法, 比如会用 y or n来决定程序是否要继续;怎么控制输出格式等等。总之在这次程序
3、设计中我学到了很多。失: 在编程序过程中有些函数的用法不怎么会用, 偶尔会落下写简单的东西。如 , ; 等;同时在编写输出上下个情况及判断程序是否要继续的程序上花费了好多时间;函数的声明、调用既然不清楚,感到很惭愧。实验的过失就是成功的阶梯,在过失中我也学到很多。心得体会: 我体会到了编程序的严谨性,也觉得如果我们要是熟悉课本所讲的内容,不怕麻烦,坚持不懈,我们一定可以将它实现的。要有耐心,有时候很多的错误就是一个地方引起的,只要认真检查, 一定能突破的, 所以在以后的编程序是要细心, 有耐心,人不断调试程序,直至最后成功。#includestruct/定义包含年月日数组结构体int year
4、;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(+nn);/输出头的格式printf(万 年 历 nn);printf(+n);printf(功能有:n); printf(t);显示该
5、日n);printf(1.查询某年某月某天对应星期几;nt2.查询某年某月上下个月情况;nt3.子是该年的第几天,并查询改天星期几;nt4.判断该年是平年还是闰年以及生肖等。printf(&+&n);printf(请输入年月日:);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
6、=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.
7、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)%
8、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(%
9、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
10、.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
11、(%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(continuey/n.);getchar();z=getchar();if(z=y|z=y)/ 判断是rili();/ 调用函数if(z
12、=n|z=n)/ 判断不是结束getchar();return 0;void print(int year,int month)/print 函数的定义int i,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(i12) printf(%3d 月份 n,i-12);/ 下年的 1 月if(i0&i13) printf(%3d 月份 n,i);/ 本年的月份printf(n);p
13、rintf(t);printf(%-8s%-8s%-8s%-8s%-8s%-8s%-8sn, 日 ,一,二 ,三, 四,五,六); 输 出格式if(days=7)/ 控制输出的个数 days=0; else n=days;printf(t);for(j=1;j=8*days;j+)/ 控制输出的日期对齐printf( );switch(i) case 0:case 1:case 3:case 5:case 7:case 8:case 10:case 12:count=31;break;case 4:case 6:case 9:case 11:count=30;break;case 2:if(l
14、eap)count=29;/2 月不同情况的判断else count=28; break;for(k=1;k=count;k+)/ 逐渐输出每月的日期printf(%-8d,k);n+;if(n=7)printf(n);printf(t);n=0;printf(nn);days=n;int dobb(int year)/ 判断年份的类型函数的定义if(date.year%4=0&date.year%100!=0|(date.year%400=0) return(1); / 闰年输出 1else return(0); / 平年输出 0 int date1(int year,int month,int day) /date1 函数的定义 int leap,cn=0,sum;leap=dobb(year); / 调用函数switch(month-1)case 11: cn+=30;case 10: cn+=31;case 9: cn+=30;case 8: cn+=31;case 7: cn+=31;case 6: cn+=30;case 5: cn+=3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 投资咨询工程师沟通与表达能力试题及答案
- 预算员模拟考试题目试题及答案
- 注册会计师实务技能要求试题及答案
- 全媒体运营师文案写作试题及答案
- 农产品采购合同范本:蜂蜜专项
- 供应链管理外包合同样本
- 2023二年级数学下册 2 表内除法(一)1 除法的初步认识练习课教学实录 新人教版
- 七年级地理下册 8.6巴西教学实录 (新版)湘教版
- 南宁疫情防控课件图片
- 9《纸》 教学设计-2024-2025学年科学一年级上册湘科版
- 2024年上海杨浦区社区工作者笔试真题
- 建筑消防工程监理细则
- 2025年社会工作者职业水平考试初级综合能力测试题库
- 四川2025年01月成都市金牛区人民政府金泉街道办事处2025年招考2名社区工作者笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 2025届山东省青岛市高三下学期一模英语试题(含答案)
- 导数压轴大题归类知识清单(15题型提分练) 原卷版-2025年高考数学一轮复习
- 2025春统编版(2024)道德与法治一年级下册第二单元我们一起长大《第6课 请帮我一下》教学设计(名师教案)表格版
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
- 基础设施维护方案说明
- 徐鹤宁老师冠军班课程笔记,价值29800,绝对经典!
- 收方管理办法
评论
0/150
提交评论