C++ 缺省函数重载函数实验.docx

上传人:b****5 文档编号:12087371 上传时间:2023-04-17 格式:DOCX 页数:13 大小:142.96KB
下载 相关 举报
C++ 缺省函数重载函数实验.docx_第1页
第1页 / 共13页
C++ 缺省函数重载函数实验.docx_第2页
第2页 / 共13页
C++ 缺省函数重载函数实验.docx_第3页
第3页 / 共13页
C++ 缺省函数重载函数实验.docx_第4页
第4页 / 共13页
C++ 缺省函数重载函数实验.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

C++ 缺省函数重载函数实验.docx

《C++ 缺省函数重载函数实验.docx》由会员分享,可在线阅读,更多相关《C++ 缺省函数重载函数实验.docx(13页珍藏版)》请在冰豆网上搜索。

C++ 缺省函数重载函数实验.docx

C++缺省函数重载函数实验

C++实验报告

基础题:

编写函数把华氏温度转换为摄氏温度,公式为:

c=(f-32)*5/9;

在主程序中提示用户输入一个华氏温度,转化后输出相应的摄氏温度。

一,实验目的

1.熟悉Visual studio 6.0集成开发环境; 

2.学习新建和打开控制台应用程序的方法; 

3.通过运行示例程序了解程序开发过程

二,实验任务

编写函数把华氏温度转换为摄氏温度

三,题目分析及核心代码

分析:

用户输入要查询的华氏温度后,就利用公式算出对应的摄氏温度即可。

代码:

#include

usingnamespacestd;

voidchange();

voidmain()

{

inti;

while

(1)

{

cout<<"查询?

(0)退出?

(1)"<

cin>>i;

if(i==0)

change();

else

break;

}

}

voidchange()

{

intc,f;

cout<<"请输入一个华氏温度:

"<

cin>>f;

c=(f-32)*5/9;

cout<<"华氏温度"<

}

四:

运行结果:

提高题:

1、设计一个函数,计算任一年份共有多少天。

一,实验目的

1.熟悉Visual studio 6.0集成开发环境; 

2.学习新建和打开控制台应用程序的方法; 

3.通过运行示例程序了解程序开发过程

二,实验任务

设计一个函数,计算任一年份共有多少天

三,题目分析及核心代码

分析:

用if语句来实现选择,是闰年的分两种情况:

一种是直接能除以4除尽的是闰年,另一种除以100能除尽的还要能除以4除尽才是闰年。

/*1、设计一个函数,计算任一年份共有多少天。

*/

#include

usingnamespacestd;

voidsearch()

{

inti;

cout<<"输入你想查询的年份:

"<

cin>>i;

if(i%100==0)

{

if(i%400==0)

cout<

"<

}

elseif(i%4==0)

cout<

"<

else

cout<

"<

}

voidmain()

{

intj;

while

(1)

{

cout<<"查询?

(1)退出程序?

(0)"<

cin>>j;

if(j==1)

search();

else

{cout<<"seeyou"<

break;}

}

}

运行结果及分析小结

实验二

一,实验目的

1.熟悉Visual studio 6.0集成开发环境; 

2.学习新建和打开控制台应用程序的方法; 

3.通过运行示例程序了解程序开发过程;

4,熟悉掌握缺省函数和重载函数的应用。

二,实验任务

2、函数重载和带缺省形参值函数练习:

看如下程序,为它添加适当的函数声明和定义,使之能正确运行通过。

要求用两种方法实现,并比较两种方法,说说函数重载和带缺省形参值函数各自的特点和使用范围。

另外注意在功能实现的过程中,对形参数据合法性的判断及处理,以及各函数之间的关系(注意递归函数的作用)。

/*******************************************************************

程序文件:

stime.cpp

程序功能:

关于时钟运行的描述

程序说明:

该程序通过对“时间”这种新的数据类型的说明和使用来展示C++对比C语言而言,在面向过程程序设计方面的些许改进。

同时也接触面向对象技术的一些概念如重载和多态性(非全部)。

********************************************************************/

//输入输出流声明包含头文件

#include

//时间结构体stime的声明

structstime

{

inthour;//小时

intmin;//分钟

intsec;//秒钟

};

//此处用户函数声明若干

//...(略,请补充)...

//主函数

voidmain()

{

stimet1={12,0,0};//C++中定义结构体变量可省略关键词struct

//定义一个时间变量t1,初始化为12点0分0秒

cout<<"t1:

"<

//显示t1当前表示的时间

stimet2=add(t1,30);//变量的定义可以不出现在程序块开始的地方

//定义一个时间变量t2,用函数add返回值初始化为t1过30秒后所代表的时间

cout<<"t2:

"<

t2=add(t2,15,10);

//t2设为t2原来的时间过10分15秒后所表示的时间(注意参数先后顺序)

t2=add(t2,10,15,2);//t2设为t2原来的时间过2小时15分10秒后所表示的时间

cout<<"t2:

"<

t1=sub(t1,30,20,1);//t1设为t1原来的时间之前1小时20分30秒

cout<<"t1:

"<

intn=sub(t2,t1);//求t1和t2之间相隔多少秒(t2-t1)

cout<<"Now,t2-t1="<

?

<

}

