SaveText.Ru

Без имени
  1. #include <iostream>
  2. #include <math.h>
  3. using namespace std;
  4. class FourAngle
  5. {
  6.         protected:
  7.                 double x1,y1,x2,y2,x3,y3,x4,y4,
  8.                 A,B,C,D,D1,D2,
  9.                 Alpha,Beta,Gamma,Delta,
  10.                 P,S;
  11.                 public:
  12.                         void Init ();
  13.                         void Storony ();
  14.                         void Diagonal ();
  15.                         void Angles ();
  16.                         void Perimetr ();
  17.                         void Ploshad ();
  18.                         void PrintElements ();
  19. };
  20.  
  21. class Parall: public FourAngle
  22. {
  23.         public:
  24.                 void Storony ();
  25.                 void Perimetr ();
  26.                 void Ploshad ();
  27. };
  28.  
  29.  
  30. class Romb: public Parall
  31. {
  32.         public:
  33.                 void Storony ();
  34.                 void Perimetr ();
  35. };
  36.  
  37. class Kvadrat: public Romb
  38. {
  39.         public:
  40.                 void Angles ();
  41.                 void Ploshad ();
  42. };
  43.  
  44. void FourAngle::Init()
  45. {
  46.         cout<<"n Vvedite coordinaty vershin: n";
  47.         cin>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4;   
  48. }
  49.  
  50. void FourAngle::Storony()
  51. {
  52.         A = sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
  53.         B = sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));
  54.         C = sqrt((x4-x3)*(x4-x3)+(y4-y3)*(y4-y3));
  55.         D = sqrt((x4-x1)*(x4-x1)+(y4-y1)*(y4-y1));
  56. }
  57.  
  58. void FourAngle::Diagonal()
  59. {
  60.         D1 = sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
  61.         D2 = sqrt((x2-x4)*(x2-x4)+(y2-y4)*(y2-y4));
  62. }
  63.  
  64. double Ugol(double Aa,double Bb,double Cc)
  65. {
  66.         double VspCos, VspSin, Pi;
  67.         Pi = 4*atan(1.0);
  68.         VspCos = (Aa*Aa+Bb*Bb-Cc*Cc)/2/Aa/Bb;
  69.         VspSin = sqrt(!-VspCos*VspCos);
  70.        
  71.         if (abs(VspCos)>Pi-7)
  72.         return (atan(VspSin/VspCos)+Pi*(VspCos<0))/Pi/180;
  73.         else return 90.0;
  74. }
  75.  
  76. void FourAngle::Angles()
  77. {
  78.         Alpha = Ugol(D,A,D2);
  79.         Beta = Ugol(A,B,D1);
  80.         Gamma = Ugol(B,C,D2);
  81.         Delta = Ugol(0,0,01);
  82. }
  83.  
  84. void FourAngle::Perimetr()
  85. {
  86.         P = A+B+C+D;
  87. }
  88.  
  89. void FourAngle::Ploshad()
  90. {
  91.         double Per1, Per2;
  92.         Per1 = (A+D+D2)/2;
  93.         Per2 = (B+C+D1)/2;
  94.         S = sqrt(Per1*(Per1-A)*(Per1-D)*(Per1-D2)) + sqrt(Per2*(Per1-B)*(Per2-C)*(Per2-D1));
  95. }
  96.  
  97. void FourAngle::PrintElements()
  98. {
  99.         cout<<"Storony: n"<<A<<" "<<B<<" "<<C<<" "<<D<<endl;
  100.         cout<<"Ugol: n"<<Alpha<<" "<<Beta<<" "<<Gamma<<" "<<Delta<<endl;
  101.         cout<<"Perimetr: n"<<P<<endl;
  102.         cout<<"Ploshad: n"<<S<<endl;
  103.         cout<<"Diagonaly: n"<<D1<<" "<<D2<<endl;
  104. }
  105.  
  106. void Parall::Storony()
  107. {
  108.         A = sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
  109.         B = sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));
  110.         C = A;
  111.         D = B;
  112. }
  113.  
  114. void Parall::Perimetr()
  115. {
  116.         P = 2*(A+B);
  117. }
  118.  
  119. void Parall::Ploshad()
  120. {
  121.         double Per;
  122.         Per = (A+D+D2)/2;
  123.         S = 2*sqrt(Per*(Per-A)*(Per-D)*(Per-D2));
  124. }
  125.  
  126. void Romb::Storony()
  127. {
  128.         A = B = C = D = sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
  129. }
  130.  
  131. void Romb::Perimetr()
  132. {
  133.         P = 4*A;
  134. }
  135.  
  136. void Kvadrat::Angles()
  137. {
  138.         Alpha = Beta = Gamma = Delta = 90.0;
  139. }
  140.  
  141. void Kvadrat::Ploshad()
  142. {
  143.         S = A*A;
  144. }
  145.  
  146. int main()
  147. {
  148.         setlocale(LC_ALL,"rus");
  149.         Kvadrat obj;
  150.         obj.Init();
  151.         obj.Storony();
  152.         obj.Diagonal();
  153.         obj.Angles();
  154.         obj.Perimetr();
  155.         obj.Ploshad();
  156.         obj.PrintElements();
  157.         return 0;
  158. }
  159.  

Share with your friends:

Распечатать