首先定义一个点类 POINT ,有两个 double 型的 保护 数据成员 x ,y 表示该类对象在二维坐标系中的坐标位首先定义一个点类 POINT ,有两个 double 型的 保护 数据成员 x 、 y 表示该类对象在二维坐标

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/22 11:02:39
首先定义一个点类POINT,有两个double型的保护数据成员x,y表示该类对象在二维坐标系中的坐标位首先定义一个点类POINT,有两个double型的保护数据成员x、y表示该类对象在二维坐标首先定义

首先定义一个点类 POINT ,有两个 double 型的 保护 数据成员 x ,y 表示该类对象在二维坐标系中的坐标位首先定义一个点类 POINT ,有两个 double 型的 保护 数据成员 x 、 y 表示该类对象在二维坐标
首先定义一个点类 POINT ,有两个 double 型的 保护 数据成员 x ,y 表示该类对象在二维坐标系中的坐标位
首先定义一个点类 POINT ,有两个 double 型的 保护 数据成员 x 、 y 表示该类对象在二维坐标系中的坐标位置,该类中定义至少两个公有成员函数:
(1) 构造函数:设置点的初始值;
(2) 成员函数 show 显示点的位置,具体输出形式请参考下面的圆心输出样式.
该类中如果还需要定义其他函数或作其他说明的,请读者自己考虑,无统一规定.
然后,以类 POINT 为基类定义公有派生类 CIRCLE ,其类定义方式如下:(此段代码请直接复制到程序中,注意:已给出的部分不可以改变,如果需要其他函数或说明的,请自行添加)
class CIRCLE:public POINT
{
private:
const double PI; // 常数据成员,值为3.14159
POINT r1,r2; // 两个对象成员,r1 表示圆心,r1 和 r2 有距离作为半径
double r; // 表示圆的半径
public:
CIRCLE ( POINT p1,POINT p2);
double circum () ;
double area () ;
void show () ;
};
其中成员函数 show () 的代码给出如下,请直接复制到程序中:
void CIRCLE::show ()
{
cout

首先定义一个点类 POINT ,有两个 double 型的 保护 数据成员 x ,y 表示该类对象在二维坐标系中的坐标位首先定义一个点类 POINT ,有两个 double 型的 保护 数据成员 x 、 y 表示该类对象在二维坐标

修改如下,调试无误:

#include "iostream"

#include "cmath"

using namespace std;

//实现POINT类

class POINT

{

protected://private:

     double x;

     double y;

public:

     POINT(double x1=0,double y1=0);

        void show();

     double getX();   

     double getY();

 

};

POINT::POINT(double x1,double y1)

{

     x=x1;

     y=y1;

}

double POINT::getX()

{

     return x;

}

double POINT::getY()

{

     return y;

}

void POINT::show()

{

     cout<<"("<<x<<","<<y<<")"<<endl;

}

//POINT类实现完成

class CIRCLE: public POINT

private:

 const double PI; // 常数据成员,值为3.14159

 POINT r1,r2; // 两个对象成员, r1 表示圆心, r1 和 r2 有距离作为半径

 double r; // 表示圆的半径 

public: 

 CIRCLE ( POINT p1, POINT p2); 

 double circum () ; 

 double area () ; 

 void show () ; 

};

//实现CIRCLE类的构造函数

CIRCLE::CIRCLE(POINT p1,POINT p2):r1(p1),r2(p2),PI(3.14159)

{

     r=sqrt(pow((r1.getX()-r2.getX()),2)+pow((r1.getY()-r2.getY()),2));

}

//

void CIRCLE::show () 

{

     cout<<"the center of the circle is:\n"; 

     r1.show () ;

     cout<<"the radius is:"<<r<<endl; 

     cout<<"the area is:"<<area()<<endl; 

     cout<<"the circumference is:"<<circum()<<endl; 

}

//实现CIRCLE类的circum和area方法

double CIRCLE::circum()

{

     return 2*PI*r;

}

double CIRCLE::area()

{

     return PI*r*r;

}

//

int main () 

     double x[4]; 

     int i; 

     for (i=0;i<4;i++) 

      cin>>x[i]; // 点的横纵坐标由输入给定 

     POINT p1(x[0],x[1]),p2(x[2],x[3]); 

     CIRCLE c(p1,p2); 

     cout<<"the information about c is:\n"; 

     c.show (); 

     return 0; 

}

调试结果: