编写一个函数 surfaceArea(),专用于计算各种不同几何图形的面积,利用C++的函数重载技术,实现 以下至少三个版本: 若给定半径,则计算圆的面积 若给定宽和高,则计算矩形的面积 若给定三条边的长度,则计算三角形的面积
时间: 2024-09-25 14:04:17 浏览: 15
在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
}
```
相关问题
c++,实现对一个长方体进行体积、表面积的计算
在C++中,计算长方体的体积和表面积通常涉及到结构体或者类来存储长方体的相关尺寸,如长度(length)、宽度(width)和高度(height)。下面是一个简单的例子,首先定义一个`Cube`类,包含体积和表面积的成员函数:
```cpp
#include <iostream>
// 定义一个立方体类
class Cube {
private:
double length; // 长度
double width; // 宽度
double height; // 高度
public:
// 构造函数
Cube(double l, double w, double h) : length(l), width(w), height(h) {}
// 计算体积
double volume() const {
return length * width * height;
}
// 计算表面积
double surfaceArea() const {
return 2 * (length * width + length * height + width * height);
}
// 显示信息
void displayProperties() const {
std::cout << "Volume: " << volume() << "\n";
std::cout << "Surface Area: " << surfaceArea() << "\n";
}
};
int main() {
// 创建一个立方体实例并设置尺寸
Cube myCube(5.0, 4.0, 3.0);
// 计算并显示属性
myCube.displayProperties();
return 0;
}
```
在这个例子中,用户可以创建`Cube`对象,并通过调用`volume()`和`surfaceArea()`方法获取体积和表面积。如果你有其他需求,比如输入用户的尺寸或者处理更复杂的形状,只需稍作修改即可。
用C语言编写程序,调用函数求一个圆柱体的表面积和体积
好的!以下是用C语言编写的程序,可以计算一个圆柱体的表面积和体积:
```c
#include<stdio.h>
#define PI 3.14159
// 声明函数
float surfaceArea(float r, float h);
float volume(float r, float h);
int main()
{
float r, h;
float s, v;
printf("请输入圆柱体的底面半径和高,用空格隔开:");
scanf("%f %f", &r, &h);
s = surfaceArea(r, h);
v = volume(r, h);
printf("圆柱体的表面积为:%.2f\n", s);
printf("圆柱体的体积为:%.2f\n", v);
return 0;
}
// 定义函数 surfaceArea,计算圆柱体的表面积
float surfaceArea(float r, float h)
{
float s;
s = 2 * PI * r * h + 2 * PI * r * r;
return s;
}
// 定义函数 volume,计算圆柱体的体积
float volume(float r, float h)
{
float v;
v = PI * r * r * h;
return v;
}
```
这个程序中,我们先定义了两个函数 `surfaceArea` 和 `volume`,分别用来计算圆柱体的表面积和体积。在 `main` 函数中,我们首先输入圆柱体的底面半径和高,然后调用 `surfaceArea` 和 `volume` 函数计算表面积和体积,并将结果打印输出到屏幕上。