Advertisement
junniorrkaa

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

Apr 21st, 2025 (edited)
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.90 KB | Source Code | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace CSLight
  5. {
  6.     internal class Program
  7.     {
  8.         static void Main()
  9.         {
  10.             const string CommandAddEmployee = "1";
  11.             const string CommandShowInfo = "2";
  12.             const string CommandDeleteEmployee = "3";
  13.             const string CommandExit = "4";
  14.             const string CommandRestart = "5";
  15.  
  16.             Dictionary<string, List<string>> dossiers = new Dictionary<string, List<string>>();
  17.  
  18.             bool unfilledPostIsFind = false;
  19.             bool isWork = true;
  20.  
  21.             Console.CursorVisible = false;
  22.  
  23.             while (isWork)
  24.             {
  25.                 Console.WriteLine("Меню команд:");
  26.                 Console.SetCursorPosition(0, 2);
  27.                 Console.WriteLine(CommandAddEmployee + " - Добавить сотрудника");
  28.                 Console.WriteLine(CommandShowInfo + " - Вывести всю информацию о сотрудниках");
  29.                 Console.WriteLine(CommandDeleteEmployee + " - Удалить сотрудника");
  30.                 Console.WriteLine(CommandExit + " - Выход");
  31.                 Console.WriteLine(CommandRestart + " - Рестарт");
  32.                 Console.SetCursorPosition(0, 9);
  33.                 Console.Write("Введите команду: ");
  34.  
  35.                 switch (Console.ReadLine())
  36.                 {
  37.                     case CommandAddEmployee:
  38.                         FillEmployee(dossiers,ref unfilledPostIsFind);
  39.                         break;
  40.  
  41.                     case CommandShowInfo:
  42.                         ShowInfo(dossiers);
  43.                         break;
  44.  
  45.                     case CommandDeleteEmployee:
  46.                         DeleteEmployee(dossiers);
  47.                         break;
  48.  
  49.                     case CommandExit:
  50.                         isWork = false;
  51.                         break;
  52.  
  53.                     case CommandRestart:
  54.                         dossiers.Clear();
  55.                         break;
  56.  
  57.                     default:
  58.                         Console.WriteLine("\nОшибка. Введена неверная команда...");
  59.                         break;
  60.                 }
  61.  
  62.                 Console.ReadKey(true);
  63.                 Console.Clear();
  64.             }
  65.         }
  66.  
  67.         static void FillEmployee(Dictionary<string, List<string>> dossiers,ref bool unfilledPostIsFind)
  68.         {
  69.             string post;
  70.  
  71.             Console.Write("\nВведите должность: ");
  72.             post = Console.ReadLine();
  73.  
  74.             if (post == "")
  75.             {
  76.                 post = "Джуниор";
  77.  
  78.                 if (dossiers.ContainsKey(post) == false && unfilledPostIsFind == false)
  79.                 {
  80.                     unfilledPostIsFind = true;
  81.                     dossiers.Add(post, new List<string>());
  82.                 }
  83.             }
  84.  
  85.             if (dossiers.ContainsKey(post) == false)
  86.             {
  87.                 dossiers.Add(post, new List<string>());
  88.             }
  89.  
  90.             Console.Write("\nВведите ФИО: ");
  91.             dossiers[post].Add(Console.ReadLine());
  92.         }
  93.  
  94.         static void ShowInfo(Dictionary<string, List<string>> dossiers)
  95.         {
  96.             int sequenceNumber = 1;
  97.  
  98.             if (dossiers.Count == 0)
  99.             {
  100.                 Console.WriteLine("\nНа данный момент у вас нет сотрудников.");
  101.             }
  102.             else
  103.             {
  104.                 foreach (var dossier in dossiers)
  105.                 {
  106.                     Console.Write($"\n{sequenceNumber++}. {dossier.Key} - ");
  107.  
  108.                     foreach (var value in dossier.Value)
  109.                     {
  110.                         Console.Write($"|{value}|");
  111.                     }
  112.                 }
  113.             }
  114.         }
  115.  
  116.         static void DeleteEmployee(Dictionary<string, List<string>> dossiers)
  117.         {
  118.             string post;
  119.             string employee;
  120.  
  121.             Console.Write("\nВведите должность сотрудника: ");
  122.             post = Console.ReadLine();
  123.  
  124.             if (dossiers.ContainsKey(post))
  125.             {
  126.                 Console.Write("\nВведите ФИО сотрудника на удаление: ");
  127.                 employee = Console.ReadLine();
  128.  
  129.                 if (dossiers[post].Contains(employee) == false)
  130.                 {
  131.                     Console.WriteLine("\nТакого сотрудника нет.");
  132.                 }
  133.                 else
  134.                 {
  135.                     dossiers[post].Remove(employee);
  136.                 }
  137.  
  138.                 if (dossiers[post].Count == 0)
  139.                 {
  140.                     dossiers.Remove(post);
  141.                 }
  142.             }
  143.             else
  144.             {
  145.                 Console.WriteLine("\nТакой должности нет.");
  146.             }
  147.         }
  148.     }
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement