//理清关系,别忙,别乱,
//求绝对值:整形abs(), 浮点型fabs(),都在math的库里面
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
class Point
{
public:
Point(int x, int y) : x_(x), y_(y) {
cout << "A point ("<< x_<< ", " << y_<< ") is created!" << endl;
}
int getX()
{
return x_;
}
int getY()
{
return y_;
}
~Point()
{
cout << "A point ("<< x_ << ", " << y_ << ") is erased!" << endl;
}
private:
int x_, y_;
};
class Rectangle
{
public:
Rectangle(int x1, int y1, int x2, int y2): l_(x1, y1), r_(x2, y2)
{
cout << "A rectangle (" << x1 << ", " << y1 << ") to (" << x2 << ", " << y2 << ") is created!" << endl;
}
Point getLeftTop()
{
return l_;
}
Point getRightBottome()
{
return r_;
}
int getArea()
{
// int h = abs(l_.y_ - r.y_); 错
//int l = abs(l_.x_ - r.x_);
int l = abs(l_.getX() - r_.getX());
int h = abs(l_.getY() - r_.getY());
area = h * l;
return area;
}
private:
Point l_, r_;
int area;
};
int main()
{
int cases;
int x1, y1, x2, y2;
cin>>cases;
for (int i = 0; i < cases; i++)
{
cin>>x1>>y1>>x2>>y2;
Rectangle rect(x1,y1,x2,y2);
cout<<"Area: "<<rect.getArea()<<endl;
cout<<"Left top is ("<<rect.getLeftTop().getX()<<", "<<rect.getLeftTop().getY()<<")"<<endl;
cout<<"Right bottom is ("<<rect.getRightBottome().getX()<<", "<<rect.getRightBottome().getY()<<")"<<endl;
}
return 0;
}
SDUST 第四次实验
最新推荐文章于 2022-01-12 20:46:30 发布