figures.cpp 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. // figures.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
  2. //
  3. #pragma once
  4. #include <iostream>
  5. #include "Triangle.h"
  6. #include "Rectangle.h"
  7. #include "polygon.h"
  8. #include "circle.h"
  9. #include "elipse.h"
  10. using namespace std;
  11. void chck_trinagle();
  12. void chck_rectangle();
  13. void chck_polygon();
  14. void chck_circle();
  15. void chck_elipse();
  16. void chck_polimorph();
  17. int main()
  18. {
  19. //chck_trinagle();
  20. //chck_rectangle();
  21. //chck_polygon();
  22. //chck_circle();
  23. //chck_elipse();
  24. chck_polimorph();
  25. }
  26. void chck_trinagle()
  27. {
  28. ////треугольник
  29. Triangle T;
  30. T = Triangle(Point(0,0),Point(0,5),Point(5,0));
  31. T.name();
  32. cout << T.calc_perimeter() << '\t' << T.calc_area() << endl;
  33. }
  34. void chck_rectangle()
  35. {
  36. //прямоугольник
  37. Rectangle R;
  38. R = Rectangle(0, 0, 0, 5, 5, 5, 5, 0);
  39. R.name();
  40. cout << R.calc_perimeter() << '\t' << R.calc_area() << endl;
  41. }
  42. void chck_polygon()
  43. {
  44. vector <int> A;
  45. A.push_back(0);
  46. A.push_back(0);
  47. A.push_back(5);
  48. A.push_back(0);
  49. A.push_back(5);
  50. A.push_back(5);
  51. A.push_back(0);
  52. A.push_back(5);
  53. Polygon p;
  54. p = Polygon(A);
  55. p.name();
  56. cout << p.calc_area() << "\t" << p.calc_perimeter() << endl;
  57. }
  58. void chck_circle()
  59. {
  60. Point c = Point(0, 0);
  61. int radius = 5;
  62. circle c1, c2;
  63. c1 = circle(c, radius);
  64. c2 = circle(0, 0, radius);
  65. c1.name();
  66. c2.name();
  67. cout << "c1 \t" << c1.calc_area() << '\t' << c1.calc_perimeter() << endl;
  68. cout << "c2 \t" << c2.calc_area() << '\t' << c2.calc_perimeter() << endl;
  69. }
  70. void chck_elipse()
  71. {
  72. Point c = Point(0, 0);
  73. int a = 10, b = 20;
  74. elipse el1,el2;
  75. el1 = elipse(c, a, b);
  76. el2 = elipse(0,0, a, b);
  77. el1.name();
  78. el2.name();
  79. cout << "el1 \t" << el1.calc_area() << '\t' << el1.calc_perimeter() << endl;
  80. cout << "el2 \t" << el2.calc_area() << '\t' << el2.calc_perimeter() << endl;
  81. }
  82. void chck_polimorph()
  83. {
  84. vector <Geometry_figure*> figures;
  85. figures.push_back(new Triangle(3, 4, 5));
  86. figures.push_back(new circle(0, 0, 5));
  87. figures.push_back(new Rectangle(2, 5));
  88. figures.push_back(new elipse(0, 0, 4, 5));
  89. vector <int> A;
  90. A.push_back(0);
  91. A.push_back(0);
  92. A.push_back(5);
  93. A.push_back(0);
  94. A.push_back(5);
  95. A.push_back(5);
  96. A.push_back(0);
  97. A.push_back(5);
  98. figures.push_back(new Polygon(A));
  99. for (int i = 0; i < figures.size(); i++) {
  100. figures[i]->name();
  101. cout << "P=" << figures[i]->calc_area() << "\t S=" << figures[i]->calc_perimeter() << endl;
  102. }
  103. }