定义一个描述二维坐标系中点对象的类Point,它具有下述成员函数:

定义一个描述二维坐标系中点对象的类Point,它具有下述成员函数:
Point(); //不带参构造函数
Point(double x,double y); //带参构造函数
double r(); //计算极坐标的极半径
double theta(); //计算极坐标的极角 (使用atan2函数)
double distance(const Point &p); //计算与点p的距离
Point relative(const Point &p); //计算相对于点p的相对坐标
int is_above_left(const Point&p); //判断是否在点p的左上方(1表示是,0表示不是)
//windows下坐标原点为屏幕左上角,X轴向右,Y轴向下
void set_x(double x); //重新设置x的值
void set_y(double y); //重新设置y的值
double get_x(); //提取x的值
double get_y(); //提取y的值
7 8 4 4
(0,0)
(7,8)
(-3,-4)
p的极半径=5.65685,P的极角=0.785398
p2与p的距离=5,点p2不在p的左上方,p在p2的左上方
请按任何键继续.
用以下程序调试,输出结果见图(其中最上一行是输入的数据,其它是输出的结果)
void print(Point &p) //输出坐标
{cout >w;
print(p);
Point p2(x,y);
p.set_x(z);
p.set_y(w);
print(p2);
print(p.relative(p2));
cout
chenci520 1年前 已收到1个回答 举报

倒地 幼苗

共回答了16个问题采纳率:87.5% 举报

#include
#include
class Point
{
private:
x05double m_x;
x05double m_y;x05
public:
x05Point()
x05{
x05x05m_x = 0.0;
x05x05m_y = 0.0;
x05}
x05
x05Point(double x,double y)
x05{
x05x05m_x = x;
x05x05m_y = y;x05x05
x05}
x05
x05~Point()
x05{
x05x05
x05}
x05
x05double r()
x05{
x05x05return sqrt(m_x*m_x + m_y*m_y);
x05}
x05
x05double theta()
x05{
x05x05return atan2(m_y,m_x);
x05}
x05
x05double distance(const Point &p)
x05{
x05x05double dx = p.get_x() - m_x;
x05x05double dy = p.get_y() - m_y;
x05x05
x05x05return (dx*dx + dy*dy);
x05}
x05
x05Point &relative(const Point &p)
x05{
x05x05double x = m_x - p.get_x();
x05x05double y = m_y - p.get_y();
x05x05
x05x05Point point(x,y);
x05x05
x05x05return point;
x05}
x05
x05int is_above_left(const Point &p)
x05{
x05x05if(m_x < p.get_x() && m_y > p.get_y())
x05x05{
x05x05x05return 1;
x05x05}
x05x05
x05x05return 0;
x05}
x05
x05void set_x(double x)
x05{
x05x05m_x = x;
x05}
x05
x05void set_y(double y)
x05{
x05x05m_y = y;
x05}
x05
x05double get_x() const
x05{
x05x05return m_x;
x05}
x05
x05double get_y() const
x05{
x05x05return m_y;
x05}
};

1年前

1
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.024 s. - webmaster@yulucn.com