用c++编程完成如下要求: (1)设计一个立体图形类(CStereoShape类),并满足如下要求: 1)CStereoShape类有一个纯虚函数GetArea,能够获取立方体的表面积; 2)CStereoShape类有一个纯虚函数GetVolume,能够获取立方体的体积; (2)设计一个立方体类(CCube类),该类继承于CStereoShape类,并满足如下要求: 1)CCube类有一个带参数的构造函数,其参数分别对应于立方体的长、宽、高; 2)用一个成员函数来实现对立方体长、宽、高的设置; 3)重载CStereoShape类的GetArea和GetVolume,分别完成立方体的表面积和体积的计算。 (3)设计一个球体类(CSphere),该类继承于CStereoShape类,并满足如下要求: 1)CSphere类有一个带参数的构造函数,其参数对应于球体的半径; 2)用一个成员函数来实现对球体半径的设置; 3)重载CStereoShape类的GetArea和GetVolume,分别完成球体的表面积和体积的计算。 (4)实现一个main函数,在main函数中至少完成如下工作: 1)实例化一个CCube类的对象a_cube和CSphere类的对象c_sphere; 2)定义一个CStereoShape类的指针p; 3)将a_cube的长、宽和高分别设置为4、5和6;将p指向a_cube,通过p将a_cube的表面积和体积打印到屏幕上; 4)将c_sphere的半径设置为7;将p指向c_sphere,通过p将c_sphere的表面积和体积打印到屏幕上。
时间: 2024-02-10 10:10:55 浏览: 57
请按照以下要求设计一个学生类Student,并进行测试。
以下是C++代码实现:
```cpp
#include<iostream>
using namespace std;
const double Pi = 3.1415926535897;
class CStereoShape {
public:
virtual double GetArea() = 0; // 获取表面积
virtual double GetVolume() = 0; // 获取体积
};
class CCube : public CStereoShape {
public:
CCube(double l, double w, double h) :length(l), width(w), height(h) {};
void SetLength(double l) { length = l; }
void SetWidth(double w) { width = w; }
void SetHeight(double h) { height = h; }
double GetArea() override { return 2 * (length * width + width * height + length * height); }
double GetVolume() override { return length * width * height; }
private:
double length, width, height;
};
class CSphere : public CStereoShape {
public:
CSphere(double r) :radius(r) {};
void SetRadius(double r) { radius = r; }
double GetArea() override { return 4 * Pi * radius * radius; }
double GetVolume() override { return 4.0 / 3 * Pi * radius * radius * radius; }
private:
double radius;
};
int main() {
CCube a_cube(0, 0, 0);
CSphere c_sphere(0);
CStereoShape* p;
a_cube.SetLength(4);
a_cube.SetWidth(5);
a_cube.SetHeight(6);
p = &a_cube;
cout << "The area of the cube is: " << p->GetArea() << endl;
cout << "The volume of the cube is: " << p->GetVolume() << endl;
c_sphere.SetRadius(7);
p = &c_sphere;
cout << "The area of the sphere is: " << p->GetArea() << endl;
cout << "The volume of the sphere is: " << p->GetVolume() << endl;
return 0;
}
```
输出结果:
```
The area of the cube is: 148
The volume of the cube is: 120
The area of the sphere is: 615.752
The volume of the sphere is: 1436.76
```
阅读全文