static void Main(string[] args) { // Список футболистов, фильтр List <Football_players> football_Players = new List <Football_players>(); Football_players.filter = new Football_players_filter(); string ReadCh; // Главное меню do { // Вывод главного меню Console.WriteLine("Меню:"); Console.WriteLine("1. Ввод нового футболиста"); Console.WriteLine("2. Вывод футболистов"); Console.WriteLine("3. Ввод значений фильтра"); Console.WriteLine("4. Вывод отфильтрованного списка футболистов"); // Пользватель выбирает один пункт из главного меню ReadCh = Console.ReadLine(); // Обработка выбора пользователя switch (ReadCh) { case "1": // Ввод нового футолиста Console.Clear(); Console.WriteLine("Ввод нового футболиста: \n"); Football_players.AddNewElement(football_Players); break; case "2": // Вывод футболистов Console.Clear(); Console.WriteLine("Вывод полного списка футболистов: "); Football_players.OutFullList(football_Players); break; case "3": // Ввод значений фильтра Console.Clear(); Console.WriteLine("Ввод фильтра: "); Football_players.filter.AddFilter(); break; case "4": // Вывод отфильтрованного списка Console.Clear(); Console.WriteLine("Вывод отфильтрованного списка футболистов: "); Football_players.OutFilterList(football_Players); break; default: // Выход из программы Environment.Exit(0); break; } // Очистка экрана Console.ReadKey(); Console.Clear(); } while (true); }
/// <summary> /// Вывод одного футболиста /// </summary> /// <param name="player">Футболист</param> public static void OutFootballPlayer(Football_players player) { Console.Write("|{0,-15}|", player.Surname); Console.Write("|{0,-14}|", player.Birthday.ToString("MM/dd/yyyy")); Console.Write("|{0,-22}|", player.PlaceOfBorn); Console.Write("|{0,-14}|", player.Role); Console.Write("|{0,-14}|", player.CountGames); Console.Write("|{0,-22}|", player.CountYellowLabel); Console.Write("\n"); }
/// <summary> /// Добавление нового футболиста /// </summary> /// <param name="players">Список футболистов</param> public static void AddNewElement(List <Football_players> players) { // Новый футболист Football_players player = new Football_players(); // Ввод фамилии Console.WriteLine("Введите фамилию футболиста: "); player.Surname = Console.ReadLine(); while (!IsRussianStr(player.Surname)) { Console.WriteLine("Фамилия может содержать только буквы русского алфавита. Повторите ввод:"); player.Surname = Console.ReadLine(); } // Ввод даты рождения Console.WriteLine("Введите дату рождения в формате dd.mm.yyyy: "); string str = Console.ReadLine(); do { try { DateTime date = Convert.ToDateTime(str); TimeSpan dt = DateTime.Now.Subtract(date); int year = new DateTime(dt.Ticks).Year - 1; if (year < 16 || year > 45) { Console.WriteLine("Футболист должен быть старше 16 и младше 45. Повтрите ввод: "); str = Console.ReadLine(); } player.Birthday = date; } catch { Console.WriteLine("Неправильно ввели дату рождения. Повтрите ввод: "); str = Console.ReadLine(); } } while (!Regex.IsMatch(str, @"\d{2}.\d{2}.\d{4}")); // Ввод места рождения Console.WriteLine("Введите место рождения: "); player.PlaceOfBorn = Console.ReadLine(); while (!IsRussianStr(player.PlaceOfBorn)) { Console.WriteLine("Место рождения может содержать только буквы русского алфавита. Повторите ввод:"); player.PlaceOfBorn = Console.ReadLine(); } // Ввод амплуа Console.WriteLine("Введите амплуа [1 - вратарь, 2 - защитник, 3 - полузащитник, 4 - нападающий]"); int amplua; bool isNum; do { // Проверяем, является ли числом вводимая строка isNum = int.TryParse(Console.ReadLine(), out amplua); switch (amplua) { case 1: // Вратарь player.Role = Roles.Goalkeeper; break; case 2: // Защитник player.Role = Roles.Quarterback; break; case 3: // Полузащитник player.Role = Roles.Halfback; break; case 4: // Нападающий player.Role = Roles.Forward; break; default: Console.WriteLine("Неправильно ввели амплуа."); break; } } while (!isNum); // Ввод количества игр Console.WriteLine("Введите количество игр"); bool ok = false; while (!ok) { try { uint countGames = Convert.ToUInt32(Console.ReadLine()); player.CountGames = countGames; ok = true; } catch (Exception e) { Console.WriteLine("Количество игр не может быть отрицательным. Повторите ввод: "); } } // Ввод количества жёлтых карточек Console.WriteLine("Введите количество жёлтых карточек"); ok = false; while (!ok) { try { uint countYellowLabel = Convert.ToUInt32(Console.ReadLine()); player.CountYellowLabel = countYellowLabel; ok = true; } catch (Exception e) { Console.WriteLine("Количество игр не может быть отрицательным. Повторите ввод: "); } } // Добавление нового футолиста players.Add(player); Console.WriteLine("Футболист добавлен! Нажмите enter для возврата в меню"); }