文档库

最新最全的文档下载
当前位置:文档库 > C++实验报告三

C++实验报告三

昆明理工大学信息工程与自动化学院学生实验报告 3

(2010—2011学年第2学期)

课程名称:C++程序设计开课实验室:计算中心202室2011年 5月16 日

C++实验报告三

一、实验目的

1.掌握函数的定义和调用方法。

2.练习重载函数的使用。

3.练习函数模板的使用。

4.练习使用系统函数。

5.学习使用VC++的debug调试功能,使用step into追踪到函数内部。

二、实验任务

1.编写一个函数把华氏温度转换为摄氏温度,转换公式为..C=(F一32)*5/9。

2.编写重载函数Maxl可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。

3.使用重载函数模板重新实现上小题中的函数Maxl。

4.使用系统函数pow(X,y)计算芷的值,注意包含头文件math·h。

5.用递归的方法编写函数求Fibonacci级数,观察递归调用的过程。

三、所用仪器、材料(设备名称、型号、规格等):

所用仪器:计算中心202-48;操作系统:WindowsXP;软件平台:Visual C++6.0四、上机操作方法、步骤:

打开计算机:开始菜单序Visual C++6.0平台

五、实验步骤

1.编写函数float Convert(float TempFer),参数和返回值都为float类型,实现算法C=(F一32)*5/9,在main()函数中实现输入、输出。程序名:lab3_1.cpp。

2.分别编写四个同名函数maxl,实现函数重载,在main()函数中测试函数功能。程序名:lab3_2.cpp。

3.使用函数模板实现求任意类型数的最大值,针对不同的参数个数,编写两个同名

函数模板maxl,其参数个数不同,实现函数重载,在main()函数中测试函数功能。程序名:lab3_3.cpp。

4.在main()函数中提示输入两个整数x、y,使用cin语句得到x、y的值,调用

pow(x,y)函数计算x的Y次幂的结果,再显示出来。程序名.1ab3_4.cpp。

5.编写递归函数int fib(int n),在主程序中输入n的值,调用fib函数计算

Fibonacci级数。公式为fib(n)=fib(n一1)+fib(n一2),n>2;fib(1)=fib(2)=1。

使用if语句判断函数的出口,在程序中用cout语句输出提示信息。程序名:

lab3_5.cpp。

6.使用debug中的Step Into追踪到函数内部,观察函数的调用过程,参考程序

如下:

//lab3_5

#include

int fib(int n);

int main()

{

int n,answer;

cout<<”Enter number”;

cin>>n;

cout<<”\nkn”;

answer=fib(n);

cout<

return 0;

}

int fib(int,n)

{

cout<<”vProcessing fib(”<

if(n<3)

{

cout<<”Return 1!\n”;

return(1);

}

else

{

cout<<”ca11 fib(“<

return(fib(n-2)+fib(n-1))。

)

)

7.调试操作步骤如下:

(1)选择菜单命令Build | Start Debug | Step in,或按下快捷键Fll,系统进入单步

执行状态,程序开始运行,并出现一个DOS窗口,此时Visual Studio中光标停在main() 函数的入口处。

(2)把光标移到语句answer=fib(n)前,从Debug菜单或Debug工具栏中单击Run

to Cursor,在程序运行的DOS窗口中按提示输入数字10,这时回到Visual Studio中,光标停在第11行,观察一下n的值(观察方法见实验2)。

(3)从Debug菜单或Debug工具栏中单击Step Into,程序进入fib函数,观察一下n 的值栏中单击Step Into,程序进入fib函数,观察一下n

的值,把光标移到语句return(fib(n-2)+fib(n-1))前,从Debug菜单或Debug工具

栏中单击Run to Cursor,再单击Step Into,程序递归调用fib函数,又进入fib函数,观察一下n的值。

(4)继续执行程序,参照上述的方法,观察程序的执行顺序,加深对函数调用和递归调用的理解。

(5)再试试Debug菜单栏中别的菜单项,熟悉Debug的各种方法。

六、源程序和运行结果

源程序:

#include

using namespace std;

main()

{

float f,a;

float convert(float f);

cout<<"请输入华氏温度:";

cin>>f;

a=convert(f);

cout<<"摄氏度为:"<

return 0;

}

float convert(float f)

{

float c;

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

return c;

}

运行结果;

源程序:

#include

using namespace std;

main()

{int a,b,c;

float e,f,g,h,n;

int max(int a,int b);

int max(int a,int b,int c);

float max(float a,float b);

float max(float a,float b,float c);

cout<<"1.两个整数比较"<

cin>>n;

if(n=1)

{

cout<<"请输入:";

cin>>a>>b;

h=max(a,b);

}

else if(n=2)

{

cout<<"请输入:";

cin>>a>>b>>c;

h=max(a,b,c);

}

else if(n=3)

{

cout<<"请输入:";

cin>>e>>f;

h=max(e,f);

}

else if(n=4)

{

cout<<"请输入:";

cin>>e>>f>>g;

h=max(e,f,g);

}

cout<<"最大值为:"<

return 0;

}

int max(int a,int b)

{

if(a>b)return a;

else return b;

}

int max(int a,int b,int c)

{

else a=b;

if(a>c)a=a;

else a=c;

return a;

}

float max(float a,float b)

{

if(a>b)return a;

else return b;

}

float max(float a,float b,float c) {

if(a>b)a=a;

else a=b;

if(a>c)a=a;

else a=c;

return a;

}

运行结果:

源程序:

#ifndef max

#define max

#include

using namespace std;

main()

{int a,b,c;

float e,f,g,h;

int max(a,b);

int max(a,b,c);

float max(a,b);

float max(a,b,c);

cout<<"请输入:";

cin>>a>>b>>c>>e>>f>>g;

h=max(a,b);

h=max(a,b,c);

h=max(e,f,g);

cout<<"最大值为:"<

return 0;

}

运行结果:

源程序:

#include

#include

using namespace std;

main()

{int a,x,y;

cout<<"请输入两个数:";

cin>>x>>y;

a=pow(x,y);

cout<<"X的Y次幂的值为:"<

}

运行结果:

源程序:

#include

using namespace std;

main()

{

int a,n;

int fib(int n);

cout<<"请输入n:";

cin>>n;

a=fib(n);

cout<<"斐波那契数值为:"<

return 0;

}

int fib(int n)

{int b;

if(n<=2)

return 1;

if(n>2)

b=fib(n-1)+fib(n-2);

return b;

}

运行结果:

七、总结

通过本章节的学习和了解掌握了函数的定义和调用方法,熟悉了重载函数的使用及函数模板的使用;掌握了如何使用系统函数,初步有了C++程序设计的概念和认识,从C中开始走出来,进入另一种编程环境中。