/*
Name:矩形
Author: 韩静
Description:编写C++程序完成以下功能:
(1) 定义一个Point类,其属性包括点的坐标,提供计算两点之间距离的方法;
(2) 定义一个矩形类,其属性包括左上角和右下角两个点,提供计算面积的方法;
(3) 创建一个矩形对象,提示用户输入矩形左上角和右下角的坐标;
(4) 观察矩形对象以及Point类成员的构造函数与析构函数的调用;
(5) 计算其面积,并输出。
*/
#include<iostream>
#include<math.h> //头文件
using namespace std;
//定义包括两点在内的求两点间距离的类
class Point
{
public:
Point(int xx=0,int yy=0); //构造函数
double Distance(Point a,Point b);
int GetX(){return X;}
int GetY(){return Y;}
~Point(){}; //析构函数
private:
int X,Y;//两点变量
};
//矩形类
class Rectangle
{
public:
Rectangle(Point mm,Point nn);//构造函数
int Area();//求矩形面积函数
private:
Point a;
Point b;
};
//构造函数定义
Point::Point(int xx,int yy)
{
X=xx;
Y=yy;
}
Rectangle::Rectangle(Point mm,Point nn)
{
a=mm;
b=nn;
}
//求两点间距离函数定义
double Point::Distance(Point a,Point b)
{
double distance;
distance=sqrt((a.X-b.X)*(a.X-b.X)+(a.Y-b.Y)*(a.Y-b.Y));//两点间距离公式
return distance;
}
//计算面积函数定义
int Rectangle::Area()
{
int area,x,y;
x=a.GetX()-b.GetX();
y=a.GetY()-b.GetY();
area=x*y; //由矩形对角两点求矩形面积公式
//保证矩形面积为正值
if(area<0)
area=-1*area;
return area;
}
//主函数
int main()
{
int x1,x2,y1,y2,rectangle_area;
cout<<"please input the leftup_point :"<<endl; //显示提示信息
cin>>x1>>y1; //输入点坐标
cout<<"please input the rightdown_point:"<<endl; //显示提示信息
cin>>x2>>y2; //输入点坐标
Point p1(x1,y1);
Point p2(x2,y2);
Rectangle rectangle1(p1,p2);//矩形对象
rectangle_area=rectangle1.Area();//调用求矩形面积函数
cout<<"The area is:"<<rectangle_area<<endl;//输出结果
system("pause");
return 0;
}