估计来到这里的都是深技大的同学 欢呼吧 当你搜csdn没有答案时 我来了
当然 抄写需要一定知识 仅供参考
时间限制
1s
内存限制
128MB
##题目描述
假设坐标采用二维平面坐标。
定义点类CPoint,包含属性x,y(整型)。方法有:带参构造函数,getX,getY分别返回点的x坐标,y坐标。
定义矩形类CRectangle,包含属性:矩形的左上角坐标leftPoint,右下角坐标rightPoint。类中方法有:
1)带参构造函数,初始化矩形的左上角、右下角
2)重载>运算符,参数为CPoint点对象,假设为p,若p在矩形内,返回true,否则返回false。
3)重载>运算符,第一个矩形若包含第二个矩形(部分边界可以相等),返回true,否则返回false。(要求该函数调用2)实现)
4)重载==运算符,判断两个矩形是否一致,返回true或false。
5)重载*运算符,判断两个矩形是否有重叠部分,返回true或false。
6)重载类型转换运算符,计算矩形的面积并返回,面积是整型。
7)重载<<运算符,输出矩形的两个角坐标,具体格式见样例。
输入2个矩形,计算面积,判断矩形的关系。主函数如下,不可修改。
int main()
{
int t, x1, x2, y1, y2;
cin >> t;
while (t–)
{
// 矩形1的左上角、右下角
cin >> x1 >> y1 >> x2 >> y2;
CRectangle rect1(x1, y1, x2, y2);
// 矩形2的左上角、右下角
cin >> x1 >> y1 >> x2 >> y2;
CRectangle rect2(x1, y1, x2, y2);
// 输出矩形1的坐标及面积
cout << “矩形1:” << rect1 << " " << (int)rect1 << endl;
// 输出矩形2的坐标及面积
cout << “矩形2:” << rect2 << " " << (int)rect2 << endl;
if (rect1 == rect2)
{
cout << “矩形1和矩形2相等” << endl;
}
else if (rect2 > rect1)
{
cout << “矩形2包含矩形1” << endl;
}
else if (rect1 > rect2)
{
cout << “矩形1包含矩形2” << endl;
}
else if (rect1 * rect2)
{
cout << “矩形1和矩形2相交” << endl;
}
else
{
cout << “矩形1和矩形2不相交” << endl;
}
cout << endl;
}
return 0;
}
可根据需要,添加构造函数和析构函数。
###输入
测试次数
每组测试数据如下:
矩形1的左上角、右下角坐标
矩形2的左上角、右下角坐标
###输出
每组测试数据输出如下,中间以空行分隔:
矩形1的坐标和面积(具体格式见样例)
矩形2的坐标和面积(具体格式见样例)
矩形1和矩形2的关系(矩形1包含矩形2、矩形2包含矩形1、矩形2和矩形1相等、矩形1和矩形2相交、矩形1和矩形2不相交)
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
const int N = , M = ;
class cx
{
private:
int x1, x2, y1, y2, p;
public:
cx() {
}
cx(int xx1, int yy1, int xx2, int yy2) : x1(xx1), y1(yy1), x2(xx2), y2(yy2)
{
p = 0;
}
void add()
{
x1 += M;
y1 += M;
x2 += M;
y2 += M;
}
void print()
{
cout << x1 << " " << y1 << " " << x2 << " " << y2 << " " << (x2 - x1) * (y2 -