Advertisement
SaNik74

personal accounting

Mar 25th, 2023 (edited)
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.92 KB | None | 0 0
  1. using System;
  2.  
  3. internal class Program
  4. {
  5.     static void Main(string[] args)
  6.     {
  7.         const string AddDossierCommand = "add";
  8.         const string OutputDossierCommand = "output all";
  9.         const string DeleteDossierCommand = "delete";
  10.         const string FindLastNameCommand = "find";
  11.         const string EndProgramCommand = "exit";
  12.  
  13.         string[] fullNames = new string[0];
  14.         string[] jobTitles = new string[0];
  15.         bool isWorking = true;
  16.  
  17.         while (isWorking)
  18.         {
  19.             Console.WriteLine($"База данных:" +
  20.             $"\nДля добавления досье введите - {AddDossierCommand}." +
  21.             $"\nДля вывода всей базы введите - {OutputDossierCommand}." +
  22.             $"\nДля удаления досье введите - {DeleteDossierCommand}." +
  23.             $"\nДля поиска по фамилии введите - {FindLastNameCommand}." +
  24.             $"\nДля выхода введите - {EndProgramCommand}.");
  25.  
  26.             string? userInput = Console.ReadLine();
  27.  
  28.             switch (userInput)
  29.             {
  30.                 case AddDossierCommand:
  31.                     AddDossier(ref fullNames, ref jobTitles);
  32.                     break;
  33.  
  34.                 case OutputDossierCommand:
  35.                     OutputAllDossier(fullNames, jobTitles);
  36.                     break;
  37.  
  38.                 case DeleteDossierCommand:
  39.                     DeleteDossier(ref fullNames, ref jobTitles);
  40.                     break;
  41.  
  42.                 case FindLastNameCommand:
  43.                     FindLastName(fullNames, jobTitles);
  44.                     break;
  45.  
  46.                 case EndProgramCommand:
  47.                     isWorking = EndProgram(isWorking);
  48.                     break;
  49.  
  50.                 default:
  51.                     DisplayUncorrectMessage();
  52.                     break;
  53.             }
  54.  
  55.             Console.Clear();
  56.         }
  57.     }
  58.  
  59.     static void AddDossier(ref string[] fullNames, ref string[] jobTitles)
  60.     {
  61.         string fullName = "ФИО";
  62.         string jobTitle = "должность";
  63.  
  64.         fullNames = AddData(fullNames, fullName);
  65.         jobTitles = AddData(jobTitles, jobTitle);
  66.     }
  67.  
  68.     static void OutputAllDossier(string[] fullNames, string[] jobTitles)
  69.     {
  70.         if (fullNames.Length == 0)
  71.         {
  72.             Console.WriteLine("Массив пуст.");
  73.             Console.ReadKey();
  74.         }
  75.         else
  76.         {
  77.             for (int i = 0; i < fullNames.Length - 1; i++)
  78.             {
  79.                 int serialNumber = i + 1;
  80.  
  81.                 Console.Write($"{serialNumber} {fullNames[i]} {jobTitles[i]} - ");
  82.             }
  83.  
  84.             Console.Write($"{fullNames.Length} {fullNames[fullNames.Length - 1]} {jobTitles[fullNames.Length - 1]}.");
  85.  
  86.             Console.ReadKey();
  87.         }
  88.     }
  89.  
  90.     static void DeleteDossier(ref string[] fullNames, ref string[] jobTitles)
  91.     {
  92.         if (fullNames.Length > 0)
  93.         {
  94.             Console.Write("Введите номер досье, которое хотите удалить: ");
  95.             int number = Convert.ToInt32(Console.ReadLine()) - 1;
  96.  
  97.             if (number >= fullNames.Length || number < 0)
  98.             {
  99.                 Console.WriteLine("Число вышло за пределы массива.");
  100.                 Console.ReadKey();
  101.             }
  102.             else
  103.             {
  104.                 fullNames = FillingArraytoIndex(fullNames, number);
  105.                 jobTitles = FillingArraytoIndex(jobTitles, number);
  106.             }
  107.         }
  108.         else
  109.         {
  110.             Console.WriteLine("Массив пуст.");
  111.             Console.ReadKey();
  112.         }
  113.     }
  114.  
  115.     static void FindLastName(string[] fullNames, string[] jobTitles)
  116.     {
  117.         if (fullNames.Length == 0)
  118.         {
  119.             Console.WriteLine("Массив пуст.");
  120.             Console.ReadKey();
  121.         }
  122.         else
  123.         {
  124.             Console.Write("Введите фамилию: ");
  125.             string? lastName = Console.ReadLine();
  126.             bool isFound = false;
  127.  
  128.             for (int i = 0; i < fullNames.Length; i++)
  129.             {
  130.                 int serialNumber = i + 1;
  131.  
  132.                 if (fullNames[i].Split()[0] == lastName)
  133.                 {
  134.                     Console.WriteLine($"{serialNumber} {fullNames[i]} {jobTitles[i]}");
  135.                     isFound = true;
  136.                 }
  137.             }
  138.  
  139.             if (isFound == false)
  140.             {
  141.                 Console.WriteLine($"Досье с фамилией {lastName} не найдено.");
  142.             }
  143.  
  144.             Console.ReadKey();
  145.         }
  146.     }
  147.  
  148.     static bool EndProgram(bool isWorking)
  149.     {
  150.         Console.WriteLine("Выход из программы. Нажмите любую клавишу...");
  151.         Console.ReadKey();
  152.         return false;
  153.     }
  154.  
  155.     static void DisplayUncorrectMessage()
  156.     {
  157.         Console.WriteLine("Введена некорректная команда. Попробуйте еще раз.");
  158.         Console.ReadKey();
  159.     }
  160.  
  161.     static string[] AddData(string[] array, string indexName)
  162.     {
  163.         string[] tempArray = new string[array.Length + 1];
  164.  
  165.         for (int i = 0; i < array.Length; i++)
  166.         {
  167.             tempArray[i] = array[i];
  168.         }
  169.  
  170.         Console.Write($"Введите {indexName}: ");
  171.         string? name = Console.ReadLine();
  172.         tempArray[array.Length] = name;
  173.         array = tempArray;
  174.         return array;
  175.     }
  176.  
  177.     static string[] FillingArraytoIndex(string[] array, int index)
  178.     {
  179.         string[] tempArray = new string[array.Length - 1];
  180.  
  181.         for (int i = 0; i < index; i++)
  182.         {
  183.             tempArray[i] = array[i];
  184.         }
  185.  
  186.         for (int i = index + 1; i < array.Length; i++)
  187.         {
  188.             tempArray[i - 1] = array[i];
  189.         }
  190.  
  191.         array = tempArray;
  192.         return array;
  193.     }
  194. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement