按以下提示信息,由基类的设计和测试开始,逐渐地完成各个类的设计,并且完成要求的功能。 ①设计一个Point(点)类,包含数据成员x、y(坐标点)。 ②以Point为基类,派生出一个Circle(圆)类,增加数据成员r(半径)。 要求编写程序,设计出各类中基本的成员函数,包括构造函数、设置数据成员、显示信息和获取数据成员的函数,以及计算圆的周长和面积。
时间: 2024-03-19 10:44:23 浏览: 11
用面向对象的方法,设计一个圆的类,包括计算圆的直径、圆的周长和圆的面积的方法。
好的,我了解您的要求了。根据您的需求,我会为您提供一个完整的类设计和测试代码。请您先看一下下面的代码,如果有任何问题或需要修改的地方,请及时告诉我。
```c++
#include <iostream>
#include <cmath>
using namespace std;
class Point {
public:
Point(double x = 0, double y = 0) : m_x(x), m_y(y) {}
void setX(double x) { m_x = x; }
void setY(double y) { m_y = y; }
double getX() const { return m_x; }
double getY() const { return m_y; }
void display() const { cout << "(" << m_x << ", " << m_y << ")"; }
private:
double m_x;
double m_y;
};
class Circle : public Point {
public:
Circle(double x = 0, double y = 0, double r = 0) : Point(x, y), m_r(r) {}
void setR(double r) { m_r = r; }
double getR() const { return m_r; }
double area() const { return 3.14 * m_r * m_r; }
double perimeter() const { return 2 * 3.14 * m_r; }
private:
double m_r;
};
int main() {
Circle c(1, 2, 3);
cout << "圆心坐标:";
c.display();
cout << endl;
cout << "半径为:" << c.getR() << endl;
cout << "周长为:" << c.perimeter() << endl;
cout << "面积为:" << c.area() << endl;
return 0;
}
```
这里我们设计了一个Point类和一个Circle类,其中Circle类继承自Point类。在Point类中,我们定义了x、y坐标的数据成员和设置、获取、显示坐标点的成员函数。在Circle类中,我们增加了一个半径r的数据成员,并且定义了设置、获取半径和计算周长、面积的成员函数。
在主函数中,我们创建一个Circle对象,并调用其成员函数进行圆心坐标、半径、周长和面积的输出。
希望这个代码能够帮助到您。如果您还有其他问题,请随时问我。
阅读全文