1、第六次实验一、实验目的1学会函数定义、声明、调用的方法。2能够识别形参与实参。3学会单步调试进入函数和跳出函数的方法。4. 学会用多文件形式组织程序结构。二、实验环境 (调试程序所使用的软硬件环境)软件环境:VC+6.0硬件环境:宏基 Intel 奔4 主频 2.8GHz,内存256MB三、实验内容、结果及分析1给定平面任意两点坐标(x1,y1)和(x2,y2),求这两点之间的距离(保留2位小数)。要求定义和调用函数dist(x1,y1,x2,y2)计算两点间的距离。源程序清单:(调试好的源程序代码) /头文件distance.hdouble dist(double,double,double
2、,double);/主函main.cpp#include stdafx.h#include #include #include dist.husing namespace std;int main () double x1,x2,y1,y2,b; cout请输入第一个坐标值x1y1; cout请输入第二个坐标值x2y2; b=dist(x1,y1,x2,y2); cout.setf(ios:fixed); cout输入的第一个坐标为(x1,y1)endl; cout输入的第二个标为(x2,y2)endl; cout两点之间距离为setprecision(2)bendl; return 0;/函
3、数distance,两点之间距离#include stdafx.h#include double dist(double x1,double y1,double x2,double y2) double a; a=sqrt(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2); return a;主要标识符说明:(源程序中主要标识符含义说明)x1,x2,y1,y2,b均双精度型变量,其中x1,y1为第一个坐标的值,x2,y2为第二个函数坐标的值,x1,x2,y1,y2在主函数中为实参,在自定义的函数中为形参,b为两点之间的距离; 实验结果:(程序运行结果) 实验中遇到的问题及解决的方法
4、注意函数的嵌套调用,sqrt没有定义应加入#incude 2、题目:编制程序,求圆锥体和圆柱体的体积和。基本要求:设置全局变量pi,以便两个函数使用。分别用函数实现求圆锥体和圆柱体的体积。在主函数中输入半径和高,调用两个函数,求得体积之和,并输出之。要求使用多文件的方式组织程序结构(包括3个.cpp文件和1个.h文件)源程序清单:(调试好的源程序代码) 源程序清单:(调试好的源程序代码) /头文件column taper.hdouble pi=3.14;double column(double ,double );double taper(double ,double );/主函数main#i
5、nclude stdafx.h#include #include column taper.husing namespace std;int main () double c,t,cr,tr,ch,th; cout请输入圆柱的半径r和高度hcrch; cout请输入圆锥的半径r和高度htrth; c=column(cr,ch); t=taper(tr,th); cout圆柱体的体积为cendl; cout圆锥体的体积为tendl; cout圆柱与圆锥的体积之和为c+tendl; return 0;/自定义函数:column 圆柱体的体积#include stdafx.hdouble colum
6、n(double cr,double ch) extern double pi; return pi*cr*cr*ch;/自定义函数:taper圆锥体的体积#include stdafx.hdouble taper(double tr,double th ) extern double pi; return pi*tr*tr*th/3;主要标识符说明:(源程序中主要标识符含义说明) c,t,cr,tr,ch,th均为双精度型变量,c,cr,ch为圆柱体的体积值,半径和高,t,tr和th为圆锥体的体积,半径和高定义全局变量双精度型变量pi为圆周率3.14;实验结果:(程序运行结果) 实验中遇到的
7、问题及解决的方法注意函数头文件在主函数中的书写改后3、题目求10名学员英语成绩的最高分并按从高到低的顺序排序。要求:分别编写求最高分函数和排序函数,在主函数中输入10名学员英语成绩,调用最高分函数和排序函数,显示结果。源程序清单:(调试好的源程序代码)/头文件fh.h double max(double a10);void maopao(double a10);/主函数main#include stdafx.h#include #include fh.husing namespace std;int main () double a10; int i=0; cout请输入成绩endl; for
8、(i=0;iai; cout最高成绩为max (a)endl; maopao(a); cout从高到低排序为endl; for(i=0;i10;i=i+1) coutait; return 0;/自定义函数max 十个数中最大值#include stdafx.hdouble max(double a10) double max; int i; max=a0; for(i=0;imax) max=ai; return max;/自定义函数:排序#include stdafx.h#include using namespace std;void maopao(double a10) int i,j
9、; double t; for(i=0;i9;i+) for(j=0;j9-i;j+) if(ajaj+1) t=aj; aj=aj+1; aj+1=t; return;主要标识符说明:(源程序中主要标识符含义说明)定义数组a10双精度型变量维长为10在自定义函数和主函数中均需定义。I整型变量 循环变量,在主函数与自定的函数中均有定义其为局部变量;Max双精度型变量为数据中的最大值;T为双精度型变量目的在于交换俩个数的值实验结果:(程序运行结果) 实验中遇到的问题及解决的方法函数必须有返回值,对于排序,不能返回数组改后:用void则不需要返回值。同样能实现函数功能四、实验体会(心得、收获)这次实验课我们学习了如何应用函数解决一些问题。我们要注意应用函数时的一些小错误。对于函数可以嵌套调用但不可以嵌套定义。对于一些只需要运行或者返回值不是一个数时,我们就可以通过void来实现。Void不需要函数返回值,但我们必须在函数内对函数实现进行实际的操作。在用到函数就不得不用到多文件结构。用到多文件结构就得有一个头文件来对一些函数进行生命。还有就是我们可以涉及到MFC来实现可视化,可以通过一些按钮摆脱黑屏时代
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1