题目内容:
设计并测试一个名为Trapezium的梯形类,其属性为梯形的四个顶点的坐标。该梯形上边和下边均和x轴平行。 根据类的封装性要求,在类的声明中用8个私有的整型变量表示4个点的坐标值,声明成员函数initial(int,int,int,int,int,int,int,int)初始化数据成员,函数GetPosition(int&,int&,int&,int&,int&,int&,int&,int&)读取坐标值,函数Area()计算面积。
输入格式:
梯形四个顶点的坐标,
输出格式:
梯形的面积,依次为左上(x1,y1)、右上(x2,y2)、左下(x3,y3)和右下(x4,y4)角的顶点。
输入样例:
3 2 5 2 1 -4 7 -4
输出样例:
24
时间限制:500ms内存限制:32000kb
#include <iostream> using namespace std; class Trapezium { private: int x1; int y1; int x2; int y2; int x3; int y3; int x4; int y4; public: void initial(int TrapeziumX1,int TrapeziumY1,int TrapeziumX2,int TrapeziumY2,int TrapeziumX3,int TrapeziumY3,int TrapeziumX4,int TrapeziumY4) { x1 = TrapeziumX1; x2 = TrapeziumX2; x3 = TrapeziumX3; x4 = TrapeziumX4; y1 = TrapeziumY1; y2 = TrapeziumY2; y3 = TrapeziumY3; y4 = TrapeziumY4; } void GetPosition(int& pX1,int& pY1,int& pX2,int& pY2,int& pX3,int& pY3,int& pX4,int& pY4) { cout<< pX1 << " " << pY1 << " " << pX2 << " " << pY2 << " " << pX3 << " " << pY3 << " " << pX4 << " " << pY4 << endl; } int Area() { int s; s = (x2-x1+x4-x3)*(y2-y4)/2; return s; } }; int main() { int x1,y1,x2,y2,x3,y3,x4,y4; cin>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4; Trapezium t; t.initial(x1, y1, x2, y2, x3, y3, x4, y4); cout<<t.Area()<<endl; return 0; }