Advertisement
NikaBang

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

Oct 14th, 2024 (edited)
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.16 KB | None | 0 0
  1. using System;
  2.  
  3. namespace FunctionsHW
  4. {
  5.     internal class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             const string CommandShowDossiers = "1";
  10.             const string CommandAddDossier = "2";
  11.             const string CommandSearchByLastName = "3";
  12.             const string CommandDeleteDossier = "4";
  13.             const string CommandExit = "5";
  14.  
  15.             string[] dossierNames = { "Пантелеева Яна Матвеевна", "Зуев Михаил Михайлович", "Куликов Руслан Кириллович", "Комарова Зоя Валерьевна" };
  16.             string[] positions = { "Писатель", "Антрополог", "Кассир", "Ветеринар" };
  17.  
  18.             string userInput;
  19.  
  20.             bool isOpen = true;
  21.  
  22.             while (isOpen)
  23.             {
  24.                 Console.Clear();
  25.                 Console.WriteLine($"Выбери пунк меню:\n" +
  26.                     $"{CommandShowDossiers} - Показать все досье\n" +
  27.                     $"{CommandAddDossier} - Добавить досье\n" +
  28.                     $"{CommandSearchByLastName} - Найти человека по его фамилии\n" +
  29.                     $"{CommandDeleteDossier} - Удалить досье\n" +
  30.                     $"{CommandExit} - Выйти из меню");
  31.  
  32.                 userInput = Console.ReadLine();
  33.  
  34.                 switch (userInput)
  35.                 {
  36.                     case CommandShowDossiers:
  37.                         ShowDossiers(dossierNames, positions);
  38.                         break;
  39.                     case CommandAddDossier:
  40.                         AddDossier(ref dossierNames, ref positions);
  41.                         break;
  42.                     case CommandSearchByLastName:
  43.                         SearchByLastName(dossierNames, positions);
  44.                         break;
  45.                     case CommandDeleteDossier:
  46.                         DeleteDossier(ref dossierNames, ref positions);
  47.                         break;
  48.                     case CommandExit:
  49.                         isOpen = false;
  50.                         break;
  51.                     default:
  52.                         Console.Clear();
  53.                         Console.WriteLine("Нет такого выбора в меню.");
  54.                         Console.ReadKey();
  55.                         break;
  56.                 }
  57.             }
  58.         }
  59.  
  60.         static void ShowDossiers(string[] dossierNames, string[] positions)
  61.         {
  62.             Console.Clear();
  63.  
  64.             for (int i = 0; i < dossierNames.Length; i++)
  65.             {
  66.                 WriteDossiers(dossierNames, positions, i);
  67.             }
  68.  
  69.             Console.ReadKey();
  70.         }
  71.  
  72.         static void WriteDossiers(string[] dossierNames, string[] positions, int i)
  73.         {
  74.             Console.WriteLine($"{i + 1}. {dossierNames[i]} - {positions[i]}");
  75.         }
  76.  
  77.         static void AddDossier(ref string[] dossierNames, ref string[] positions)
  78.         {
  79.             Console.Clear();
  80.  
  81.             Console.WriteLine("Введите ФИО сотрудника:");
  82.             AddInformation(ref dossierNames);
  83.  
  84.             Console.WriteLine("Введите должность сотрудника:");
  85.             AddInformation(ref positions);
  86.  
  87.             Console.WriteLine("Сотрудник был добавлен");
  88.             Console.ReadKey();
  89.         }
  90.  
  91.         static void AddInformation(ref string[] array)
  92.         {
  93.             string newInfo = Console.ReadLine();
  94.             IncreaseArray(ref array, newInfo);
  95.         }
  96.  
  97.         static void IncreaseArray(ref string[] array, string newValue)
  98.         {
  99.             string[] temp = new string[array.Length + 1];
  100.  
  101.             for (int i = 0; i < array.Length; i++)
  102.             {
  103.                 temp[i] = array[i];
  104.             }
  105.  
  106.             temp[array.Length] = newValue;
  107.             array = temp;
  108.         }
  109.  
  110.         static void SearchByLastName(string[] dossierNames, string[] positions)
  111.         {
  112.             Console.Clear();
  113.  
  114.             Console.WriteLine("Введите фамилию сотрудника для его поиска:");
  115.  
  116.             string lastName = Console.ReadLine();
  117.  
  118.             bool isFound = false;
  119.  
  120.             for (int i = 0; i < dossierNames.Length; i++)
  121.             {
  122.                 string[] splitPartOfName = dossierNames[i].Split(' ');
  123.  
  124.                 if (splitPartOfName[0].ToLower() == lastName.ToLower())
  125.                 {
  126.                     WriteDossiers(dossierNames, positions, i);
  127.                     isFound = true;
  128.                 }
  129.             }
  130.  
  131.             if (isFound == false)
  132.             {
  133.                 Console.WriteLine("Сотрудник не найден");
  134.             }
  135.  
  136.             Console.ReadKey();
  137.         }
  138.  
  139.         static void DeleteDossier(ref string[] dossierName, ref string[] position)
  140.         {
  141.             Console.Clear();
  142.  
  143.             Console.WriteLine("Введите номер сотрудника для его удаление из учета:");
  144.  
  145.             int number = Convert.ToInt32(Console.ReadLine());
  146.             int employeeNumber = number - 1;
  147.  
  148.             if (number > dossierName.Length || number <= 0)
  149.             {
  150.                 Console.WriteLine("Нету сотрудника под данным номером");
  151.             }
  152.             else
  153.             {
  154.                 dossierName = DeleteElement(dossierName, employeeNumber);
  155.                 position = DeleteElement(position, employeeNumber);
  156.             }
  157.  
  158.             Console.WriteLine("Сотрудник был удален из учета");
  159.             Console.ReadKey();
  160.         }
  161.  
  162.         static string[] DeleteElement(string[] dossierNames, int dossierNumber)
  163.         {
  164.             string[] temp = new string[dossierNames.Length - 1];
  165.  
  166.             for (int i = 0; i < dossierNumber; i++)
  167.             {
  168.                 temp[i] = dossierNames[i];
  169.             }
  170.  
  171.             for (int i = dossierNumber; i < temp.Length; i++)
  172.             {
  173.                 temp[i] = dossierNames[i + 1];
  174.             }
  175.  
  176.             return temp;
  177.         }
  178.     }
  179. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement