9 長方形集合

2021-10-19 07:35:25 字數 2584 閱讀 1551

定義乙個point類,包括兩個私有屬性:int x, int y,它們分別表示乙個點的x和y座標。

再定義建構函式:

point(int x, int y),即傳兩個引數,構造乙個點物件。

定義乙個rectangle類,包括四個私有屬性:

int num, point topleft, int width, int height,

它們分別表示長方形的編號(長方形的編號不重複)、左上角頂點的座標,以及橫向的寬度和縱向的高度。

注意:在計算機系統裡,座標系如下定義:螢幕的左上角的座標是(0,0),x軸是橫軸,螢幕的最右端x值最大,y軸是縱軸,螢幕的最下方y值最大。圖如下:

再定義建構函式:

rectangle(int num, int x, int y, int width, int height)

以及例項方法:

int getarea()    //獲取該圖形的面積

bool isin(point p)   //判斷傳入的點是否在該圖形之內(不包括邊界),如果在內部返回true,否則返回false

定義乙個rectanglecollection類,包括兩個私有屬性:

rectangle rects[100];   //乙個包含長方形的陣列,最多100個元素

int count;            //以上陣列中長方形的實際個數

還包括例項方法:

void addrectangle(rectangle r)//新增乙個長方形到陣列中,並count++

void deleterectangle(int num) //根據num從陣列中刪除乙個長方形(該長方形的編號等於num)

int inrects(point p)//根據傳入的p,判斷p位於rects陣列中的哪些長方形之內,返回這些長方形面積之和。

請根據自己的需要定義其它建構函式或者其它方法和屬性。

int main()

}return 0;

}可輸入多組測試資料,每組測試資料報含兩行:

第一行輸入乙個操作的種類,

1:增加乙個長方形

2:刪除乙個長方形

3:求包含某一指定點的所有長方形的面積和

第二行輸入所需要的引數:

對於第1個操作,第二行輸入長方形r的資訊,包括編號num,左上角頂點x座標、左上角頂點y座標、寬度、高度。

對於第2個操作,第二行輸入乙個編號num

對於第3個操作,第二行輸入乙個點p的資訊,包括其x座標和y座標。

所有輸入都為非負整數,之間以乙個空格分隔。無多餘空格或空行,兩組測試資料之間也無空行。

在輸入時,將保證不會向長方形集合中新增乙個編號(num)已經存在的長方形。

僅第3個操作有輸出,因此,測試資料中必然包含第3個操作。

第3個操作僅輸出乙個整數,佔一行。

如果有多個輸出,每個輸出佔一行,行首與行尾無空格,中間無空行。

1

1 4 4 4 4

13 3 3 3 3

12 2 3 5 4

35 523

35 5

13 3 3 4 4

35 5

45

3652

#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

class point ;

point::point(int a, int b)

point::point(void)

int point::get_x(void)

int point::get_y(void)

void point::inside(int a, int b)

class rectangle ;

int rectangle::getnum(void)

rectangle::rectangle(void)

int rectangle::getarea()

bool rectangle::isin(point p)

rectangle::rectangle(int num, int x, int y, int width, int height)

class rectanglecollection ;

void rectanglecollection::addrectangle(rectangle r)

void rectanglecollection::deleterectangle(int num)

} return;

}int rectanglecollection::inrects(point p)

return all;

}rectanglecollection::rectanglecollection(void)

int main()

} return 0;

}

最小長方形

題目 給定一系列2維平面點的座標 x,y 其中x和y均為整數,要求用乙個最小的長方形框將所有點框在內。長方形框的邊分別平行於x和y座標軸,點落在邊上也算是被框在內。輸入 測試輸入包含若干測試用例,每個測試用例由一系列座標組成,每對座標 x y 佔一行,其中 x 和 y 小於 1000 一對 0,0 ...

最小長方形

題目描述 給定一系列2維平面點的座標 x,y 其中x和y均為整數,要求用乙個最小的長方形框將所有點框在內。長方形框的邊分別平行於x和y座標軸,點落在邊上也算是被框在內。輸入 測試輸入包含若干測試用例,每個測試用例由一系列座標組成,每對座標佔一行,其中 x 和 y 小於 231 一對0 座標標誌著乙個...

最小長方形

果然,自己的 和別人的 的差別,就是這麼大!所以以後,還是要好好練習,自己寫 先寫自己的,再看別人的,因為差別太大了。看著別人的 根本就不動腦子了。連簡單的都寫不出來了!看看吧,這就是差別!include include int a 1005 b 1005 int main int amax 240...