编写计算圆环面积的C++程序。要求:先设计一个圆形类Circle,再基于类Circle使用继承的方法定义一个圆环类Ring。圆环可认为是在圆形基础上再增加一个描述线宽的属性,即带边框的圆形(假设新增加的圆形比旧的圆形大)。 圆类声明部分: class Circle // 圆形类:声明部分,即声明成员 { public: double CRadius(); // 读取半径:公有函数成员 double CArea(); // 求面积:公有函数成员 Circle(double x); // 有参构造函数:公有权限 private: double r; // 半径:保护数据成员 }; 圆环类声明部分: class Ring:public Circle{ public: Ring(double x, double y) :Circle(x){ w = y; } double RArea(); //求圆环面积 private: double w; }; 主函数: int main(){ Ring obj(5, 3); cout << obj.RArea() << endl; return 0; } 完成圆类和圆环类定义,并执行主函数给出结果。
时间: 2024-02-05 16:04:47 浏览: 160
以下是完整的C++代码:
```c++
#include <iostream>
using namespace std;
class Circle
{
public:
double CRadius(); // 读取半径:公有函数成员
double CArea(); // 求面积:公有函数成员
Circle(double x); // 有参构造函数:公有权限
private:
double r; // 半径:保护数据成员
};
double Circle::CRadius()
{
return r;
}
double Circle::CArea()
{
return 3.14 * r * r;
}
Circle::Circle(double x)
{
r = x;
}
class Ring : public Circle
{
public:
Ring(double x, double y) : Circle(x)
{
w = y;
}
double RArea(); // 求圆环面积:公有函数成员
private:
double w; // 线宽:私有数据成员
};
double Ring::RArea()
{
double r1 = CRadius();
double r2 = r1 + w;
return 3.14 * (r2 * r2 - r1 * r1);
}
int main()
{
Ring obj(5, 3);
cout << "圆环面积为:" << obj.RArea() << endl;
return 0;
}
```
程序运行结果为:
```
圆环面积为:113.04
```
阅读全文