//此处用户函数定义若干

//...(略,请补充)...

三,题目分析及核心代码

分析:

此题注重要的是三个函数,分别是实现T1,T2在时间上的加法,以及T1,T2的时间差的求法。

对于对于实现t1,t2的时间上的加法,可以考虑用缺省函数,因为题目中要用到的add函数最多的时候是显现时分秒同时改变,所以该add函数定义四个变量,分别别是表示原时间的一个结构体量,以及三个能给时间做加法的整型变量。

对于各时间做减法时,因为题目一个是结构体之间的减法,一个是结构体中自身的加法,且需求的变量个数也不同,就可以用一个重载函数sub来实现时间的加法,具体函数定义如下:

核心代码:

/*函数重载和带缺省形参值函数练习:

看如下程序,为它添加适当的函数声明和定义,使之能正确运行通过。

要求用两种方法实现,并比较两种方法,说说函数重载和带缺省形参值函数各自的特点和使用范围。

另外注意在功能实现的过程中,对形参数据合法性的判断及处理,以及各函数之间的关系(注意递归函数的作用)。

/*******************************************************************

程序文件:

stime.cpp

程序功能:

关于时钟运行的描述

程序说明:

该程序通过对“时间”这种新的数据类型的说明和使用来展示C++对比C语言而言,在面向过程程序设计方面的些许改进。

同时也接触面向对象技术的一些概念如重载和多态性(非全部)。

********************************************************************/

//输入输出流声明包含头文件

#include

usingnamespacestd;

//时间结构体stime的声明

structstime

{

inthour;//小时

intmin;//分钟

intsec;//秒钟

};

//此处用户函数声明若干

stimeadd(stimet,intb=0,intc=0,intd=0)

{

stimet1;

t1.sec=t.sec+b;

if(t1.sec>60)

{c=c+1;

t1.sec=t1.sec-60;}

t1.min=t.min+c;

if(t1.min>60)

{d=d+1;

t1.min=t1.min-60;}

t1.hour=t.hour+d;

if(t1.hour>24)

t1.hour=t1.hour-24;

returnt1;

};

stimesub(stimet,inta,intb,intc)

{

stimet2;

if(t.sec

{t2.sec=t.sec+60-a;

t.min=t.min-1;}

else

t2.sec=t.sec-a;

if(t.min

{t2.min=t.min+60-b;

t.hour=t.hour-1;}

else

t2.min=t.min-b;

if(t.hour

t2.hour=t.hour+24-c;

else

t2.hour=t.hour-c;

returnt2;

};

intsub(stimet2,stimet1)

{

inta,b,c;

longintd;

if(t2.sec

{a=t2.sec+60-t1.sec;

t2.min=t2.min-1;}

else

a=t2.sec-t1.sec;

if(t2.min

{b=t2.min+60-t1.min;

t2.hour=t2.hour-1;}

else

b=t2.min-t1.min;

if(t2.hour

c=t2.hour+24-t1.hour;

else

c=t2.hour-t1.hour;

d=c*60*60+b*60+a;

returnd;

};

//主函数

voidmain()

{

stimet1={12,0,0};//C++中定义结构体变量可省略关键词struct

//定义一个时间变量t1,初始化为12点0分0秒

cout<<"t1:

"<

"<

"<

stimet2=add(t1,30);//变量的定义可以不出现在程序块开始的地方

//定义一个时间变量t2,用函数add返回值初始化为t1过30秒后所代表的时间

cout<<"t2:

"<

"<

"<

//t2设为t2原来的时间过10分15秒后所表示的时间(注意参数先后顺序)

t2=add(t2,10,15,2);//t2设为t2原来的时间过2小时15分10秒后所表示的时间

cout<<"t2:

"<

"<

"<

t1=sub(t1,30,20,1);//t1设为t1原来的时间之前1小时20分30秒

cout<<"t1:

"<

"<

"<

cout<<"Now,t2-t1="<

}

 

运行结果及分析小结

 

实验三

一,实验目的

1.熟悉Visual studio 6.0集成开发环境; 

2.学习新建和打开控制台应用程序的方法; 

3.通过运行示例程序了解程序开发过程;

二,实验任务:

张三、李四、王五三个棋迷,定期去文化宫下棋。

张三每五天来一次,李四每六天来一次,王五每九天来一次。

问每过多少天他们才能一起在文化宫下棋?

 

三,题目分析及核心代码

分析:

本题查找最小公倍数即可,取一个变量,当它与以三个数每个的余数都为0时(条件if),此时这个变量就是这三个数的最小公倍数。

但这个变量的初始只应该是这三个数的最大值,因为此题已告知三个数分别是多少,所以直接给该变量先赋初值。

当不满足条件if时,变量加1,直到满足时,输出该变量。

/*张三、李四、王五三个棋迷,定期去文化宫下棋。

张三每五天来一次,

李四每六天来一次,王五每九天来一次。

问每过多少天他们才能一起在文化宫下棋?

*/

#include

usingnamespacestd;

voidmain()

{

inti=5,j=6,k=9,t=9,m=1;

while(m)

{

if(t%5==0&&t%6==0&&t%9==0)

{cout<<"每过"<

m=0;}

else

t++;

}

}

运行结果及分析小结

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1