Advertisement
IvanOseledko

Homework36

Jul 6th, 2024 (edited)
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.80 KB | None | 0 0
  1. using System;
  2.  
  3. namespace Homework36
  4. {
  5.     class Program
  6.     {
  7.         static void Main()
  8.         {
  9.             const string CommandUseAddDossier = "1";
  10.             const string CommandUseDeleteDossier = "2";
  11.             const string CommandUsePrintAllDossiers = "3";
  12.             const string CommandUseExit = "4";
  13.  
  14.             string userInput;
  15.             bool isOpen = true;
  16.  
  17.             Dictionary<string, List<string>> dossiers = new Dictionary<string, List<string>>();
  18.  
  19.             while (isOpen)
  20.             {
  21.                 Console.WriteLine($"{CommandUseAddDossier} - Добавить досье сотрудника.\n{CommandUseDeleteDossier} - Удалить досье сотрудника.\n{CommandUsePrintAllDossiers} - Вывести досье всех сотрудников.\n{CommandUseExit} - Выйти из программы.\n");
  22.  
  23.                 Console.Write("Выберите операцию: ");
  24.  
  25.                 userInput = Console.ReadLine();
  26.  
  27.                 Console.Clear();
  28.  
  29.                 switch (userInput)
  30.                 {
  31.                     case CommandUseAddDossier:
  32.                         AddEmployeeDossier(dossiers);
  33.                         break;
  34.  
  35.                     case CommandUseDeleteDossier:
  36.                         DeleteEmployeeDossier(dossiers);
  37.                         break;
  38.  
  39.                     case CommandUsePrintAllDossiers:
  40.                         PrintAllDossiers(dossiers);
  41.                         break;
  42.  
  43.                     case CommandUseExit:
  44.                         isOpen = false;
  45.                         break;
  46.  
  47.                     default:
  48.                         Console.Write("Неизвестная команда. Нажмите любую клавишу для продолжения...");
  49.                         break;
  50.                 }
  51.  
  52.                 Console.ReadKey();
  53.                 Console.Clear();
  54.             }
  55.         }
  56.  
  57.         static void AddEmployeeDossier(Dictionary<string, List<string>> dossiers)
  58.         {
  59.             Console.Write("Введите полное имя сотрудника: ");
  60.             string fullName = Console.ReadLine();
  61.  
  62.             Console.Write("Введите должность сотрудника: ");
  63.             string position = Console.ReadLine();
  64.  
  65.             if (dossiers.ContainsKey(position) == false)
  66.             {
  67.                 dossiers[position] = new List<string>();
  68.             }
  69.  
  70.             dossiers[position].Add(fullName);
  71.         }
  72.  
  73.         static void DeleteEmployeeDossier(Dictionary<string, List<string>> dossiers)
  74.         {
  75.             PrintAllDossiers(dossiers);
  76.            
  77.             Console.Write("\nВведите должность сотрудника, досье которого хотите удалить: ");
  78.             string position = Console.ReadLine();
  79.  
  80.             Console.Write("Введите номер сотрудника, досье которого хотите удалить: ");
  81.             int employeeIndex = GetEmployeesNumber() - 1;
  82.  
  83.             if (dossiers.ContainsKey(position))
  84.             {
  85.                 List<string> employees = dossiers[position];
  86.  
  87.                 if (employeeIndex >= 0 && employeeIndex < employees.Count)
  88.                 {
  89.                     employees.RemoveAt(employeeIndex);
  90.  
  91.                     if (employees.Count == 0)
  92.                     {
  93.                         dossiers.Remove(position);
  94.  
  95.                         Console.WriteLine("\nДолжность удалена.");
  96.                     }
  97.  
  98.                     Console.WriteLine("Сотрудник удалён.");
  99.                 }
  100.                 else
  101.                 {
  102.                     Console.WriteLine("Сотрудник не найден.");
  103.                 }
  104.             }
  105.             else
  106.             {
  107.                 Console.WriteLine("Должность не найдена.");
  108.             }
  109.         }
  110.  
  111.         static void PrintAllDossiers(Dictionary<string, List<string>> dossiers)
  112.         {
  113.             foreach (var position in dossiers)
  114.             {
  115.                 Console.Write($"\nДолжность: {position.Key}.\n");
  116.  
  117.                 Console.Write($"Сотрудники должности '{position.Key}':\n\n");
  118.  
  119.                 for (int i = 0; i < position.Value.Count; i++)
  120.                 {
  121.                     Console.WriteLine($"{i + 1} - {position.Value[i]}");
  122.                 }
  123.             }
  124.         }
  125.  
  126.         static int GetEmployeesNumber()
  127.         {
  128.             int userNumber;
  129.  
  130.             while (!int.TryParse(Console.ReadLine(), out userNumber))
  131.             {
  132.                 Console.Write("Неверный формат введенных данных. Введите целое число: ");
  133.             }
  134.  
  135.             return userNumber;
  136.         }
  137.     }
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement