用函数重载方法编写求面积程序,要求能计算圆,矩形三角形面积
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用函数重载方法编写求面积程序,要求能计算圆,矩形三角形面积相关的知识,希望对你有一定的参考价值。
// 重载函数是函数的一种特殊情况,为方便使用,// C++允许在同一范围中声明几个功能类似的同名函数,
// 但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,
// 也就是说用同一个运算符完成不同的运算功能。这就是重载函数。
// 重载函数常用来实现功能类似而所处理的数据类型不同的问题。
#include <cstdlib>
#include <cmath>
#include <iostream>
// 定义π的值,主要是利用数学函数中的反三角函数arccos(-1)=π
const double pi = acos(-1);
// 计算圆的面积,dbRadius为圆的半径
double getArea(double dbRadius)
return pi*dbRadius*dbRadius;
// 计算矩形的面积,dbLong、dbWide分别为矩形的长和宽
double getArea(double dbLong, double dbWide)
return dbLong*dbWide;
// 计算三角形面积,a、b、c分别为三角形的三条边
double getArea(double a, double b, double c)
double p = (a + b + c) / 2.0;
return sqrt(p*(p - a)*(p - b)*(p - c));
int main()
double a, b, r, m, n, o;
std::cout << "请输入圆的半径:" << std::endl;
std::cin >> r;
std::cout << "请输入矩形的长、宽:" << std::endl;
std::cin >> a >> b;
std::cout << "请输入三角形的三条边:"<< std::endl;
std::cin >> m >> n >> o;
std::cout
<< "圆的面积:" << getArea(r) << std::endl
<< "矩形的面积:"<< getArea(a,b) << std::endl
<< "三角形的面积:" << getArea(m, n, o) << std::endl;
system("pause");
参考技术A #include"cmath"
#include<iostream>
using namespace std;
const float pi=3.1415926;
class Shape
public:
virtual float getArea()=0;
;
class Rectangle:public Shape
private:
float a,b;//矩形的长,宽
public:
Rectangle(float a,float b);
float getArea();
;
Rectangle::Rectangle(float a,float b)
this->a=a;
this->b=b;
float Rectangle::getArea()
return a*b;
class Circle:public Shape
private:
float r;//圆的半径
public:
Circle(float r);
float getArea();
;
Circle::Circle(float r)
this->r=r;
float Circle::getArea()
return pi*r*r;
class Triangle:public Shape
private:
float a,b,c;//三角形的三条边
public:
Triangle(float aa,float bb,float cc):a(aa),b(bb),c(cc)
float getArea();
;
float Triangle::getArea()
float p=(a+b+c)/2;
return sqrt(p*(p-a)*(p-b)*(p-c));
int main()
float a,b,r,m,n,o;
cout<<"请输入矩形的长、宽:\n";
cin>>a>>b;
cout<<"请输入圆的半径:\n";
cin>>r;
cout<<"请输入三角形的三条边:\n";
cin>>m>>n>>o;
Rectangle rect(a,b);
Circle c(r);
Triangle t(m,n,o);
cout<<"矩形的面积:"<<rect.getArea()<<"\n圆的面积:"<<c.getArea()<<"\n三角形的面积:"<<t.getArea()<<endl;
重载函数是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个运算符完成不同的运算功能。这就是重载函数。重载函数常用来实现功能类似而所处理的数据类型不同的问题。
编写一个求圆的周长的函数和求圆面积的函数,中main函数中,通过输入半径值?
参考技术A 以下是求圆周长和圆面积的函数,以及在main函数中使用这些函数的示例代码:#include <stdio.h>
// 声明求圆周长和圆面积的函数
double circle_circumference(double radius);
double circle_area(double radius);
int main()
double radius;
printf("请输入圆的半径:");
scanf("%lf", &radius);
// 调用求圆周长和圆面积的函数,并输出结果
printf("圆的周长为:%lf\n", circle_circumference(radius));
printf("圆的面积为:%lf\n", circle_area(radius));
return 0;
// 定义求圆周长的函数
double circle_circumference(double radius)
const double pi = 3.1415926;
return 2 * pi * radius;
// 定义求圆面积的函数
double circle_area(double radius)
const double pi = 3.1415926;
return pi * radius * radius;
这个程序中,我们先在main函数中读入圆的半径值,然后调用circle_circumference和circle_area函数,分别计算圆的周长和面积。在这两个函数中,我们使用const关键字来定义一个常量pi,其值为圆周率π。最后,在main函数中,我们使用printf函数将计算结果输出到控制台。
以上是关于用函数重载方法编写求面积程序,要求能计算圆,矩形三角形面积的主要内容,如果未能解决你的问题,请参考以下文章