1 #include<iostream>
2 #include<math.h>
3 using namespace std;
4 class CPoint
5 {
6 public:
7 int cpoint()
8 {
9 x = 0;
10 y = 0;
11 return 0;
12 }
13 int cpoint(double a , double b)
14 {
15 x=a;
16 y=b;
17 return 0;
18 }
19 double GetX()
20 {
21 return x;
22 }
23 double GetY()
24 {
25 return y;
26 }
27 int SetX(double a)
28 {
29 x=a;
30 return 0;
31 }
32 int SetY(double a)
33 {
34 y=a;
35 return 0;
36 }
37 private:
38 double x,y;
39 };
40 class CRectangle:public CPoint
41 {
42 private:
43 CPoint cp1,cp2;
44 public:
45 int crectangle()
46 {
47 cp1.cpoint();
48 cp2.cpoint();
49 return 0;
50 }
51 int crectangle( const CPoint& c1,const CPoint& c2)
52 {
53 cp1 = c1;
54 cp2 = c2;
55 return 0;
56 }
57 int SetLPoint( const CPoint& c1)
58 {
59 cp1 = c1;
60 return 0;
61 }
62 int SetRPoint( const CPoint& c2)
63 {
64 cp2 = c2;
65 return 0;
66 }
67 double GetPerimeter()
68 {
69 double X1,X2,Y1,Y2;
70 X1 = cp1.GetX();
71 X2 = cp2.GetX();
72 Y1 = cp1.GetY();
73 Y2 = cp2.GetY();
74 return (fabs(X1 - X2) + fabs(Y1 - Y2)) * 2;
75 }
76 double GetArea()
77 {
78 return fabs(cp1.GetX() - cp2.GetX()) * fabs(cp1.GetY() - cp2.GetY());
79 }
80 };
81 int main()
82 {
83 CRectangle * a_rectagnle = new CRectangle ;
84 CPoint c1 , c2 ;
85 c1.cpoint( 2 , 5 );
86 c2.cpoint( 6 , 8 );
87 a_rectagnle->crectangle( c1,c2 );
88 cout << "perimeter = " << a_rectagnle->GetPerimeter() << endl;
89 cout << "area = " << a_rectagnle->GetArea() << endl;
90 c1.cpoint(4,6);
91 a_rectagnle->SetLPoint( c1 );
92 c2.cpoint( 7, 9 );
93 a_rectagnle->SetRPoint( c2 );
94 cout << "perimeter = " << a_rectagnle->GetPerimeter() << endl;
95 cout << "area = " << a_rectagnle->GetArea() << endl;
96 delete a_rectagnle;
97 return 0;
98 }