题目内容:
设计并测试一个名为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
点击查看学习笔记
除了很丑没什么别的缺点了
1 #include <bits/stdc++.h>
2 using namespace std;
3 class Trapezium{
4 private:
5 int X1;
6 int Y1;
7 int X2;
8 int Y2;
9 int X3;
10 int Y3;
11 int X4,Y4;
12 public:
13 void initial(int x1,int y1,int x2,int y2,int x3,int y3,int x4,int y4);//初始化数据成员,
14 void GetPosition(int&x1,int&y1,int&x2,int&y2,int&x3,int&y3,int&x4,int&y4);//读取坐标值,函数
15 void Area();
16 };
17 void Trapezium::GetPosition(int&x1,int&y1,int&x2,int&y2,int&x3,int&y3,int&x4,int&y4){//读取坐标值,函数{
18 cout<<x1<<" "<<y1<<" "<<x2<<" "<<y2<<" "<<x3<<" "<<y3<<" "<<x4<<" "<<y4<<'
';
19 }
20 void Trapezium::Area(){//面积为上底加下底*高/2
21 double s;
22 s=(double)(X2-X1+X4-X3)*(Y2-Y4)/2;
23 cout<<s<<'
';
24 }
25
26 void Trapezium::initial(int x1,int y1,int x2,int y2,int x3,int y3,int x4,int y4){
27 X1=x1;
28 X2=x2;
29 X3=x3;
30 X4=x4;
31 Y1=y1;
32 Y2=y2;
33 Y3=y3;
34 Y4=y4;
35 }
36 int main(){
37
38 int a1,a2,b1,b2,c1,c2,d1,d2;
39 cin>>a1>>a2>>b1>>b2>>c1>>c2>>d1>>d2;
40 Trapezium trapezium;
41 trapezium.initial(a1,a2,b1,b2,c1,c2,d1,d2);
42 trapezium.Area();
43 return 0;
44 }