被虐記 2 期末測試

題目要求


定義一個平面上的點類Point,其中設置成員函數distance1求當前對象與另一點的距離,並設置友員函數distance2也完成相同的工作。

請在劃橫線的部分填上需要的成份,使程序能正確運行,得到要求的輸出結果。
請提交begin到end部分的代碼。

//************* begin *****************

#include<iostream>

#include<cmath>
#include <iomanip>
using namespace  std;
class CPoint
{
private:
    double x;  // 橫座標
    double y;  // 縱座標
public:
    CPoint(double xx=0,double yy=0):x(xx),y(yy) {}
    double distance1(CPoint &);
    ____(1)_____ double distance2(CPoint &, CPoint &);
};
double CPoint::distance1(CPoint &p)
{
    double dx,dy;
    dx=_____(2)_____;
    dy=_____(3)_____;
    return sqrt(dx*dx+dy*dy);
}
double distance2(CPoint &p1,CPoint &p2)
{
    double dx,dy;
    dx=_____(4)_____;
    dy=_____(5)_____;
    return sqrt(dx*dx+dy*dy);
}
//************* begin *****************
int main()
{
    double px1, py1, px2, py2;
    cin>>px1>>py1>>px2>>py2;
    CPoint p1(px1, py1), p2(px2, py2);
    cout <<setiosflags(ios::fixed)<<setprecision(2);
    cout<<"1. "<<p1.distance1(p2)<<endl;
    cout<<"2. "<<distance2(p1,p2)<<endl;
    return 0;
}


輸入
四個以空格隔開的小數,表示平面中兩點的橫縱座標


輸出
兩次輸出兩點間的距離,分別用成員函數和友元函數完成計算


樣例輸入
2.5 4.3 7.8 6.7
樣例輸出
1. 5.82
2. 5.82




1)  friend   2)   x-p.x   3)   y-p.y    4)   p1.x-p2.x  5)p1.y-p2.y  



友元類, double distance1(CPoint &);
   friend double distance2(CPoint &, CPoint &);
    求兩點間的距離,sqrt ((x1-x2)^2+(y1-y2)^2) 開根號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章