fork download
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <cstdlib>
  4. #include <vector>
  5. #include <ctime>
  6. #include "figures.h"
  7.  
  8. int main() {
  9. //создаём вектор указателей на фигуры и заполняем его случайными фигурами
  10. srand((unsigned int)time(NULL));
  11. const int nFigures = 10;
  12. std::vector<Figure *> figures (nFigures);
  13. for (int i = 0; i < nFigures; i++) {
  14. if (rand() % 2 == 0) {
  15. figures[i] = new Circle(Figure::Point(rand()%100, rand()%100), rand()%100+1, rand()%100);
  16. } else {
  17. //Создаём вектор из точек аля многоуольник
  18. std::vector<Figure::Point> vPolygon;
  19. int vertices = rand()%100;
  20. for (int j = 0; j < vertices; j++){
  21. vPolygon.push_back(Figure::Point(rand()%100,rand()%100));
  22. }
  23. //Замкнём ломаную
  24. vPolygon.push_back(Figure::Point(vPolygon[0].x,vPolygon[0].y));
  25. figures[i] = new Polygon(vPolygon, rand()%100);
  26. }
  27. }
  28.  
  29.  
  30. //найдём суммарную площадь всех фигур
  31. double sumPlace = 0.0;
  32. for (int i = 0; i < nFigures; i++) {
  33. sumPlace += figures[i]->place();
  34. }
  35. std::cout << std::fixed << std::setprecision(6) <<
  36. "Sum place = " << sumPlace << std::endl;
  37.  
  38. //найдём суммарный периметр всех фигур
  39. double sumPerimetr = 0.0;
  40. for (int i = 0; i < nFigures; i++) {
  41. sumPerimetr += figures[i]->perimetr();
  42. }
  43. std::cout << std::fixed << std::setprecision(6) <<
  44. "Sum Perimetr = " << sumPerimetr << std::endl;
  45.  
  46. //уничтожим все объекты (хотя при завершении программы память и так очистится)
  47. for (int i = 0; i < nFigures; i++) {
  48. delete figures[i];
  49. }
  50. /*
  51. Figure *f = new Circle(Figure::Point(100,100),50,1);
  52. std::cout << *f;
  53. */
  54.  
  55. /*
  56. Figure *f = new Triangle(Figure::Point(rand()%100,rand()%100),Figure::Point(rand()%100,rand()%100),Figure::Point(rand()%100,rand()%100),rand()%100);
  57. std::cout << *f;
  58. */
  59.  
  60.  
  61. /*
  62. //объявляем вектор из точек
  63. std::vector<Figure::Point> vPolygon;
  64. int vertices = rand()%100;
  65. for (int j = 0; j < vertices; j++){
  66. vPolygon.push_back(Figure::Point(rand()%100,rand()%100));
  67. }
  68. //Замкнём ломаную
  69. vPolygon.push_back(Figure::Point(vPolygon[0].x,vPolygon[0].y));
  70.  
  71. Figure *f = new Polygon(vPolygon, rand()%100);
  72. std::cout << *f;
  73. */
  74.  
  75.  
  76. system("PAUSE");
  77. return 0;
  78. }
  79.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:6:21: fatal error: figures.h: No such file or directory
 #include "figures.h"
                     ^
compilation terminated.
stdout
Standard output is empty