版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象技术实验报告(万年历)1实验目的掌握一种编程工具和面向对象程序设计的基本思想和方法,培养我们学生综合利用某种语言进行程序设计的能力,培养我们学生利用系统提供的功能进行创新设计的能力,培养我们学生充分利用计算机的功能和特点分析实际问题及解决实际问题的能力。为我们提供一个综合运用所学知识解决实际问题的机会,增强我们学生的实践动手能力和工程实践能力,并培养和锻炼我们学生的自学创新能力。 为了能更好地了解C+语言,因此开设了此次课程设计,程序设计教学课程的目的不是为了单独的课堂学习,而是要让我们学生掌握程序设计的基本思想及方法。一方面,在课程设计过程中,可以明确的指导为什么而学,还能对所学知识
2、得到应用,更重要的是可以让我们学生掌握一些基本函数的用法,从而不在对编程序感到茫然,经过设计,可以让我们熟悉简单程序的设计方法和编写,对程序设计及该门课程设计语言的应用得到理解。2功能简介万年历,输入年份,可以显示出这一年的每个月份和所对应的星期天,可以查询每一天.3流程图打印一年日历Void fVoid q主函数大月小月闰年二月输出日历表一月的定义闰二月的定义非闰二月的定义三月四月五月六月七月八月九月十月十一月十二月非闰年二月4代码#include#includeusing namespace std;int i,c,day,year,k,a50;void f1(int x) /大月 for
3、( 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)
4、/ 输出日历表 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; coutendlendlendl;int main() 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年日历*; c
5、outendlendlendlendl; k=(day%7+6)%7+1; cout一月endlendl; f1(k); g(a,50); if(year%4=0&year%100!=0)|year%400=0) /闰年二月 k=(day+31)%7+6)%7+1; cout二月endlendl; f3(k); g(a,50); day=day+31+29; else /非闰年二月 k=(day+31)%7+6)%7+1; cout二月endlendl; f4(k); g(a,50); day=day+31+28; k=(day%7+6)%7+1; cout三月endlendl; f1(k);
6、 g(a,50); k=(day+31)%7+6)%7+1; cout四月endlendl; f2(k); g(a,50); k=(day+31+30)%7+6)%7+1; cout五月endlendl; f1(k); g(a,50); k=(day+31+30+31)%7+6)%7+1; cout六月endlendl; f2(k); g(a,50); k=(day+31+30+31+30)%7+6)%7+1; cout七月endlendl; f1(k); g(a,50); k=(day+31+30+31+30+31)%7+6)%7+1; cout八月endlendl; f1(k); g(a,
7、50); k=(day+31+30+31+30+31+31)%7+6)%7+1; cout九月endlendl; f2(k); g(a,50); k=(day+31+30+31+30+31+31+30)%7+6)%7+1; cout十月endlendl; f1(k); g(a,50); k=(day+31+30+31+30+31+31+30+31)%7+6)%7+1; cout十一月endlendl; f2(k); g(a,50); k=(day+31+30+31+30+31+31+30+31+30)%7+6)%7+1; cout十二月endlendl; f1(k); g(a,50); ret
8、urn 0; 5代码分析大月和小月的定义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;依然用数组的循环语句进行对小月的定义。数组的循环语句是C+中一个很重要的知识,数组可以节省很多的定义,一个句子就可以就可以输出很多的数,这样大大减少了计算机的存储空间。这正是一个很打的进步。2.5.2 闰年与非闰
9、年二月的定义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; 用两个函数定义了在闰年与非闰年时,二月的不同定义。这主要运用到变量的不同定义。从而分辨出它们的不同,使可打印出任一年的日历。2.5.3日历表的输出int s,count=0; coutyear; coutendl; c=year; for(s=1;s=year;s+) if(s-1)%4
10、=0&(s-1)%100!=0)|(s-1)%400=0) count+; day=365*c+count; /相差天数 cout*year年日历*; coutendlendlendlendl;在此运用了C+中函数的运算,计算出该年的每月每日的不同。还有一年的输入和输出。在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); day=day+31+29; else /非闰年
11、二月 k=(day+31)%7+6)%7+1; cout二月endlendl; f4(k); g(a,50); day=day+31+28; 此处主要运用了if语句来对闰年与非闰年的二月的不同定义的输出。if语句一种可跳过不符合条件的语句,继续下面的语句的执行。它具有很强的实用性。在实际的操作中经常会用到的,是一个很重要的知识。6改进措施程序的显示面板颜色程序没有,太难看了,因此将面板颜色的程序加上了7改进后的代码#include#include #includeusing namespace std;int i,c,day,year,k,a50;void f1(int x) /大月 for(
12、 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) /
13、 输出日历表 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; coutendlendlendl;int main() int s,count=0; HANDLE hStdout=:GetStdHandle(STD_OUTPUT_HANDLE); :SetConsoleTextAttribute( hStdout, FOREGROUND_RED|BACKGROUND_BLUE); system(color ac);
14、 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年日历*; coutendlendlendlendl; k=(day%7+6)%7+1; cout一月endlendl; f1(k); g(a,50); if(year%4=0&year%100!=0)|year%400=0) /闰年二月 k=(day+31)%7+6)%7+1; cout二月endlendl; f3(k); g(a,50);
15、day=day+31+29; else /非闰年二月 k=(day+31)%7+6)%7+1; cout二月endlendl; f4(k); g(a,50); day=day+31+28; k=(day%7+6)%7+1; cout三月endlendl; f1(k); g(a,50); k=(day+31)%7+6)%7+1; cout四月endlendl; f2(k); g(a,50); k=(day+31+30)%7+6)%7+1; cout五月endlendl; f1(k); g(a,50); k=(day+31+30+31)%7+6)%7+1; cout六月endlendl; f2(k); g(a,50); k=(day+31+30+31+30)%7+6)%7+1; cout七月endlendl; f1(k); g(a,50); k=(day+31+30+31+30+31)%7+6)%7+1; cout八月endlendl; f1(k); g(a,50); k=(day+31+30+31+30+31+31)%7+6)%7+1; cout九月endlendl; f2(k); g(a,50); k=(day+31+30+31+30+31+31+30)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 计时器加法仿真课程设计
- 房屋买卖合同中的关键条款
- 建筑安装拆迁合同
- 收支业务管理制度
- 遴选教师申报表格
- 废品购销合同2024年
- 担保合作协议书模板
- 示范幼儿园评估细则(试行)
- 建筑工程施工补充合同-合同范本
- 粮食类培训课程设计
- 勘察设计单位管理制度模版
- 手术室压力性损伤预防
- 2024年中国铁塔湖北分公司招聘笔试参考题库含答案解析
- 生产设备搬迁方案
- 小学生如何在公园展现文明礼仪
- 2024年中煤集团招聘笔试参考题库含答案解析
- 理想信念教育课件
- 9《古代科技-耀我中华》改变世界的四大发明-(课件)部编版道德与法治五年级上册-
- 部编高中语文必修上册《师说》课件34张
- 地理信息科学专业职业生涯规划书
- 厨房卫生教案-劳动课教学设计
评论
0/150
提交评论