Advertisement
JohnJuly

Homework28

Dec 8th, 2023 (edited)
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.36 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Reflection;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.Web;
  8.  
  9. namespace Homework28_
  10. {
  11.     internal class Program
  12.     {
  13.         static void Main(string[] args)
  14.         {
  15.             const string CommandAddDossier = "add";
  16.             const string CommandShowDossier = "show";
  17.             const string CommandDeleteDossier = "del";
  18.             const string CommandSearchDossier = "search";
  19.             const string CommandExit = "exit";
  20.  
  21.             string[] fullNamesWorkers = { "James Alan Hetfield", "Clifford Lee Burton", "Lars Torben Ulrich", "Kirk Lee Hammet" };
  22.             string[] positionsOfWorkers = { "Guitar", "Bass", "Drums", "LeadGuitar" };
  23.  
  24.             bool isOpen = true;
  25.  
  26.             while (isOpen)
  27.             {
  28.                 Console.SetCursorPosition(0, 0);
  29.                 Console.WriteLine($"1) Чтобы добавить досье введите команду: {CommandAddDossier}");
  30.                 Console.WriteLine($"2) Чтобы вывести досье введите команду: {CommandShowDossier}");
  31.                 Console.WriteLine($"3) Чтобы удалить досье введите команду: {CommandDeleteDossier}");
  32.                 Console.WriteLine($"4) Чтобы найти досье по фамилии введите команду: {CommandSearchDossier}");
  33.                 Console.WriteLine($"5) Чтобы выйти из программы введите команду: {CommandExit}");
  34.  
  35.                 string userInput = Console.ReadLine();
  36.                 Console.Clear();
  37.  
  38.                 switch (userInput)
  39.                 {
  40.                     case CommandAddDossier:
  41.                         AddDossier(ref fullNamesWorkers, ref positionsOfWorkers);
  42.                         break;
  43.  
  44.                     case CommandShowDossier:
  45.                         Console.SetCursorPosition(0, 10);
  46.                         ShowDossier(fullNamesWorkers, positionsOfWorkers);
  47.                         break;
  48.  
  49.                     case CommandDeleteDossier:
  50.                         DeleteDossier(ref fullNamesWorkers, ref positionsOfWorkers);
  51.                         break;
  52.  
  53.                     case CommandSearchDossier:
  54.                         SearchDossierByLastName(fullNamesWorkers, positionsOfWorkers);
  55.                         break;
  56.  
  57.                     case CommandExit:
  58.                         isOpen = false;
  59.                         Console.WriteLine("Вы вышли из программы!");
  60.                         break;
  61.                 }
  62.             }
  63.         }
  64.  
  65.         static void AddDossier(ref string[] dossierFullNames, ref string[] dossierPositions)
  66.         {
  67.             Console.WriteLine("Введите фамилию сотрудника которую хотите добавить");
  68.             AddElement(ref dossierFullNames);
  69.             Console.Clear();
  70.  
  71.             Console.WriteLine("Введите должность сотрудника ");
  72.             AddElement(ref dossierPositions);
  73.             Console.Clear();
  74.         }
  75.  
  76.         static void ShowDossier(string[] dossierFullNames, string[] positions)
  77.         {
  78.             for (int i = 0; i < dossierFullNames.Length; i++)
  79.             {
  80.                 Console.WriteLine($"{i + 1}) Фамилия - {dossierFullNames[i]}, Должность - {positions[i]}");
  81.             }
  82.         }
  83.  
  84.         static void DeleteDossier(ref string[] dossierFullNames, ref string[] dossierPositions)
  85.         {
  86.             Console.WriteLine("Введите порядковый номер досье которое хотите удалить:");
  87.  
  88.             int index = Convert.ToInt32(Console.ReadLine()) - 1;
  89.             Console.Clear();
  90.  
  91.             if (dossierFullNames.Length == 0)
  92.             {
  93.                 Console.WriteLine("Список досье пуст, удалять нечего!");
  94.             }
  95.  
  96.             if (index < 0 || index > dossierFullNames.Length - 1)
  97.             {
  98.                 Console.WriteLine("Такого досье не существует!");
  99.                 Console.ReadKey();
  100.             }
  101.             else
  102.             {
  103.                 RemoveElement(ref dossierFullNames, index);
  104.                 RemoveElement(ref dossierPositions, index);
  105.             }
  106.         }
  107.  
  108.         static void SearchDossierByLastName(string[] fullNames, string[] positions)
  109.         {
  110.             Console.WriteLine("Введите фамилию человека досье которого хотите увидеть:");
  111.  
  112.             bool isSearch = false;
  113.  
  114.             string inputLastName = Console.ReadLine();
  115.             Console.Clear();
  116.            
  117.             for (int i = 0; i < fullNames.Length; i++)
  118.             {
  119.                 string[] names = fullNames[i].Split(' ');
  120.                 string lastName = names[names.Length - 1];
  121.  
  122.                 if(lastName == inputLastName)
  123.                 {
  124.                     isSearch = true;
  125.  
  126.                     Console.Write($"{i + 1}) Фамилия - {fullNames[i]}, Должность - {positions[i]}");
  127.                     Console.ReadKey();
  128.                     Console.Clear();
  129.                 }
  130.             }
  131.  
  132.             if (isSearch == false)
  133.             {
  134.                 Console.WriteLine("Нет такой фамилии!");
  135.                 Console.ReadKey();
  136.             }
  137.         }
  138.  
  139.         static void AddElement(ref string[] elementsOfArray)
  140.         {
  141.             string[] tempArray = new string[elementsOfArray.Length + 1];
  142.             string userInput = Console.ReadLine();
  143.  
  144.             for (int i = 0; i < elementsOfArray.Length; i++)
  145.             {
  146.                 tempArray[i] = elementsOfArray[i];
  147.             }
  148.  
  149.             tempArray[tempArray.Length - 1] = userInput;
  150.             elementsOfArray = tempArray;
  151.         }
  152.  
  153.         static void RemoveElement(ref string[] elementsOfArray, int index)
  154.         {
  155.             string[] tempArray = new string[elementsOfArray.Length - 1];
  156.  
  157.             for (int i = 0; i < index; i++)
  158.             {
  159.                 tempArray[i] = elementsOfArray[i];
  160.             }
  161.  
  162.             for (int i = index + 1; i < elementsOfArray.Length; i++)
  163.             {
  164.                 tempArray[i - 1] = elementsOfArray[i];
  165.             }
  166.  
  167.             elementsOfArray = tempArray;
  168.         }
  169.     }
  170. }
  171.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement