Advertisement
SaNik74

Personal_accounting_number_two

Jun 25th, 2024 (edited)
538
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.27 KB | None | 0 0
  1. namespace Personal_accounting_number_two
  2. {
  3.     internal class Program
  4.     {
  5.         static void Main(string[] args)
  6.         {
  7.             const string AddDossierCommand = "Add Dossier";
  8.             const string OutputAllDossierCommand = "Output all";
  9.             const string DeleteDossierCommand = "Delete";
  10.             const string ExitCommand = "Exit";
  11.  
  12.             Dictionary<string, List<string>> dossiers = new Dictionary<string, List<string>>();
  13.  
  14.             bool isWorking = true;
  15.  
  16.             while (isWorking)
  17.             {
  18.                 string userInput;
  19.  
  20.                 Console.WriteLine($"Введите: \n{AddDossierCommand} для добавления досье.\n{OutputAllDossierCommand} для вывода всех досье." +
  21.                     $"\n{DeleteDossierCommand} для удаления досье по ФИО.\n{ExitCommand} для выхода из программы.");
  22.                 userInput = Console.ReadLine();
  23.  
  24.                 switch (userInput)
  25.                 {
  26.                     case AddDossierCommand:
  27.                         AddDossier(dossiers);
  28.                         break;
  29.  
  30.                     case OutputAllDossierCommand:
  31.                         OutputDossier(dossiers);
  32.                         break;
  33.  
  34.                     case DeleteDossierCommand:
  35.                         DeleteDossier(dossiers);
  36.                         break;
  37.                     case ExitCommand:
  38.                         Console.WriteLine("Вы вышли из программы.");
  39.                         isWorking = false;
  40.                         break;
  41.  
  42.                     default:
  43.                         Console.WriteLine("Неизвестная программа.");
  44.                         break;
  45.                 }
  46.  
  47.                 Console.ReadKey();
  48.                 Console.Clear();
  49.             }
  50.         }
  51.  
  52.         static void AddDossier(Dictionary<string, List<string>> dossiers)
  53.         {
  54.             string fullName;
  55.             string jobTitle;
  56.  
  57.             Console.Write("Введите ФИО: ");
  58.             fullName = Console.ReadLine();
  59.  
  60.             Console.WriteLine();
  61.  
  62.             Console.Write("Введите должность: ");
  63.             jobTitle = Console.ReadLine();
  64.  
  65.             if (dossiers.ContainsKey(jobTitle))
  66.             {
  67.                 dossiers[jobTitle].Add(fullName);
  68.             }
  69.             else
  70.             {
  71.                 List<string> name = new List<string> { fullName };
  72.                 dossiers.Add(jobTitle, name);
  73.             }
  74.         }
  75.  
  76.         static void OutputDossier(Dictionary<string, List<string>> dossiers)
  77.         {
  78.             for (int i = 0; i < dossiers.Count; i++)
  79.             {
  80.                 string jobTitle = dossiers.Keys.ElementAt(i);
  81.                 Console.Write("Должность - ");
  82.                 Console.WriteLine(jobTitle);
  83.                 Console.WriteLine("Сотрудники: ");
  84.  
  85.                 foreach (var name in dossiers.Values.ElementAt(i))
  86.                 {
  87.                     Console.Write($"{name} || ");
  88.                 }
  89.  
  90.                 Console.WriteLine();
  91.             }
  92.         }
  93.  
  94.         static void DeleteDossier(Dictionary<string, List<string>> dossiers)
  95.         {
  96.             if (dossiers.Count == 0)
  97.             {
  98.                 Console.WriteLine("Список пуст.");
  99.                 return;
  100.             }
  101.  
  102.             Console.WriteLine("Введите должность сотрудника: ");
  103.  
  104.             string jobTitle = Console.ReadLine();
  105.  
  106.             Console.Write("Введите ФИО для удаления досье:");
  107.  
  108.             string fullName = Console.ReadLine();
  109.  
  110.             for (int i = 0; i < dossiers.Count; i++)
  111.             {
  112.                 jobTitle = dossiers.Keys.ElementAt(i);
  113.  
  114.                 foreach (var name in dossiers[jobTitle])
  115.                 {
  116.                     if (name == fullName)
  117.                     {
  118.                         dossiers[jobTitle].Remove(name);
  119.  
  120.                         if (dossiers[jobTitle].Count == 0)
  121.                         {
  122.                             dossiers.Remove(jobTitle);
  123.                         }
  124.  
  125.                         return;
  126.                     }
  127.                 }
  128.             }
  129.         }
  130.     }
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement