Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace HRdepartment_02
- {
- class Program
- {
- static void Main(string[] args)
- {
- string[] fullName;
- string[] jobTitle;
- string[] description;
- string headerName = "ДОСЬЕ ОСТРОВА СОКРОВИЩ";
- DeclarationArrays(out fullName, out jobTitle, out description);
- DisplayMenu(headerName, fullName, jobTitle, description);
- }
- static void DeclarationArrays(out string[] firstArray, out string[] secondArray, out string[] thirdArray)
- {
- string[] fullName = new string[] { "Джимми Гокинс", "Джон Трелони", "Дэвид Ливси", "Джон Сильвер", "Бен Ганн", "Билли Бонс", "Александр Смоллетт", "Черный Пес", "Слепой Пью" };
- string[] jobTitle = { "хороший мальчик", "сквайр", "доктор", "самый страшный пират", "пират", "капитан", "капитан", "пират", "старый пират" };
- string[] description = {"Очень, очень хороший мальчик. Вежлив, правдив, скромен, добр. Слушает маму. Каждое утро делает зарядку. Характер очень мягкий.",
- "Туп, жаден, прожорлив, ленив, труслив, надменен. Характер отсутствует. Не женат.",
- "Очень хороший и веселый человек. Характер общительный. Не женат.",
- "Он же \"Окорок\", он же \"Одноногий\". Самый страшный пират, но удачно притворяется добрым. Характер скрытный. Не женат.",
- "В детстве был благовоспитанным мальчиком, но начал изучать C#, связался с Unity и покатился... Характер мягкий. Не женат.",
- "Обладатель карты острова сокровищ. Много пьет и всегда простужен. Характер скверный. Не женат.",
- "Старый моряк и солдат. Говорит правду в глаза, отчего и страдает. Характер прескверный. Не женат.",
- "Друг Флинта. Охотится за картой острова сокровищ. Характер скрытный. Не женат.",
- "Друг Флинта. Жаден, ради денег готов на все. Характер мерзкий. Не женат."};
- firstArray = fullName;
- secondArray = jobTitle;
- thirdArray = description;
- }
- static void DisplayMenu(string headerName, string[] fullName, string[] jobTitle, string[] description)
- {
- bool isExit = false;
- string menuItem = "";
- while (isExit == false)
- {
- Console.Write($"\n1 - Добавить досье\n\n2 - Вывести все досье\n\n3 - Удалить досье\n\n4 - Поиск по фамилии\n\n5 - Выход\n\n");
- menuItem = Console.ReadLine();
- switch (menuItem)
- {
- case "1":
- AddRecord(headerName, ref fullName, ref jobTitle, ref description);
- break;
- case "2":
- ShowFullName(headerName, fullName, jobTitle);
- break;
- case "3":
- DeleteRecord(headerName, ref fullName, ref jobTitle, ref description);
- break;
- case "4":
- FindName(headerName, fullName, jobTitle, description);
- break;
- case "5":
- Exit(ref isExit);
- break;
- }
- Console.WriteLine($"\nНажмите любую клавишу для продолжения...");
- Console.ReadKey();
- Console.Clear();
- }
- }
- static void AddRecord(string headerName, ref string[] fullName, ref string[] jobTitle, ref string[] description)
- {
- string newFullName;
- string newJobTitle;
- string newDescription = "";
- Console.WriteLine($"Добавление персонажа в {headerName}.");
- Console.Write($"Введите ФИО: ");
- newFullName = Console.ReadLine();
- Console.Write($"Введите должность: ");
- newJobTitle = Console.ReadLine();
- Console.Write($"Введите описание: ");
- DisplayErrorMesage("Добавление описания доступно в зарегистрированной версии программы.");
- fullName = IncreaseArray(ref fullName, newFullName);
- jobTitle = IncreaseArray(ref jobTitle, newJobTitle);
- description = IncreaseArray(ref description, newDescription);
- Console.WriteLine($"Добавлена новая запись: {newFullName}, {newJobTitle}");
- }
- static string[] IncreaseArray(ref string[] array, string record)
- {
- string[] tempArray = new string[array.Length + 1];
- for (int i = 0; i < array.Length; i++)
- {
- tempArray[i] = array[i];
- }
- tempArray[tempArray.Length - 1] = record;
- array = tempArray;
- return array;
- }
- static void ShowFullName(string headerName, string[] fullName, string[] jobTitle)
- {
- Console.WriteLine($"Полное {headerName}.\n");
- for (int i = 0; i < fullName.Length; i++)
- {
- Console.WriteLine($"{i + 1}. {fullName[i]} - {jobTitle[i]}");
- }
- }
- static void DeleteRecord(string headerName, ref string[] fullName, ref string[] jobTitle, ref string[] description)
- {
- int deleteNumber;
- string userInput;
- Console.WriteLine($"Удаление персонажа из {headerName}.");
- Console.Write($"Введите номер досье для удаления: ");
- userInput = Console.ReadLine();
- bool isNumber = int.TryParse(userInput, out deleteNumber);
- if (isNumber == true)
- {
- if (deleteNumber > 0 && deleteNumber <= fullName.Length)
- {
- Console.WriteLine($"{jobTitle[deleteNumber - 1]} {fullName[deleteNumber - 1]} будет удален из списка.");
- fullName = DecreaseArray(ref fullName, deleteNumber - 1);
- jobTitle = DecreaseArray(ref jobTitle, deleteNumber - 1);
- description = DecreaseArray(ref description, deleteNumber - 1);
- }
- else
- {
- DisplayErrorMesage("Номер за пределами диапазона");
- }
- }
- else
- {
- DisplayErrorMesage("Это не число!");
- }
- }
- static string[] DecreaseArray(ref string[] array, int deletedIndex)
- {
- int oldArrayIndex = 0;
- int newArrayIndex = 0;
- string[] deleteArray = new string[array.Length - 1];
- for (int i = 0; i < deleteArray.Length; i++)
- {
- if(deletedIndex == i)
- {
- ++oldArrayIndex;
- }
- deleteArray[newArrayIndex] = array[oldArrayIndex];
- newArrayIndex++;
- oldArrayIndex++;
- }
- array = deleteArray;
- return array;
- }
- static void FindName(string headerName, string[] fullName, string[] jobTitle, string[] description)
- {
- Console.Write($"Поиск по имени: ");
- string name = Console.ReadLine();
- bool nameIsFind = false;
- for (int i = 0; i < fullName.Length; i++)
- {
- if (name.ToLower() == fullName[i].ToLower())
- {
- Console.WriteLine($"{fullName[i]} - {jobTitle[i]} - {description[i]}");
- nameIsFind = true;
- }
- }
- if (nameIsFind == false)
- {
- Console.WriteLine($"В {headerName} нет человека с именем {name}");
- }
- }
- static void Exit(ref bool isExit)
- {
- isExit = true;
- }
- static void DisplayErrorMesage(string text)
- {
- ConsoleColor defaultColor = Console.ForegroundColor;
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine(text);
- Console.ForegroundColor = defaultColor;
- }
- }
- }
Add Comment
Please, Sign In to add comment