Advertisement
NikaBang

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

Oct 25th, 2024 (edited)
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.06 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. internal class Program
  5. {
  6.     static void Main(string[] args)
  7.     {
  8.         const string CommandShowDossiers = "1";
  9.         const string CommandAddDossier = "2";
  10.         const string CommandDeleteDossier = "3";
  11.         const string CommandExit = "4";
  12.  
  13.         string userInput;
  14.         bool isProgram = true;
  15.  
  16.         Dictionary<string, List<string>> dossiers;
  17.  
  18.         dossiers = new Dictionary<string, List<string>>()
  19.             {
  20.                 {"Писатель", new List<string>{ "Пантелеева Яна Матвеевна" } },
  21.                 {"Антрополог", new List<string>{"Зуев Михаил Михайлович" } },
  22.                 {"Кассир", new List<string>{ "Куликов Руслан Кириллович" } },
  23.                 {"Ветеринар", new List<string>{ "Комарова Зоя Валерьевна" } }
  24.             };
  25.  
  26.         while (isProgram)
  27.         {
  28.             Console.Clear();
  29.             Console.WriteLine($"Выбери пунк меню:\n" +
  30.                 $"{CommandShowDossiers} - Показать все досье\n" +
  31.                 $"{CommandAddDossier} - Добавить досье\n" +
  32.                 $"{CommandDeleteDossier} - Удалить досье\n" +
  33.                 $"{CommandExit} - Выйти из меню");
  34.  
  35.             userInput = Console.ReadLine();
  36.  
  37.             switch (userInput)
  38.             {
  39.                 case CommandShowDossiers:
  40.                     ShowDossiers(dossiers);
  41.                     break;
  42.                 case CommandAddDossier:
  43.                     AddDossier(dossiers);
  44.                     break;
  45.                 case CommandDeleteDossier:
  46.                     DeleteDossier(dossiers);
  47.                     break;
  48.                 case CommandExit:
  49.                     isProgram = ExitProgram();
  50.                     break;
  51.                 default:
  52.                     Console.WriteLine("Нет такого выбора в меню.");
  53.                     Console.ReadKey();
  54.                     break;
  55.             }
  56.         }
  57.     }
  58.  
  59.     static void ShowDossiers(Dictionary<string, List<string>> dossiers)
  60.     {
  61.         Console.Clear();
  62.  
  63.         foreach (var employee in dossiers)
  64.         {
  65.             string employeesSeparate = ", ";
  66.             Console.WriteLine($"{employee.Key} - {String.Join(employeesSeparate, employee.Value)}");
  67.         }
  68.  
  69.         Console.ReadKey();
  70.     }
  71.  
  72.     static void AddDossier(Dictionary<string, List<string>> dossiers)
  73.     {
  74.         Console.WriteLine("Введите должность сотрудника");
  75.         string profession = Console.ReadLine();
  76.  
  77.         Console.WriteLine("Введите ФИО сотрудника");
  78.         string name = Console.ReadLine();
  79.  
  80.         if (dossiers.ContainsKey(profession) == true)
  81.         {
  82.             dossiers[profession].Add(name);
  83.         }
  84.         else
  85.         {
  86.             dossiers.Add(profession, new List<string>() { name });
  87.         }
  88.  
  89.         Console.WriteLine("Новый сотрудник добавлен");
  90.         Console.ReadKey();
  91.     }
  92.  
  93.     static void DeleteDossier(Dictionary<string, List<string>> dossiers)
  94.     {
  95.         List<string> professionToRemove = new List<string>();
  96.         int index = 1;
  97.  
  98.         Console.WriteLine("Введите профессию сотрудника:");
  99.         string professionInput = Console.ReadLine();
  100.  
  101.         if (dossiers.ContainsKey(professionInput))
  102.         {
  103.             Console.WriteLine("Вот все сотрудники с данной профессией:");
  104.  
  105.             foreach (var employee in dossiers[professionInput])
  106.             {
  107.                 Console.WriteLine(index + " - " + employee);
  108.                 index++;
  109.             }
  110.  
  111.             Console.WriteLine("\nВведите номер сотрудника которого нужно удалить:");
  112.             int indexInput = ReadInt(Console.ReadLine());
  113.  
  114.             if (indexInput > 0 && indexInput < index)
  115.             {
  116.                 dossiers[professionInput].RemoveAt(indexInput - 1);
  117.  
  118.                 Console.WriteLine("Сотрудник был удален");
  119.             }
  120.             else
  121.             {
  122.                 Console.WriteLine("Нет такого номера!");
  123.             }
  124.  
  125.             if (dossiers[professionInput].Count == 0)
  126.             {
  127.                 professionToRemove.Add(professionInput);
  128.  
  129.                 foreach (var profession in professionToRemove)
  130.                 {
  131.                     dossiers.Remove(profession);
  132.                 }
  133.             }
  134.         }
  135.         else
  136.         {
  137.             Console.WriteLine("Нет такой профессии.");
  138.         }
  139.  
  140.         Console.ReadKey();
  141.     }
  142.  
  143.     static int ReadInt(string input)
  144.     {
  145.         int result = 0;
  146.  
  147.         int.TryParse(input, out result);
  148.         return result;
  149.     }
  150.  
  151.     static bool ExitProgram()
  152.     {
  153.         Console.WriteLine("Программа закрыта.");
  154.         Console.ReadKey();
  155.  
  156.         return false;
  157.     }
  158. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement