设计一个点类Point,再设计一个矩形类,矩形类使用Point类的两个坐标点作为矩形的对角顶点。并可以输出4个坐标值和面积。使用测试程序验证程序。用c++
时间: 2024-10-09 19:12:32 浏览: 26
首先,我们来设计`Point`类和`Rectangle`类:
```cpp
#include <iostream>
#include <cmath>
// 点类 Point
class Point {
public:
double x;
double y;
// 构造函数
Point(double x = 0, double y = 0) : x(x), y(y) {}
// 输出坐标
void display() const {
std::cout << "Point(" << x << ", " << y << ")" << std::endl;
}
};
// 矩形类 Rectangle
class Rectangle {
private:
Point cornerA; // 左上角
Point cornerB; // 右下角
public:
// 构造函数,传入两点创建矩形
Rectangle(const Point& a, const Point& b)
: cornerA(a), cornerB(b) {}
// 获取四个坐标值
void getCoordinates() const {
cornerA.display();
std::cout << "Corner B(" << cornerB.x << ", " << cornerB.y << ")" << std::endl;
}
// 计算并返回面积
double area() const {
return abs(cornerA.x - cornerB.x) * abs(cornerA.y - cornerB.y);
}
};
int main() {
// 创建点对象
Point point1(0, 0);
Point point2(5, 5);
// 创建矩形对象,使用上述点作为顶点
Rectangle rectangle(point1, point2);
// 输出坐标和计算面积
rectangle.getCoordinates();
std::cout << "Area: " << rectangle.area() << std::endl;
// 测试验证
if (rectangle.area() == 25) { // 如果实际面积为25,说明计算正确
std::cout << "Test passed!" << std::endl;
} else {
std::cout << "Test failed!" << std::endl;
}
return 0;
}
```
在这个示例中,我们首先定义了`Point`类,然后在`Rectangle`类中使用这两个点作为矩形的对角顶点。`getCoordinates`方法用于打印出矩形的两个角点,而`area`方法则计算并返回矩形的面积。
在`main`函数里,我们创建了一个矩形,并通过这两个点创建实例。最后,我们验证了计算出来的面积是否正确。
阅读全文