Advertisement
SPavelA

Employes

Sep 11th, 2024 (edited)
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.98 KB | Gaming | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Security.Cryptography;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7.  
  8. namespace FunctionsTask4Employes
  9. {
  10.     internal class Program
  11.     {
  12.         static void Main(string[] args)
  13.         {
  14.             const string CommandAddEmploye = "1";
  15.             const string CommandPrintAllEmploye = "2";
  16.             const string CommandDeleteEmploye = "3";
  17.             const string CommandPrintEmployesBySurname = "4";
  18.             const string CommandExit = "5";
  19.            
  20.             string[] names = new string[0];
  21.             string[] positions = new string[0];
  22.  
  23.             string inputCommand = "";
  24.             bool isWirking = true;
  25.  
  26.             while(isWirking)
  27.             {
  28.                 Console.Clear();
  29.                 Console.WriteLine($"Сейчас в базе {names.Length} досье");
  30.                 Console.WriteLine($"{CommandAddEmploye} - добавить нового сотрудника");
  31.                 Console.WriteLine($"{CommandPrintAllEmploye} - распечатать все досье");
  32.                 Console.WriteLine($"{CommandDeleteEmploye} - удалить сотрудника");
  33.                 Console.WriteLine($"{CommandPrintEmployesBySurname} - показ всех с данной фамилией");
  34.                 Console.WriteLine($"{CommandExit} - выход");
  35.                 Console.Write("Введите команду: ");
  36.                 inputCommand = Console.ReadLine();
  37.  
  38.                 switch (inputCommand)
  39.                 {
  40.                     case CommandAddEmploye:
  41.                         AddEmploye(ref names, ref positions);
  42.                         break;
  43.  
  44.                     case CommandPrintAllEmploye:
  45.                         PrintAllEmployes(names, positions);
  46.                         break;
  47.  
  48.                     case CommandDeleteEmploye:
  49.                         DeleteEmploye(ref names, ref positions);
  50.                         break;
  51.  
  52.                     case CommandPrintEmployesBySurname:
  53.                         FindAndPrintEmployesBySurname(names, positions);
  54.                         break;
  55.  
  56.                     case CommandExit:
  57.                         isWirking = false;
  58.                         break;
  59.  
  60.                     default:
  61.                         Console.WriteLine("Неизвестная команда");
  62.                         break;
  63.                 }
  64.  
  65.                 Console.ReadKey();
  66.             }
  67.         }
  68.  
  69.         private static void FindAndPrintEmployesBySurname(string[] names, string[] positions)
  70.         {
  71.             if (isEmpty(names) == true)
  72.             {
  73.                 return;
  74.             }
  75.  
  76.             Console.Write("Введите фамилию для поиска: ");
  77.             string surname = Console.ReadLine();
  78.             int number = 1;
  79.  
  80.             for (int i = 0; i < names.Length; i++)
  81.             {
  82.                 if (names[i].Split(' ')[0].Equals(surname))
  83.                 {
  84.                     PrintEmploye(number++, names[i], positions[i]);
  85.                 }
  86.             }
  87.  
  88.             if(number == 1)
  89.             {
  90.                 Console.WriteLine("Нет сотрудников с такой фамилией");
  91.             }
  92.         }
  93.  
  94.         private static void DeleteEmploye(ref string[] names, ref string[] positions)
  95.         {
  96.             if (isEmpty(names) == true)
  97.             {
  98.                 return;
  99.             }
  100.  
  101.             PrintAllEmployes(names, positions);
  102.             Console.Write("Введите номер сотрудника, которого хотите удалить: ");
  103.             int index = ReadInt() - 1;
  104.            
  105.             if(index < 0 || index >= names.Length)
  106.             {
  107.                 Console.WriteLine("Сотрудника с таким номером не существует в базе");
  108.             }
  109.             else
  110.             {
  111.                 names = DeleteElementFromArray(index, names);
  112.                 positions = DeleteElementFromArray(index, positions);
  113.                 Console.WriteLine("Сотрудник удален из базы");
  114.             }
  115.         }
  116.  
  117.         private static int ReadInt()
  118.         {
  119.             int inputNumber;
  120.  
  121.             while (int.TryParse(Console.ReadLine(), out inputNumber) == false)
  122.             {
  123.                 Console.Write("Это не число, попробуйте еще раз: ");
  124.             }
  125.  
  126.             return inputNumber;
  127.         }
  128.  
  129.         private static void AddEmploye(ref string[] names, ref string[] positions)
  130.         {
  131.             string name = "";
  132.             string position;
  133.             Console.WriteLine("Введите фамилию нового сотрудника: ");
  134.             name += Console.ReadLine() + " ";
  135.             Console.WriteLine("Введите имя нового сотрудника: ");
  136.             name += Console.ReadLine() + " ";
  137.             Console.WriteLine("Введите отчество нового сотрудника: ");
  138.             name += Console.ReadLine();
  139.             Console.WriteLine("Введите должность нового сотрудника: ");
  140.             position = Console.ReadLine();
  141.             names = AddElementToArray(name, names);
  142.             positions = AddElementToArray(position, positions);
  143.         }
  144.  
  145.         private static string[] DeleteElementFromArray(int index, string[] array)
  146.         {
  147.             string[] temporaryArray = new string[array.Length - 1];
  148.  
  149.             for (int i = 0; i < index; i++)
  150.             {
  151.                 temporaryArray[i] = array[i];
  152.             }
  153.  
  154.             for (int i = index + 1; i < array.Length; i++)
  155.             {
  156.                 temporaryArray[i - 1] = array[i];
  157.             }
  158.  
  159.             return temporaryArray;
  160.         }
  161.  
  162.         private static void PrintAllEmployes(string[] names, string[] positions)
  163.         {
  164.             if (isEmpty(names) == true)
  165.             {
  166.                 return;
  167.             }
  168.  
  169.             for (int i = 0; i < names.Length; i++)
  170.             {
  171.                 PrintEmploye(i + 1, names[i], positions[i]);
  172.             }
  173.         }
  174.  
  175.         private static void PrintEmploye(int number, string name, string position)
  176.         {
  177.             Console.WriteLine($"{number} {name} - {position}");
  178.         }
  179.  
  180.         private static bool isEmpty(string[] names)
  181.         {
  182.             if (names.Length == 0)
  183.             {
  184.                 Console.WriteLine("В базе нет сотрудников");
  185.                 return true;
  186.             }
  187.             return false;
  188.         }
  189.  
  190.         private static string[] AddElementToArray(string element, string[] array)
  191.         {
  192.             string[] temporaryArray = new string[array.Length + 1];
  193.  
  194.             for (int i = 0; i < array.Length; i++)
  195.             {
  196.                 temporaryArray[i] = array[i];
  197.             }
  198.  
  199.             temporaryArray[array.Length] = element;
  200.             return temporaryArray;
  201.         }
  202.     }
  203. }
  204.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement