Advertisement
Juzuu

manager.cpp

Jan 17th, 2021
1,020
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 9.69 KB | None | 0 0
  1. #include "Manager.h"
  2. #include <iostream>
  3. #include <cstring>
  4.  
  5.  
  6. namespace MANAGER{
  7.     Manager::Manager(){}
  8.  
  9.     void Manager::Display (List <Server> sev, List <Desktop> des, List <Raytracing> ray, List <Directx> dir)
  10.     {
  11.         int number, choice = -1;
  12.  
  13.         Server server;
  14.         Desktop desktop;
  15.         Raytracing raytracing;
  16.         Directx directx;
  17.  
  18.         Menu ();
  19.         std::cout << "Введите выбранный номер: ";
  20.         std::cin >> number; // Переменная выбора меню
  21.  
  22.         while (number != 9)
  23.         {
  24.             if (number == 1)                                                       // Создание элемента списка
  25.             {
  26.                 ClassChoice ();
  27.                 std::cout << "Выберите заполняемый объект: ";
  28.                 std::cin >> choice; // Переменная выбора класса
  29.                 std::cout << std::endl;
  30.  
  31.                 if (choice == 1)
  32.                 {
  33.                     server.SetAll ();
  34.                     sev.push_back (server);
  35.                 }
  36.  
  37.                 if (choice == 2)
  38.                 {
  39.                     desktop.SetAll ();
  40.                     des.push_back (desktop);
  41.                 }
  42.  
  43.                 if (choice == 3)
  44.                 {
  45.                     directx.SetAll ();
  46.                     dir.push_back (directx);
  47.                 }
  48.  
  49.                 if (choice == 4)
  50.                 {
  51.                     raytracing.SetAll ();
  52.                     ray.push_back (raytracing);
  53.                 }
  54.             }
  55.  
  56.             if (number == 2)                                                        /// Очистка списка
  57.             {
  58.                 if (choice == -1)
  59.                 {
  60.                     std::cout << "Список не создан" << std::endl << std::endl;
  61.                 }
  62.                 else
  63.                 {
  64.                     sev.ClearList ();
  65.                     des.ClearList ();
  66.                     ray.ClearList ();
  67.                     dir.ClearList ();
  68.                     std::cout << "Список очищен" << std::endl << std::endl;
  69.                 }
  70.             }
  71.  
  72.         if (number == 3)                                                       /// Вывод списка на экран
  73.         {
  74.             if ((sev.GetSize () == 0) && (des.GetSize () == 0) && (ray.GetSize () == 0) && (dir.GetSize () == 0))
  75.             {
  76.                 std::cout << "Список пуст" << std::endl << std::endl;
  77.             }
  78.             else
  79.             {
  80.                 std::cout << "Список: " << std::endl;
  81.                 sev.GetList ();
  82.                 des.GetList ();
  83.                 ray.GetList ();
  84.                 dir.GetList ();
  85.             }
  86.         }
  87.  
  88.         if (number == 4)                                                            /// Сохранение списка в файл
  89.         {
  90.  
  91.             if (choice == -1)
  92.             {
  93.                 std::cout << "Список не создан" << std::endl << std::endl;
  94.             }
  95.             else
  96.             {
  97.                 char Namef[50];
  98.                 char t1[50]; char t2[50]; char t3[50]; char t4[50];
  99.                 char Name1[] = "1.txt";
  100.                 char Name2[] = "2.txt";
  101.                 char Name3[] = "3.txt";
  102.                 char Name4[] = "4.txt";
  103.  
  104.                 std::cout << "Введите имя файла(без разрешения): ";
  105.                 std::cin >> Namef;
  106.  
  107.                 strcpy(t1,Namef);
  108.                 strcpy(t2,Namef);
  109.                 strcpy(t3,Namef);
  110.                 strcpy(t4,Namef);
  111.  
  112.                 sev.SaveList (sev, strcat(t1,Name1));
  113.                 des.SaveList (des, strcat(t2,Name2));
  114.                 ray.SaveList (ray, strcat(t3,Name3));
  115.                 dir.SaveList (dir, strcat(t4,Name4));
  116.  
  117.                 std::cout << "Список сохранен" << std::endl << std::endl;
  118.             }
  119.         }
  120.  
  121.             if (number == 5)                                                          // Загрузка списка из файла
  122.             {
  123.  
  124.                 char Namef[50];
  125.                 char t1[50]; char t2[50]; char t3[50]; char t4[50];
  126.                 char Name1[] = "1.txt";
  127.                 char Name2[] = "2.txt";
  128.                 char Name3[] = "3.txt";
  129.                 char Name4[] = "4.txt";
  130.  
  131.                 std::cout << "Введите имя файла(без разрешения): ";
  132.                 std::cin >> Namef;
  133.  
  134.                 strcpy(t1,Namef);
  135.                 strcpy(t2,Namef);
  136.                 strcpy(t3,Namef);
  137.                 strcpy(t4,Namef);
  138.  
  139.                 sev.LoadOneList (sev, strcat(t1,Name1));
  140.                 des.LoadOneList (des, strcat(t2,Name2));
  141.                 ray.LoadOneList (ray, strcat(t3,Name3));
  142.                 dir.LoadOneList (dir, strcat(t4,Name4));
  143.  
  144.  
  145.                 }
  146.  
  147.             if (number == 6)                                                                        // Найти список
  148.             {
  149.                 if ((sev.GetSize () == 0) && (des.GetSize () == 0) && (ray.GetSize () == 0) && (dir.GetSize () == 0))
  150.                 {
  151.                     std::cout << "Список пуст" << std::endl << std::endl;
  152.                 }
  153.                 else
  154.                 {
  155.                     int num;
  156.  
  157.                     std::cout << "Введите номер экземпляра: ";
  158.                     std::cin >> num;
  159.  
  160.                     if ((sev.GetSize () >= num) && (num > 0))
  161.                         sev.FindList (num);
  162.  
  163.                     if ((sev.GetSize () < num) && (des.GetSize () + sev.GetSize () >= num))
  164.                         des.FindList (abs (sev.GetSize () - num));
  165.  
  166.                     if ((des.GetSize () + sev.GetSize () < num) && (des.GetSize () + sev.GetSize () + ray.GetSize () >= num))
  167.                         ray.FindList (abs (des.GetSize () + sev.GetSize () - num));
  168.  
  169.                     if ((des.GetSize () + sev.GetSize () + ray.GetSize () < num) && (des.GetSize () + sev.GetSize () + ray.GetSize () + dir.GetSize () >= num))
  170.                         dir.FindList (abs (des.GetSize () + sev.GetSize () + ray.GetSize () - num));
  171.  
  172.                     if ((num <= 0) || (des.GetSize () + sev.GetSize () + ray.GetSize () + dir.GetSize () < num))
  173.                         std::cout << "Такого списка нет" << std::endl << std::endl;
  174.                 }
  175.             }
  176.  
  177.             if (number == 7)                                                                       // Удаление экземпляра
  178.             {
  179.                 ClassChoice ();
  180.  
  181.                 std::cout << "Введите номер класса, в котором нужно удалить последний список: ";
  182.                 std::cin >> choice;
  183.                 std::cout << std::endl;
  184.  
  185.                 if (choice == 1)
  186.                 {
  187.                     if (sev.GetSize () != 0)
  188.                         sev.pop_back ();
  189.                     else
  190.                         std::cout << "Список пуст" << std::endl << std::endl;
  191.                 }
  192.                 if (choice == 2)
  193.                 {
  194.                     if (des.GetSize () != 0)
  195.                         des.pop_back ();
  196.                     else
  197.                         std::cout << "Список пуст" << std::endl << std::endl;
  198.                 }
  199.                 if (choice == 3)
  200.                 {
  201.                     if (ray.GetSize () != 0)
  202.                         ray.pop_back ();
  203.                     else
  204.                         std::cout << "Список пуст" << std::endl << std::endl;
  205.                 }
  206.                 if (choice == 4)
  207.                 {
  208.                     if (dir.GetSize () != 0)
  209.                         dir.pop_back ();
  210.                     else
  211.                         std::cout << "Список пуст" << std::endl << std::endl;
  212.                 }
  213.             }
  214.  
  215.             if (number == 8)                                                        // Очистка экрана консоли
  216.                 system ("cls");
  217.  
  218.             if ((number < 1) || (number > 9))                                       // Выход за границы меню
  219.                 std::cout << "Введите число от 1 до 9" << std::endl << std::endl;
  220.  
  221.             Menu ();
  222.             std::cout << "Введите выбраный номер: ";
  223.             std::cin >> number;
  224.         }
  225. }
  226.  
  227.     void Manager::Menu()                                                                                       // Menu
  228.     {
  229.         std::cout << "Меню: " << std::endl;
  230.         std::cout << "1. Создать элемент списка" << std::endl;
  231.         std::cout << "2. Очистить список" << std::endl;
  232.         std::cout << "3. Вывести список на экран" << std::endl;
  233.         std::cout << "4. Сохранить список в файл" << std::endl;
  234.         std::cout << "5. Загрузить список из файла" << std::endl;
  235.         std::cout << "6. Найти список" << std::endl;
  236.         std::cout << "7. Удалить экземпляр" << std::endl;
  237.         std::cout << "8. Очистить экран консоли" << std::endl;
  238.         std::cout << "9. Завершить работу программы" << std::endl << std::endl;
  239.     }
  240.  
  241.     void Manager::ClassChoice ()
  242.     {
  243.         std::cout << "1. Серверный" << std::endl;
  244.         std::cout << "2. Домашний" << std::endl;
  245.         std::cout << "3. DirectX" << std::endl;
  246.         std::cout << "4. RayTracing" << std::endl << std::endl;
  247.     }
  248.  
  249. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement