Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Manager.h"
- #include <iostream>
- #include <cstring>
- namespace MANAGER{
- Manager::Manager(){}
- void Manager::Display (List <Server> sev, List <Desktop> des, List <Raytracing> ray, List <Directx> dir)
- {
- int number, choice = -1;
- Server server;
- Desktop desktop;
- Raytracing raytracing;
- Directx directx;
- Menu ();
- std::cout << "Введите выбранный номер: ";
- std::cin >> number; // Переменная выбора меню
- while (number != 9)
- {
- if (number == 1) // Создание элемента списка
- {
- ClassChoice ();
- std::cout << "Выберите заполняемый объект: ";
- std::cin >> choice; // Переменная выбора класса
- std::cout << std::endl;
- if (choice == 1)
- {
- server.SetAll ();
- sev.push_back (server);
- }
- if (choice == 2)
- {
- desktop.SetAll ();
- des.push_back (desktop);
- }
- if (choice == 3)
- {
- directx.SetAll ();
- dir.push_back (directx);
- }
- if (choice == 4)
- {
- raytracing.SetAll ();
- ray.push_back (raytracing);
- }
- }
- if (number == 2) /// Очистка списка
- {
- if (choice == -1)
- {
- std::cout << "Список не создан" << std::endl << std::endl;
- }
- else
- {
- sev.ClearList ();
- des.ClearList ();
- ray.ClearList ();
- dir.ClearList ();
- std::cout << "Список очищен" << std::endl << std::endl;
- }
- }
- if (number == 3) /// Вывод списка на экран
- {
- if ((sev.GetSize () == 0) && (des.GetSize () == 0) && (ray.GetSize () == 0) && (dir.GetSize () == 0))
- {
- std::cout << "Список пуст" << std::endl << std::endl;
- }
- else
- {
- std::cout << "Список: " << std::endl;
- sev.GetList ();
- des.GetList ();
- ray.GetList ();
- dir.GetList ();
- }
- }
- if (number == 4) /// Сохранение списка в файл
- {
- if (choice == -1)
- {
- std::cout << "Список не создан" << std::endl << std::endl;
- }
- else
- {
- char Namef[50];
- char t1[50]; char t2[50]; char t3[50]; char t4[50];
- char Name1[] = "1.txt";
- char Name2[] = "2.txt";
- char Name3[] = "3.txt";
- char Name4[] = "4.txt";
- std::cout << "Введите имя файла(без разрешения): ";
- std::cin >> Namef;
- strcpy(t1,Namef);
- strcpy(t2,Namef);
- strcpy(t3,Namef);
- strcpy(t4,Namef);
- sev.SaveList (sev, strcat(t1,Name1));
- des.SaveList (des, strcat(t2,Name2));
- ray.SaveList (ray, strcat(t3,Name3));
- dir.SaveList (dir, strcat(t4,Name4));
- std::cout << "Список сохранен" << std::endl << std::endl;
- }
- }
- if (number == 5) // Загрузка списка из файла
- {
- char Namef[50];
- char t1[50]; char t2[50]; char t3[50]; char t4[50];
- char Name1[] = "1.txt";
- char Name2[] = "2.txt";
- char Name3[] = "3.txt";
- char Name4[] = "4.txt";
- std::cout << "Введите имя файла(без разрешения): ";
- std::cin >> Namef;
- strcpy(t1,Namef);
- strcpy(t2,Namef);
- strcpy(t3,Namef);
- strcpy(t4,Namef);
- sev.LoadOneList (sev, strcat(t1,Name1));
- des.LoadOneList (des, strcat(t2,Name2));
- ray.LoadOneList (ray, strcat(t3,Name3));
- dir.LoadOneList (dir, strcat(t4,Name4));
- }
- if (number == 6) // Найти список
- {
- if ((sev.GetSize () == 0) && (des.GetSize () == 0) && (ray.GetSize () == 0) && (dir.GetSize () == 0))
- {
- std::cout << "Список пуст" << std::endl << std::endl;
- }
- else
- {
- int num;
- std::cout << "Введите номер экземпляра: ";
- std::cin >> num;
- if ((sev.GetSize () >= num) && (num > 0))
- sev.FindList (num);
- if ((sev.GetSize () < num) && (des.GetSize () + sev.GetSize () >= num))
- des.FindList (abs (sev.GetSize () - num));
- if ((des.GetSize () + sev.GetSize () < num) && (des.GetSize () + sev.GetSize () + ray.GetSize () >= num))
- ray.FindList (abs (des.GetSize () + sev.GetSize () - num));
- if ((des.GetSize () + sev.GetSize () + ray.GetSize () < num) && (des.GetSize () + sev.GetSize () + ray.GetSize () + dir.GetSize () >= num))
- dir.FindList (abs (des.GetSize () + sev.GetSize () + ray.GetSize () - num));
- if ((num <= 0) || (des.GetSize () + sev.GetSize () + ray.GetSize () + dir.GetSize () < num))
- std::cout << "Такого списка нет" << std::endl << std::endl;
- }
- }
- if (number == 7) // Удаление экземпляра
- {
- ClassChoice ();
- std::cout << "Введите номер класса, в котором нужно удалить последний список: ";
- std::cin >> choice;
- std::cout << std::endl;
- if (choice == 1)
- {
- if (sev.GetSize () != 0)
- sev.pop_back ();
- else
- std::cout << "Список пуст" << std::endl << std::endl;
- }
- if (choice == 2)
- {
- if (des.GetSize () != 0)
- des.pop_back ();
- else
- std::cout << "Список пуст" << std::endl << std::endl;
- }
- if (choice == 3)
- {
- if (ray.GetSize () != 0)
- ray.pop_back ();
- else
- std::cout << "Список пуст" << std::endl << std::endl;
- }
- if (choice == 4)
- {
- if (dir.GetSize () != 0)
- dir.pop_back ();
- else
- std::cout << "Список пуст" << std::endl << std::endl;
- }
- }
- if (number == 8) // Очистка экрана консоли
- system ("cls");
- if ((number < 1) || (number > 9)) // Выход за границы меню
- std::cout << "Введите число от 1 до 9" << std::endl << std::endl;
- Menu ();
- std::cout << "Введите выбраный номер: ";
- std::cin >> number;
- }
- }
- void Manager::Menu() // Menu
- {
- std::cout << "Меню: " << std::endl;
- std::cout << "1. Создать элемент списка" << std::endl;
- std::cout << "2. Очистить список" << std::endl;
- std::cout << "3. Вывести список на экран" << std::endl;
- std::cout << "4. Сохранить список в файл" << std::endl;
- std::cout << "5. Загрузить список из файла" << std::endl;
- std::cout << "6. Найти список" << std::endl;
- std::cout << "7. Удалить экземпляр" << std::endl;
- std::cout << "8. Очистить экран консоли" << std::endl;
- std::cout << "9. Завершить работу программы" << std::endl << std::endl;
- }
- void Manager::ClassChoice ()
- {
- std::cout << "1. Серверный" << std::endl;
- std::cout << "2. Домашний" << std::endl;
- std::cout << "3. DirectX" << std::endl;
- std::cout << "4. RayTracing" << std::endl << std::endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement