




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
合肥工业大学C+课程设计万年历数学学院信息一班 陈育伟 20096361一、目的与要求显示公元后任何年份的日历,日历以月份的顺序排列,每月以星期顺序排列,类似于一般挂历上的格式。二、工具/准备工作在开始实验前,应回顾并复习相关内容。我使用的软件是Dev-C+。三、分析1、大月和小月的定义,主要运用了数组的循环语句进行对大小月的定义。void f1(int x) /大月 for( i=0;i=0;i-) ai=000;for(i=k;i31+k;i+) ai=ai-1+1;void f2(int x) /小月 for( i=0;i=0;i-) ai=000; for(i=k;i30+k;i+) ai=ai-1+1;2、闰年与非闰年二月的定义void f3(int x) /闰年二月 for( i=0;i=0;i-) ai=000; for(i=k;i29+k;i+) ai=ai-1+1;void f4(int x) /非闰年二月 for( i=0;i=0;i-) ai=000; for(i=k;i28+k;i+) ai=ai-1+1; 3、日历表的输出int s,count=0; coutyear; coutendl; c=year; for(s=1;s=year;s+) if(s-1)%4=0&(s-1)%100!=0)|(s-1)%400=0) count+; day=365*c+count; /相差天数 cout-year年日历-; coutendlendl;在此运用了C+中函数的运算,计算出该年的每月每日的不同。还有一年的输入和输出。在输出时,闰年与非闰年二月的输出法的定义if(year%4=0&year%100!=0)|year%400=0) /闰年二月 k=(day+31)%7+6)%7+1; cout 二月endlendl; f3(k); g(a,50); cout-endl; cout-endl; day=day+31+29; else /非闰年二月 k=(day+31)%7+6)%7+1; cout 二月endlendl; f4(k); g(a,50); cout-endl; cout-0;p+) cout按任意键继续.endl; getch(); btbt(); 通过无限循环语句和getch()函数的使用来实现按任意键继续的功能。四、实现步骤1、建立头文件并定义有用到的字符常量,具体代码如下:#include#include#includeusing namespace std;int i,c,day,year,k,a50;2、定义大月、小月、闰年二月、非闰年二月与日历表输出函数,具体代码如下:void f1(int x) /大月 for( i=0;i=0;i-) ai=000; /1号前均为空格 for(i=k;i31+k;i+) ai=ai-1+1;void f2(int x) /小月 for( i=0;i=0;i-) ai=000; for(i=k;i30+k;i+) ai=ai-1+1;void f3(int x) /闰年二月 for( i=0;i=0;i-) ai=000; for(i=k;i29+k;i+) ai=ai-1+1;void f4(int x) /非闰年二月 for( i=0;i=0;i-) ai=000; for(i=k;i28+k;i+) ai=ai-1+1;void g(int y,int z) / 输出日历表 cout星期日t星期一t星期二t星期三t星期四t星期五t星期六endl; for(i=0;i50;i+) if(ai=0) cout(char)ait; if(ai!=0&ai!=33) coutait; else ; if(i%7=0) coutendl; 3、定义自定义函数btbt(),来实现一年日历的全部输出,具体代码如下:int btbt() int s,count=0; coutyear; coutendl; c=year; for(s=1;s=year;s+) if(s-1)%4=0&(s-1)%100!=0)|(s-1)%400=0) count+; day=365*c+count; /相差天数 cout-year年日历-; coutendlendl; k=(day%7+6)%7+1; cout 一月endlendl; f1(k); g(a,50); cout-endl; cout-endl; if(year%4=0&year%100!=0)|year%400=0) /闰年二月 k=(day+31)%7+6)%7+1; cout 二月endlendl; f3(k); g(a,50); cout-endl; cout-endl; day=day+31+29; else /非闰年二月 k=(day+31)%7+6)%7+1; cout 二月endlendl; f4(k); g(a,50); cout-endl; cout-endl; day=day+31+28; k=(day%7+6)%7+1; cout 三月endlendl; f1(k); g(a,50); cout-endl; cout-endl; k=(day+31)%7+6)%7+1; cout 四月endlendl; f2(k); g(a,50); cout-endl; cout-endl; k=(day+31+30)%7+6)%7+1; cout 五月endlendl; f1(k); g(a,50); cout-endl; cout-endl; k=(day+31+30+31)%7+6)%7+1; cout 六月endlendl; f2(k); g(a,50); cout-endl; cout-endl; k=(day+31+30+31+30)%7+6)%7+1; cout 七月endlendl; f1(k); g(a,50); cout-endl; cout-endl; k=(day+31+30+31+30+31)%7+6)%7+1; cout 八月endlendl; f1(k); g(a,50); cout-endl; cout-endl; k=(day+31+30+31+30+31+31)%7+6)%7+1; cout 九月endlendl; f2(k); g(a,50); cout-endl; cout-endl; k=(day+31+30+31+30+31+31+30)%7+6)%7+1; cout 十月endlendl; f1(k); g(a,50); cout-endl; cout-endl; k=(day+31+30+31+30+31+31+30+31)%7+6)%7+1; cout 十一月endlendl; f2(k); g(a,50); cout-endl; cout-endl; k=(day+31+30+31+30+31+31+30+31+30)%7+6)%7+1; cout 十二月endlendl; f1(k); g(a,50); cout-0;p+) cout按任意键继续.endl; getch(); btbt(); getch(); return 0; 5、编译及运行万年历程序。五、测试与结论1、刚运行时屏幕显示如下:2、输入2009时,屏幕显示如下:3、按下回车键,屏幕显示如下:4、按任意键,屏幕显示如下:从上面的屏幕显示,可知本程序满足课程设计的目标与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 玻璃外墙维修合同范本
- 建设工程合同范本
- 落地胎回收合同范本
- 房屋各种交易合同范本
- 自家房租租赁合同范本
- 酒店宴席协议合同范本
- 易拉宝订购合同范本
- 租给学生租赁合同范本
- 货车租赁合作合同范本
- 玻璃销售合同范本
- 《老年学概论(第3版)》课件第一章
- GB/T 6495.1-1996光伏器件第1部分:光伏电流-电压特性的测量
- GB/T 30951-2014小型水电站机电设备报废条件
- GB/T 18948-2017内燃机冷却系统用橡胶软管和纯胶管规范
- GB/T 13955-2017剩余电流动作保护装置安装和运行
- GB/T 11968-2020蒸压加气混凝土砌块
- 电动汽车充电桩申请安装备案表
- DB32T 4073-2021 建筑施工承插型盘扣式钢管支架安全技术规程
- 易制毒、易制爆培训试卷及答案
- 入行论94课第1个颂词
- fog-106单轴光纤陀螺仪技术协议
评论
0/150
提交评论