用c++写一个计算球,圆柱,圆锥的表面积和体积的程序要求输入半径
时间: 2025-03-31 12:08:05 浏览: 40
要用 C++ 编写一个程序来计算球、圆柱和圆锥的表面积和体积,可以利用类和对象的概念。下面是一个简单的示例程序:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
class Shape {
public:
double radius;
Shape(double r) : radius(r) {}
virtual double getVolume() = 0; // 纯虚函数表示这是一个抽象类
virtual double getSurfaceArea() = 0;
};
// 定义Ball(球)
class Ball : public Shape {
public:
Ball(double r) : Shape(r) {}
double getVolume() override { return (4.0 / 3.0) * M_PI * pow(radius, 3); }
double getSurfaceArea() override { return 4 * M_PI * pow(radius, 2); }
};
// 定义Cylinder(圆柱), 需要额外的高度信息
class Cylinder : public Shape {
private:
double height;
public:
Cylinder(double r, double h) : Shape(r), height(h) {}
double getVolume() override { return M_PI * pow(radius, 2) * height; }
double getSurfaceArea() override { return 2 * M_PI * radius * (radius + height); }
};
// 定义Cone(圆锥),需要高度
class Cone : public Shape {
private:
double height;
public:
Cone(double r, double h) : Shape(r), height(h) {}
double getVolume() override { return (M_PI * pow(radius, 2) * height) / 3; }
double getSurfaceArea() override {
double l = sqrt(pow(radius, 2) + pow(height, 2));
return M_PI * radius * (radius + l);
}
};
int main(){
double radius, height;
cout << "请输入半径: ";
cin >> radius;
// 对于圆柱体和圆锥还需要输入高度
cout << "对于圆柱和圆锥,请输入高度: ";
cin >> height;
Ball ball(radius);
Cylinder cylinder(radius, height);
Cone cone(radius, height);
cout << "\n=== 结果 ===\n";
cout << "球:\t 表面积=" << ball.getSurfaceArea() << ", 体积=" << ball.getVolume() << endl;
cout << "圆柱:\t 表面积=" << cylinder.getSurfaceArea() << ", 体积=" << cylinder.getVolume() << endl;
cout << "圆锥:\t 表面积=" << cone.getSurfaceArea() << ", 体积=" << cone.getVolume() << endl;
return 0;
}
```
在这个程序里我们首先定义了一个 `Shape` 抽象基类,并派生出三个具体的几何形状——球 (`Ball`)、圆柱 (`Cylinder`) 和 圆锥 (`Cone`)。
阅读全文
相关推荐



















