設計一個點類Point,再設計一個矩形類,矩形類使用Point類的兩個坐標點作為矩形對角頂點,并可以輸出4個坐標值和面積。使用測試程序驗證程序。求助各位同學,問題在代碼中, 萬分感謝。class Point?{
private:
? ? ???float x, y;?public: ? ? ? ?Point() { x = 0; y = 0; } ? ? ? ?Point(float X, float Y) { x = X; y = Y; }? ? ? ? ? ? ?float getX() { return x; };
? ? ? ?float getY() { return y; };
? ? ? ?void setX(float X) { x = X; };
? ? ? ?void setY(float Y) { y = Y; };?};class Rectangular?{
private: ? ??Point point[4];?public: ? ? ???Rectangular(Point a, Point d) {? ? ? ? ? ? ? ? //請問這段矩形構造函數是什么意思?()? ? ? ? ? ? ? ?point[0] = a;
? ? ? ? ? ? ??? ? ? ? ? ? ? ?point[1].setX(d.getX());? ? ? ? ? ? ? ? //為什么是d.? ? ? ? ? ? ? ?point[1].setY(a.getY());
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?point[2] = d;
? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?point[3].setX(a.getX());? ? ? ? ? ? ? ? //為什么是a.? ? ? ? ? ? ? ?point[3].setY(d.getY());
? ? ? ?}
? ??? ?void printPointsLocation()?{
? ? ? ? ??? ? ?for(int i = 0; i < 4; ++i)?{? std::cout << point[i].getX() << ", " << point[i].getY() << std::endl;? ? }? ???}
? ? ???float getArea() {? ? ? ? ? ??? ?float height, width, area;
? ? ? ? ?????height = point[0].getY() - point[3].getY();? ? ? ? ? ? ? ? //這里減的意思是?? ?width = point[1].getX() - point[0].getX();
? ? ? ? ? ? ? ?? ?area = height * width;
? ? ? ? ? ? ??? ?return area;
? ? ? ?}
? ? ???void printArea() { std::cout << "area:" << getArea() << std::endl; }
};
1 回答
已采納

AAnonymous
TA貢獻62條經驗 獲得超31個贊
//?Regarding?the?constructor +------------------------->?x |???a |?(a.x,?a.y)?????????(d.x,?a.y) |?[0]----------------[1] |??|??????????????????| |??|??????????????????| |??|??????????????????| |?[3]----------------[2] |?(a.x,?d.y)?????????(d.x,?d.y) |?????????????????????d y //?Suppose?given?point?a(0,?0)?and?point?d(2,?2). //?We?have?point[0]?(0,?0),?point[1]?(2,?0),? //?point[2]?(2,?2),?point[3]?(0,?2) //?Regarding?area?calculation //?area?=?width?x?height //??????=?([1].x?-?[0].x)?x?([3].y?-?[0].y) //?The?y-axis's?direction?in?your?code?is?opposite?to?mine, //?so?you?use?([0].y?-?[3].y)
- 1 回答
- 0 關注
- 1236 瀏覽
添加回答
舉報
0/150
提交
取消