Advertisement
AziLif

Кадровый учет продвинутый

May 13th, 2025 (edited)
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.94 KB | None | 0 0
  1. class Program
  2. {
  3.     static void Main(string[] args)
  4.     {
  5.         Dictionary<string, List<string>> dossiers = new();
  6.  
  7.         const string CommandAddDossier = "1";
  8.         const string CommandDeleteDossier = "2";
  9.         const string CommandShowAllDossier = "3";
  10.         const string CommandExit = "4";
  11.  
  12.         bool isWork = true;
  13.  
  14.         Console.WriteLine($"Здравсвуйте! Это программа, которая позволяет работать с кадрами. Что может программа:" +
  15.                           $"\n{CommandAddDossier} - Добавить досье человека в общий список." +
  16.                           $"\n{CommandDeleteDossier} - Удалить досье человека из списка(необходимо указать его номер)." +
  17.                           $"\n{CommandShowAllDossier} - Показать всё досье." +
  18.                           $"\n{CommandExit} - Выйти из программы.");
  19.  
  20.         while (isWork)
  21.         {
  22.             Console.WriteLine("Введите номер действия:");
  23.  
  24.             string userInput = Console.ReadLine();
  25.  
  26.             switch (userInput)
  27.             {
  28.                 case CommandAddDossier:
  29.                     AddDossier(dossiers);
  30.                     break;
  31.  
  32.                 case CommandDeleteDossier:
  33.                     DeleteDossier(dossiers);
  34.                     break;
  35.  
  36.                 case CommandShowAllDossier:
  37.                     ShowWorkerProfile(dossiers);
  38.                     break;
  39.  
  40.                 case CommandExit:
  41.                     isWork = false;
  42.                     Console.WriteLine("Спасибо, что воспользовались нашей программой");
  43.                     break;
  44.  
  45.                 default:
  46.                     Console.WriteLine("Будтье пожалуйста внимательнее. Вы ошиблись при написании.");
  47.                     break;
  48.             }
  49.         }
  50.     }
  51.  
  52.     static void AddDossier(Dictionary<string, List<string>> dossiers)
  53.     {
  54.         Console.WriteLine("Укажите должность и Ф.И.О.: ");
  55.  
  56.         string userInputJobTitle = Console.ReadLine();
  57.         string userInputFullName = Console.ReadLine();
  58.  
  59.         List<string> names;
  60.  
  61.         if (dossiers.TryGetValue(userInputJobTitle, out names))
  62.         {
  63.             names.Add(userInputFullName);
  64.         }
  65.         else
  66.         {
  67.             dossiers.Add(userInputJobTitle, names = new List<string> { userInputFullName });
  68.         }
  69.  
  70.         if (dossiers.ContainsKey(userInputJobTitle) == false && dossiers.ContainsValue(names) == false)
  71.         {
  72.             Console.WriteLine("Что-то произошло не так...");
  73.         }
  74.     }
  75.  
  76.     static void ShowWorkerProfile(Dictionary<string, List<string>> dossiersFull)
  77.     {
  78.         if (dossiersFull.Count == 0)
  79.         {
  80.             Console.WriteLine("Данные отсутствуют!");
  81.         }
  82.  
  83.         foreach (var dossier in dossiersFull)
  84.         {
  85.             foreach (var name in dossier.Value)
  86.             {
  87.                 Console.WriteLine($"Ф.И.О. - {name}, должность - {dossier.Key}");
  88.             }
  89.         }
  90.     }
  91.  
  92.     static void DeleteDossier(Dictionary<string, List<string>> dossiers)
  93.     {
  94.         Console.WriteLine("Введите должность работника для удаления:");
  95.  
  96.         string userInput = Console.ReadLine();
  97.  
  98.         List<string> names;
  99.  
  100.         if (dossiers.ContainsKey(userInput))
  101.         {
  102.             if (dossiers.TryGetValue(userInput, out names))
  103.             {
  104.                 dossiers.Remove(userInput);
  105.             }
  106.  
  107.             dossiers.Remove(userInput);
  108.  
  109.             Console.WriteLine($"{userInput} - удален.");
  110.         }
  111.         else
  112.         {
  113.             Console.WriteLine("Такого работника нет.");
  114.         }
  115.     }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement