Advertisement
Bennis1

Untitled

Oct 23rd, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. class tochka {
  7. public:
  8. string name;
  9. double A_x;
  10. double A_y;
  11. tochka() {
  12. name = "Точка";
  13. A_x =rand()%(100+100+1)+(-100);
  14. A_y =rand() % (100 + 100 + 1)+(-100);
  15. }
  16. virtual void print() {
  17. cout « "Точка\n" « "Координаты: (" « A_x « ";" « A_y « ")\n\n";
  18. }
  19. };
  20.  
  21. class otrezok : public tochka {
  22. public:
  23. double B_x;
  24. double B_y;
  25. otrezok() : tochka() {
  26. name = "Отрезок";
  27. B_x = A_x + (rand() % (100 + 100 + 1)+ (- 100));
  28. B_y = A_y;
  29. }
  30. virtual void print() {
  31. cout « "Отрезок\n" « "Координаты: (" « A_x « ";" « A_y « "),(" « B_x « ";" « B_y « ")\n\n";
  32. }
  33. };
  34.  
  35. class square : public otrezok {
  36. public:
  37. double C_x;
  38. double C_y;
  39. double D_x;
  40. double D_y;
  41. square() : otrezok() {
  42. name = "Квадрат";
  43. C_x = B_x;
  44. C_y = B_y + (B_x - A_x);
  45. D_x = A_x;
  46. D_y = A_y + (B_x - A_x);
  47. }
  48. virtual void print() {
  49. cout « "Квадрат\n" « "Координаты: (" « A_x « ";" « A_y « "),(" « B_x « ";" « B_y « "),(" « C_x « ";" « C_y « "),(" « D_x « ";" « D_y « ")\n\n";
  50. }
  51.  
  52. };
  53.  
  54. class circle : public tochka{
  55. public:
  56. double r;
  57. circle() : tochka(){
  58. name = "Окружность";
  59. r = rand() % (50 + 50 + 1)+ (- 50);
  60. }
  61. virtual void print() {
  62. cout « "Окружность\n" « "Координаты центра: (" « A_x « ";" « A_y « ")\n" « "Радиус: " « r « "\n\n";
  63. }
  64. };
  65.  
  66. void create(vector < tochka* > &vec) {
  67. for (int i = 0; i < 8; i++) {
  68. tochka* a = new tochka;
  69. otrezok* b = new otrezok;
  70. square* c = new square;
  71. circle* d = new circle;
  72. int j = rand() % (4 - 1 + 1) + 1;
  73. switch (j)
  74. {
  75. case 1:
  76. vec.push_back(a);
  77. break;
  78.  
  79. case 2:
  80. vec.push_back(b);
  81. break;
  82.  
  83. case 3:
  84. vec.push_back(c);
  85. break;
  86.  
  87. case 4:
  88. vec.push_back(d);
  89. break;
  90.  
  91. default:
  92. break;
  93. }
  94. }
  95. }
  96.  
  97. void out(vector < tochka* > &vec) {
  98. for (size_t i = 0; i < vec.size(); i++) {
  99. vec[i]->print();
  100. }
  101. }
  102.  
  103. int main()
  104. {
  105. setlocale(LC_ALL, "ru");
  106. vector < tochka* > vec;
  107. create(vec);
  108. out(vec);
  109. vec.clear();
  110. return 0;
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement