Advertisement
AziLif

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

Jan 24th, 2025 (edited)
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.65 KB | None | 0 0
  1. using System;
  2.  
  3. namespace ConsoleApp
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             const string CommandAddPersonToDossier = "1";
  10.             const string CommandOutputDossier = "2";
  11.             const string CommandRemovePersonFromDossier = "3";
  12.             const string CommandSearchPersonInDossier = "4";
  13.             const string CommandExit = "5";
  14.  
  15.             string[] fullNames = new string[0];
  16.             string[] positions = new string[0];
  17.  
  18.             string userInput;
  19.  
  20.             bool isWork = true;
  21.  
  22.             Console.WriteLine("Здравствйе! Это ваша личная картотека неугодных вам линостей. \nСюда Вы можете внести кого и сколько угожно" +
  23.                 " - места хватит. Функций много. \nИтак - чего бы вам хотелось(выберите вариант):\n" +
  24.                 $"\n{CommandAddPersonToDossier}. Добавить человека в досье." +
  25.                 $"\n{CommandOutputDossier}. Вывести все досье целиком." +
  26.                 $"\n{CommandRemovePersonFromDossier}. Удалить какой-то пункт, при этом простив все грехи." +
  27.                 $"\n{CommandSearchPersonInDossier}. Поискать кого-нибудь." +
  28.                 $"\n{CommandExit}. Просто выйти из программы.\n");
  29.  
  30.             while (isWork)
  31.             {
  32.                 Console.Write("Выберите пункт меню:\n");
  33.                 userInput = Console.ReadLine();
  34.  
  35.                 switch (userInput)
  36.                 {
  37.                     case CommandAddPersonToDossier:
  38.                         AddDossier(ref fullNames, ref positions);
  39.                         break;
  40.  
  41.                     case CommandOutputDossier:
  42.                         ShowAllDossiers(fullNames, positions);
  43.                         break;
  44.  
  45.                     case CommandRemovePersonFromDossier:
  46.                         DeleteDossier(ref fullNames, ref positions);
  47.                         break;
  48.  
  49.                     case CommandSearchPersonInDossier:
  50.                         SearchDossier(fullNames, positions);
  51.                         break;
  52.  
  53.                     case CommandExit:
  54.                         isWork = false;
  55.                         Console.WriteLine("Спасибо что воспользовались нашей программой!");
  56.                         break;
  57.  
  58.                     default:
  59.                         Console.WriteLine("Такого пункта нет.");
  60.                         break;
  61.                 }
  62.             }
  63.         }
  64.  
  65.         static void AddDossier(ref string[] dataAboutUser, ref string[] dataAboutUserPosition)
  66.         {
  67.             string userData = "Введите фамилию, имя и отчество:";
  68.             string userWork = "Укажите должность:";
  69.  
  70.             dataAboutUser = AddItemToDossier(dataAboutUser, userData);
  71.             dataAboutUserPosition = AddItemToDossier(dataAboutUserPosition, userWork);
  72.         }
  73.  
  74.         static string[] AddItemToDossier(string[] extendedArray, string text)
  75.         {
  76.             Console.WriteLine(text);
  77.  
  78.             string userInput = Console.ReadLine();
  79.  
  80.             string[] temporaryArrayForDossier = new string[extendedArray.Length + 1];
  81.  
  82.             for (int i = 0; i < extendedArray.Length; i++)
  83.             {
  84.                 temporaryArrayForDossier[i] = extendedArray[i];
  85.             }
  86.  
  87.             temporaryArrayForDossier[temporaryArrayForDossier.Length - 1] = userInput;
  88.  
  89.             return temporaryArrayForDossier;
  90.         }
  91.  
  92.         static void ShowAllDossiers(string[] userInfo, string[] userPosition)
  93.         {
  94.             int sequenceNumber = 0;
  95.  
  96.             Console.WriteLine("Досье полностью:");
  97.  
  98.             for (int i = 0; i < userInfo.Length; i++)
  99.             {
  100.                 sequenceNumber++;
  101.  
  102.                 Console.WriteLine($"{sequenceNumber}. {userInfo[i]} - {userPosition[i]}.");
  103.             }
  104.         }
  105.  
  106.         static void SearchDossier(string[] dataUser, string[] userPosition)
  107.         {
  108.             int dossierSerialNumber = 0;
  109.  
  110.             if (dataUser.Length == 0)
  111.             {
  112.                 Console.WriteLine("Список пуст.");
  113.             }
  114.             else
  115.             {
  116.                 Console.Write("Кого найти? Введите фамилию:");
  117.  
  118.                 string userSearch = Console.ReadLine();
  119.  
  120.                 for (int i = 0; i < dataUser.Length; i++)
  121.                 {
  122.                     string[] arrayForSearchLastName = dataUser[i].Split();
  123.  
  124.                     if (arrayForSearchLastName[0] == userSearch)
  125.                     {
  126.                         dossierSerialNumber = i + 1;
  127.  
  128.                         Console.WriteLine($"\"{arrayForSearchLastName[0]} - {userPosition[i]}\" находится под номером \"{dossierSerialNumber}\".");
  129.                     }
  130.                 }
  131.  
  132.                 if (dossierSerialNumber == 0)
  133.                 {
  134.                     Console.WriteLine("Досье не найдено.");
  135.                 }
  136.             }
  137.         }
  138.  
  139.         static void DeleteDossier(ref string[] reducedArray, ref string[] reducedPositionArray)
  140.         {
  141.             Console.Write("Введите номер пункта досье, который Вы хотите удалить:");
  142.  
  143.             string userInput = Console.ReadLine();
  144.  
  145.             bool isNumber = int.TryParse(userInput, out int itemNumber);
  146.  
  147.             itemNumber--;
  148.  
  149.             if (itemNumber >= reducedArray.Length || itemNumber < 0)
  150.             {
  151.                 isNumber = false;
  152.             }
  153.  
  154.             if (isNumber)
  155.             {
  156.                 reducedArray = DeleteElement(reducedArray, itemNumber);
  157.                 reducedPositionArray = DeleteElement(reducedPositionArray, itemNumber);
  158.             }
  159.             else
  160.             {
  161.                 Console.WriteLine("Ошибочный ввод");
  162.             }
  163.         }
  164.  
  165.         static string[] DeleteElement(string[] itemDeleteDossier, int numberDossier)
  166.         {
  167.             string[] arrayModified = new string[itemDeleteDossier.Length - 1];
  168.  
  169.             for (int i = 0; i < numberDossier; i++)
  170.             {
  171.                 arrayModified[i] = itemDeleteDossier[i];
  172.             }
  173.  
  174.             for (int i = numberDossier + 1; i < itemDeleteDossier.Length; i++)
  175.             {
  176.                 arrayModified[i - 1] = itemDeleteDossier[i];
  177.             }
  178.  
  179.             return arrayModified;
  180.         }
  181.     }
  182. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement