C++ 平面点类
題目描述
設計一個平面點類Point,具有以下屬性:
橫坐標,縱坐標;
具有以下成員函數:
(1)構造函數
(2)顯示函數:以“(x,y)”的形式輸出點坐標
(3)求兩個點的L1范數距離的函數(坐標差的絕對值之和)
輸入描述
輸入為兩行,每行是一個點的坐標(用空格間隔)
輸出描述
輸出有三行,前兩行是兩個點的坐標,第三行是L1范數距離(注意換行):
輸入樣例
1 2 2 1輸出樣例
(1, 2) (2, 1) 2 #include <iostream> #include <cmath>using namespace std;class Point{private:int x, y;public:Point(){x = 0;y = 0;};Point(int new_x, int new_y){x = new_x;y = new_y;};void show(){cout << "(" << x <<", " << y << ")" << endl;}void dist(Point &p){cout << abs(x - p.x) + abs(y - p.y) << endl; // 求兩個點的L1范數距離的函數(坐標差的絕對值之和)} };int main(){int x, y;cin >> x >> y;Point *point1 = new Point(x, y);cin >> x >> y;Point *point2 = new Point(x, y);point1 -> show();point2 -> show();point1 -> dist(*point2);delete point2;delete point1;return 0;}注:
求兩個點的L1范數距離的函數(坐標差的絕對值之和)用到的公式為
引入 #include <cmath>庫可以調用abs()函數對x1 - x2 和 y1 - y2取絕對值。
總結
- 上一篇: C++ 形状类继承
- 下一篇: C++ 动态创建对象数组