版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计题目:万年历实验题目:万年历程序的编写实验目的:综合运用所学的C语言知识解决一个比较实际的简单问题,侧重对数组、函数、指针、结构体和文件等相关内容的综合应用, 使同学们能进一步熟悉掌握 C语言的基本语法,进一步提升自 己的编程能力并逐步培养编程思维,进而不断提高同学们解决问 题的能力,并为以后的语言学习打下良好的基础。实验要求:万年历设计主要功能包括:1查询某年某月每一天对应星期几。2、可以查询某年某月的上个月或是下个月的日历情况。3、查询某年某月某日是这一年的第几天,并查询改天 是星期几。4、判断该年是闰年还是平年,判断这一年的生肖。实现思路(要求有文字描述,并画出流程图):定义 S
2、=O;c=O该天使星期几及该月和上下月的情况实现过程(要求有文字说明实现的过程,并对相应的代码添加注释):见程序(程序见后)后的解析。00运行时只要你输入年月日,你要的星系都会显示出来;如果想继续输入日期的话,只需按y就可以,祥结束按n就可以结束。实验总结(分析程序的得与失):得:通过这次程序设计,更使我了解了编程序的严谨性,每个问题,每个不走都得有依据,不得盲目乱造,同时也让我获得了一点 编写简单程序的能力,使自己平时在理论课中很多部明白的东 西明白了好多,学会了好多语句的用法,比如会用y' or n ' 来决定程序是否要继续;怎么控制输出格式等等。总之在这次 程序设计中我学
3、到了很多。失:在编程序过程中有些函数的用法不怎么会用,偶尔会落下写简单的东西。如, ;等;同时在编写输出上下个情况及判断 程序是否要继续的程序上花费了好多时间;函数的声明、调用 既然不清楚,感到很惭愧。实验的过失就是成功的阶梯,在过 失中我也学到很多。心得体会:我体会到了编程序的严谨性,也觉得如果我们要是熟悉课本所讲的内容,不怕麻烦,坚持不懈,我们一定可以将它实现的。要有耐心,有时候很多的错误就是一个地方引起的,只要认真 检查,一定能突破的,所以在以后的编程序是要细心,有耐心, 人不断调试程序,直至最后成功。#in clude<stdio.h>structII定义包含年月日数组结构
4、体int year;int mon th;int day;date;int ma in ()/ 主函数void prin t( in t, in t);int dobb(i nt);int date1(i nt,i nt,i nt);int rili();rili();return 0;函数的声明函数的声明 /函数的声明/函数的声明/函数的调用int rili()/定义函数int days;/定义整型变量int a,b;/定义整型变量char乙 /定义字符变量prin tf("+nn");/输出头的格式prin tf("万年历 nn ”);prin tf(&quo
5、t;+n"); printf(” 功能有:n"); printf("t");printf("1.查询某年某月某天对应星期几;nt2.查询某年某月上下个月情况;nt3显示该日子是该年的第几天,并查询改天星期几;nt4.判断该年是平年还是闰年以及生肖等。n");printf("&&&&&&&&&+&&&&&&&&&n" );pr intf("请输入年月日:"
6、);scanf("%d,%d,%d",&date.year,&date.month,&date.day);/ 输入年月曰switch(date.mo nth)/计算第几天的case 1: days=date.day;case 2: days=date.day+31;case 3: days=date.day+59;case 4: days=date.day+90;case 5: days=date.day+120;case 6: days=date.day+151;case 7: days=date.day+181;case 8: days=date
7、.day+212;case 9: days=date.day+243;case 10: days=date.day+273;case 11: days=date.day+304;case 12: days=date.day+334;break; break; break; break; break; break; break; break; break; break; break; break;days+;if(date.year%4=0&&date.year%100!=0 )| date.year%400=0)&&date.mo nth>=3) prin
8、tf("%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)/ 判断平闰年的语句prin tf("%d 是闰年。n",date.year);输出平闰年的elseprin tf("%d 是平年。n",date.year);if(date.year>=2013)/判断2013年后生肖的语句a=(date.year-2013)%12;switch
9、(a)case 0:prin tf("%d是蛇年。n ”,date.year);break;case 1:prin tf("%d是马年。n ”,date.year);break;case 2:prin tf("%d是羊年。n ”,date.year);break;case 3:prin tf("%d是猴年。n ”,date.year);break;case 4:prin tf("%d疋鸡年。n ”,date.year);break;case 5:prin tf("%d是狗年。n ”,date.year);break;case 6:pr
10、in tf("%d是猪年。n ”,date.year);break;case 7:prin tf("%d是鼠年。n ”,date.year);break;case 8:prin tf("%d是牛年。n ”,date.year);break;case 9:prin tf("%d是虎年。n ”,date.year);break;case 10:prin tf("%d是兔年。n ”,date.year);break;case 11:prin tf("%d是龙年。n ”,date.year);break;else b=(2013-date.y
11、ear)%12;switch(b)/判断2013年前生肖的语句case 0:prin tf("%d是蛇年。n ”,date.year);break;case 1:prin tf("%d是龙年。n ”,date.year);break;case 2:prin tf("%d是兔年。n ”,date.year);break;case 3:prin tf("%d是虎年。n ”,date.year);break;case 4:prin tf("%d是牛年。n ”,date.year);break;case 5:prin tf("%d是鼠年。n
12、”,date.year);break;case 6:prin tf("%d是猪年。n ”,date.year);break;case 7:prin tf("%d是狗年。n ”,date.year);break;case 8:prin tf("%d疋鸡年。n ”,date.year);break;case 9:prin tf("%d是猴年。n ”,date.year);break;case 10:prin tf("%d是羊年。n ”,date.year);break;case 11:prin tf("%d是马年。n ”,date.yea
13、r);break;/dobb( date .y ear);调用函数date1( date.year, date.m on th,date.day);调用函数prin t(date.year,date.m on th);/ 调用函数prin tf("co nti nu e>>>>>>>>>>>>>>>>»Y/N.");/ 是否还要继续输入日期getchar();z=getchar(); if(z='y'|z='Y') rili(); if(
14、z=' n'|z='N') getchar(); return 0;/判断是/调用函数/判断不是结束void prin t(i nt year,i nt mon th)pri nt 函数的定义int i,j, n,leap,days,k,co unt;leap=dobb(year);/函数调用及赋值days=date1(year,m on th-1,1);/printf("%d 年n",year);for(i=mo nth-1;i<=mo nth+1;i+)输出上下月的情况if(i<1)printf("%3d 月份 n&
15、quot;,i+12);上年的 12 月if(i>12) pri ntf("%3d 月份 n",i-12);下年的 1 月if(i>0&&i<13) prin tf("%3d月份 n ",i);/ 本年的月份prin tf("n");prin tf("t");printf("%-8s%-8s%-8s%-8s%-8s%-8s%-8sn","日","二","三","四","五&
16、quot;,"六");输出格式if(days=7)/控制输出的个数days=0;else n=days;prin tf("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:co un t=31;break;case 4:case 6:case 9:case 11:co un t=30;break;case 2:if(leap)count=29;2 月不同情
17、况的判断else coun t=28;break;for(k=1;k<=count;k+)/逐渐输出每月的日期prin tf("%-8d",k);n+;if(n=7)pri ntf("n");pri ntf("t"); n=0;pri ntf("nn");days=n;int dobb(i nt year)/判断年份的类型函数的定义if(date.year%4=0&&date.year%100!=0|(date.year%400=0)return(1); / 闰年输出 1else return(O);平年输出 0int date1(i nt year,i nt mo nth,i nt day)date1 函数的定义int leap,c n=0,sum;leap=dobb(year); / 调用函数switch(m on th-1)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中语文第2单元孟子蚜1王好战请以战喻课件新人教版选修先秦诸子蚜
- 2024年吉林省长春市中考英语试题含解析
- 七年级下心理健康教育教案
- 2024年河北省高考生物试卷真题(含答案解析)
- 2024至2030年中国攻瑰茄行业投资前景及策略咨询研究报告
- 2024至2030年中国手持式多波长稳定光源行业投资前景及策略咨询研究报告
- 2024至2030年中国印花T/C纯棉休闲衬衫行业投资前景及策略咨询研究报告
- 2024年山东省东营市中考语文试题含解析
- 2024年黑龙江省齐齐哈尔市中考语文试题含解析
- 2024年中国钢丝跑道轴承市场调查研究报告
- 对外汉语口语入门篇第7课-你身体好吗
- 新教科版科学六年级上册知识点
- 众辰变频器z2400t-15gy-1说明书
- 农业机械化-课件
- 《中小学心理健康教育和生命健康关爱工作重点事项清单》
- DB31T 684-2023 养老机构照护服务分级要求
- 连续油管工艺-课件
- 自考《人力资源开发与管理》近年考试真题题库汇总(含答案)
- 膜性肾病诊治分享演示文稿
- 超声波安全操作规程
- 什么时候才能启动应急预案
评论
0/150
提交评论