IGRODELOFF

Task28._1

May 8th, 2022 (edited)
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.98 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Task28._1
  8. {
  9.     internal class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             int startValue = 0;
  14.             int countPeople;
  15.             int step = 1;
  16.             int index;
  17.             int realIndex;
  18.  
  19.             string menu =
  20.                 "Добро пожаловать в картотеку компании Хелл. \n\n" +
  21.                 "Пункты меню. Введите, чтобы продолжить: \n\n" +
  22.                 "Чтобы обавить досье введите - ДД \n" +
  23.                 "Чтобы вывести все досье введите - ВВД \n" +
  24.                 "Чтобы удалить досье введите - УД \n" +
  25.                 "Чтобы начать поиск по фамилии введите - ППФ \n" +
  26.                 "Чтобы выйти из программы введити - В\n\n" +
  27.                 "Введите команду: ";
  28.             string dossierName = "Введите ФИО: ";
  29.             string dossierPossition = "Введите должность: ";
  30.             string unfound = "Команда не найдена, попробуйте ещё раз.";
  31.             string parting = "До свидания!";
  32.             string surnameSearch = "Введи фамилию того, чьё досье хотите посмотреть: ";
  33.             string delete = "Введите номер того, чьё досье хотите удалить: ";
  34.             string emptyIndex = "Данный индекс не существует.";
  35.             string empty = "В картотеке нет досье.";
  36.             string userInput;
  37.             string[] fullName = new string[startValue];
  38.             string[] position = new string[startValue];
  39.  
  40.             bool wantsExit = false;
  41.  
  42.             while (wantsExit != true)
  43.             {
  44.                 Console.Write(menu);
  45.                 userInput = Console.ReadLine();
  46.                 countPeople = fullName.Length;
  47.  
  48.                 switch (userInput)
  49.                 {
  50.                     case "ДД":
  51.                         RequestFillingDossier(ref fullName, ref countPeople, ref position, ref dossierName, ref dossierPossition);
  52.                         break;
  53.                     case "ВВД":
  54.                         DrawAllDossier(countPeople, ref fullName, ref position);
  55.                         break;
  56.                     case "УД":
  57.                         RequestRemovalDossier(ref fullName, ref position, ref delete, ref emptyIndex, ref empty);
  58.                         break;
  59.                     case "ППФ":
  60.                         SearchDossiaerSurname(ref fullName, ref position, ref surnameSearch);
  61.                         break;
  62.                     case "В":
  63.                         wantsExit = true;
  64.                         Console.WriteLine(parting);
  65.                         break;
  66.                     default:
  67.                         Console.WriteLine(unfound);
  68.                         Console.ReadKey();
  69.                         break;
  70.                 }
  71.  
  72.                 Console.Clear();
  73.             }
  74.         }
  75.  
  76.         static void AddDossier(ref string[] array, ref string newElement,ref int index)
  77.         {
  78.             int step = 1;
  79.             string[] newArray = new string[array.Length + 1];
  80.             newArray[index] = newElement;
  81.  
  82.             for (int i = 0; i < index; i++)
  83.                 newArray[i] = array[i];
  84.            
  85.  
  86.             for (int i = index; i < array.Length; i++)
  87.                 newArray[i + step] = array[i];
  88.  
  89.             array = newArray;
  90.         }
  91.  
  92.         static void DeleteDossier(ref string[] array, int index)
  93.         {
  94.             int step = 1;
  95.             string[] newArray = new string[array.Length - step];
  96.  
  97.             for (int i = 0; i < index; i++)
  98.                 newArray[i] = array[i];
  99.  
  100.             for (int i = index + step; i < array.Length; i++)
  101.                 newArray[i - step] = array[i];
  102.  
  103.             array = newArray;
  104.         }
  105.  
  106.         static void SearchDossiaerSurname(ref string[] arrayPerson, ref string[] arrayPosition, ref string surnameSearch)
  107.         {
  108.             int startValue = 0;
  109.             int step = 1;
  110.             string userInput;
  111.  
  112.             Console.Clear();
  113.             Console.Write(surnameSearch);
  114.             userInput = Console.ReadLine();
  115.  
  116.             for (int i = 0; i < arrayPerson.Length; i++)
  117.             {
  118.                 string[] fullname = arrayPerson[i].Split(' ');
  119.                 for (int j = 0; j < fullname.Length; j++)
  120.                 {
  121.                     if (fullname[startValue] == userInput)
  122.                     {
  123.                         Console.WriteLine($"{(i + step)}. {arrayPerson[i]} - {arrayPosition[i]}.");
  124.                         break;
  125.                     }
  126.                 }
  127.             }
  128.  
  129.             Console.ReadKey();
  130.         }
  131.  
  132.         static void DrawAllDossier(int countPeople, ref string[] arrayPerson, ref string[] arrayPosition)
  133.         {
  134.             int step = 1;
  135.             Console.Clear();
  136.  
  137.             for (int i = 0; i < countPeople; i++)
  138.             {
  139.                 Console.WriteLine($"{(i + step)}. {arrayPerson[i]} - {arrayPosition[i]}.");
  140.             }
  141.  
  142.             Console.ReadKey();
  143.         }
  144.  
  145.         static void RequestFillingDossier(ref string[] fullName, ref int countPeople, ref string[] position, ref string dossierName, ref string dossierPossition)
  146.         {
  147.             string userInput;
  148.             Console.Clear();
  149.             Console.Write(dossierName);
  150.             userInput = Console.ReadLine();
  151.  
  152.             AddDossier(ref fullName, ref userInput, ref countPeople);
  153.  
  154.             Console.Clear();
  155.             Console.Write(dossierPossition);
  156.             userInput = Console.ReadLine();
  157.  
  158.             AddDossier(ref position, ref userInput, ref countPeople);
  159.         }
  160.  
  161.         static void RequestRemovalDossier(ref string[] fullName, ref string[] position, ref string delete, ref string emptyIndex, ref string empty)
  162.         {
  163.             int index;
  164.             int realIndex;
  165.             int step = 1;
  166.  
  167.             Console.Clear();
  168.  
  169.             if (fullName.Length > 0)
  170.             {
  171.                 Console.Write(delete);
  172.                 index = Convert.ToInt32(Console.ReadLine());
  173.                 realIndex = index - step;
  174.                 if (realIndex < fullName.Length && realIndex < position.Length)
  175.                 {
  176.                     DeleteDossier(ref fullName, realIndex);
  177.                     DeleteDossier(ref position, realIndex);
  178.                 }
  179.                 else
  180.                 {
  181.                     Console.Write(emptyIndex);
  182.                     Console.ReadKey();
  183.                 }
  184.             }
  185.             else
  186.             {
  187.                 Console.Write(empty);
  188.                 Console.ReadKey();
  189.             }
  190.         }
  191.     }
  192. }
Add Comment
Please, Sign In to add comment