编写一个函数重载的程序,可以计算三角形、矩形和圆的面积。三\r\n角形的三条边,矩形的长和宽,圆的半径在 main 函数中输入,再通过参数传递\r\n给重载函数,结果返回给 main 函数,再 main 函数
时间: 2023-05-03 19:01:41 浏览: 96
题目要求编写一个函数重载的程序,可以计算三角形、矩形和圆的面积。三角形的三条边、矩形的长和宽,圆的半径在 main 函数中输入,再通过参数传递给重载函数,最后将结果返回给 main 函数,再由 main 函数输出。
相关问题
题目要求编写一个函数重载的程序,可以计算三角形、矩形和圆的面积。三角形的三条边、矩形的长和宽,圆的半径在 main 函数中输入,再通过参数传递给重载函数,最后将结果返回给 main 函数,再由 main 函数输出。
非常感谢您的提问!下面是我为您编写的代码,实现了对三角形、矩形和圆的面积计算,并且使用了函数重载。
注意:因为系统限制,我在回答中只能展示代码部分,如果想要使用自己的环境测试代码,可以将代码复制到本地。同时,请确保代码的安全性,谨慎运行。
代码如下:
```C++
#include <iostream>
#include <cmath>
using namespace std;
// 计算三角形面积
double GetArea(double a, double b, double c)
{
double p = (a + b + c) / 2.0;
return sqrt(p * (p - a) * (p - b) * (p - c));
}
// 计算矩形面积
double GetArea(double length, double width)
{
return length * width;
}
// 计算圆形面积
double GetArea(double radius)
{
return M_PI * radius * radius;
}
int main()
{
double a, b, c, length, width, radius;
// 读取输入值
cout << "请输入三角形的三条边:";
cin >> a >> b >> c;
cout << "请输入矩形的长和宽:";
cin >> length >> width;
cout << "请输入圆的半径:";
cin >> radius;
// 计算面积并输出结果
double trianglesArea = GetArea(a, b, c);
double rectanglesArea = GetArea(length, width);
double circlesArea = GetArea(radius);
cout << "三角形面积为:" << trianglesArea << endl;
cout << "矩形面积为:" << rectanglesArea << endl;
cout << "圆形面积为:" << circlesArea << endl;
return 0;
}
```
希望我的回答能够帮到您!如果您还有其他问题,欢迎继续提问。
编写一个函数 surfaceArea(),专用于计算各种不同几何图形的面积,利用C++的函数重载技术,实现 以下至少三个版本: 若给定半径,则计算圆的面积 若给定宽和高,则计算矩形的面积 若给定三条边的长度,则计算三角形的面积
在C++中,你可以编写一个名为`surfaceArea()`的函数模板,结合函数重载(Function Overload),以便根据不同输入类型计算不同几何图形的面积。以下是三种情况下的函数实现:
1. **圆的面积** (假设输入的是半径 `radius`):
```cpp
double surfaceArea(double radius) {
return M_PI * pow(radius, 2); // 圆面积公式 πr²
}
```
2. **矩形的面积** (假设输入的是宽度 `width` 和高度 `height`):
```cpp
double surfaceArea(int width, int height) {
return width * height; // 矩形面积公式 长乘以宽
}
```
3. **三角形的面积** (假设输入的是两条边长 `a` 和 `b`,以及它们之间的夹角 `angle`,这里假设角度已转换成弧度,例如使用 `std::atan2` 函数获取):
```cpp
#include <cmath>
double surfaceArea(double a, double b, double angleInRadians) {
double s = (a + b + std::hypot(a, b)) / 2.0; // 半周长
return std::sqrt(s * (s - b) * (s - std::hypot(a, b))); // Heron's formula
}
```
阅读全文