Advertisement
Khristina

Задача №5

Apr 18th, 2018
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.40 KB | None | 0 0
  1. // Номера элементов вводить от 0
  2. #include <iostream>
  3. #include <conio.h>
  4. #include <string>
  5. #include <cstring>
  6. #include <math.h>
  7. #include <cstdlib>
  8. #include <ctime>
  9. using namespace std;
  10.  
  11. class Vector
  12. {
  13. protected:
  14.     double x, y;
  15. public:
  16.     Vector(double a, double b)
  17.     {
  18.         set_x(a);
  19.         set_y(b);
  20.     }
  21.     void virtual set_x(double a)
  22.     {
  23.         x = a;
  24.     }
  25.     void virtual set_y(double b)
  26.     {
  27.         y = b;
  28.     }
  29.     void virtual show()
  30.     {
  31.         cout << "x=" << x << "\n" << "y=" << y << endl;
  32.     }
  33.  
  34.     ~Vector() {}
  35. };
  36.  
  37. class Vector1 : public Vector
  38. {
  39. protected:
  40.     int z;
  41. public:
  42.     Vector1(double a, double b, double c) : z(c), Vector(a, b) {}
  43.     void show()
  44.     {
  45.         cout << "x=" << x << "\n" << "y=" << y << "\n" << "z=" << z << endl;
  46.     }
  47. };
  48.  
  49. class Vector2 : public Vector1
  50. {
  51. private:
  52.     string str;
  53. public:
  54.     Vector2(double a, double b, double c, string str_) : str(str_), Vector1(a, b, c) {}
  55.  
  56.     void virtual show()
  57.     {
  58.         cout << "x=" << x << "\n" << "y=" << y << "\n" << "z=" << z << "\n" << "Имя вектора: " << str << endl;
  59.     }
  60.  
  61. };
  62.  
  63. int main()
  64. {
  65.     double a, b, c;
  66.     int n, k, m;
  67.     string str_;
  68.     setlocale(LC_ALL, "Rus");
  69.    
  70.     int q = 5;
  71.     Vector *arr[5];
  72.  
  73.     for (int i = 0; i<15; i++)
  74.     {
  75.         cout << "Наберите: 1 - создать объект \n 2 - вывести объект на экран \n 3 - удалить объект \n 4 - выйти из цикла \n 5 - вывести все объекты" << endl;
  76.         cin >> m;
  77.         if (m == 1)
  78.         {
  79.             cout << "Наберите: 1 - создать объект класса Vector \n 2 - создать объект класса Vector1 \n 3 - создать объект класса Vector2" << endl;
  80.             cin >> k;
  81.             if (k == 1)
  82.             {
  83.                 cout << "Наберите номер элемента, который хотите добавить: ";
  84.                 cin >> n;
  85.                 cout << "x= ";
  86.                 cin >> a;
  87.                 cout << "y= ";
  88.                 cin >> b;
  89.                 arr[n] = new Vector(a, b);
  90.             }
  91.             else if (k == 2)
  92.             {
  93.                 cout << "Наберите номер элемента, который хотите добавить: ";
  94.                 cin >> n;
  95.                 cout << "x= ";
  96.                 cin >> a;
  97.                 cout << "y= ";
  98.                 cin >> b;
  99.                 cout << "z= ";
  100.                 cin >> c;
  101.                 arr[n] = new Vector1(a, b, c);
  102.             }
  103.             else if (k == 3)
  104.             {
  105.                 cout << "Наберите номер элемента, который хотите добавить: ";
  106.                 cin >> n;
  107.                 cout << "x= ";
  108.                 cin >> a;
  109.                 cout << "y= ";
  110.                 cin >> b;
  111.                 cout << "z= ";
  112.                 cin >> c;
  113.                 cout << "Введите имя: ";
  114.                 cin >> str_;
  115.                 arr[n] = new Vector2(a, b, c, str_);
  116.             }
  117.  
  118.         }
  119.         else if (m == 2)
  120.         {
  121.             int s;
  122.             cout << "Наберите номер элемента, который хотите вывести на экран: " << endl;
  123.             cin >> s;
  124.             cout << "\n" << "Координаты вектора: " << endl;
  125.             arr[s]->show();
  126.         }
  127.         else if (m == 3)
  128.         {
  129.             int p;
  130.             cout << "Наберите номер элемента, который хотите удалить" << endl;
  131.             cin >> p;
  132.             delete arr[p];
  133.             for (int j = p; j<5; j++)
  134.             {
  135.                 if (j != 4)
  136.                 {
  137.                     arr[j] = arr[j + 1];
  138.                 }
  139.                 else if (j == 4)
  140.                 {
  141.                     arr[j] = arr[j];
  142.                 }
  143.             }
  144.             q--;
  145.         }
  146.         else if (m == 4)
  147.         {
  148.             break;
  149.         }
  150.         else if (m == 5)
  151.         {
  152.             for (int t = 0; t < q; t++)
  153.             {
  154.                 cout << "---------------------------------" << endl;
  155.                 arr[t]->show();
  156.             }
  157.         }
  158.     }
  159.     return 0;
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement