Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace CSLightFirst
- {
- class Program
- {
- private static void Main()
- {
- List<Criminal> criminals = GenerateCriminals();
- while (true)
- {
- Console.WriteLine("Выберите, что Вам нужно сделать:\n" +
- " 1 - Выборка по росту\n" +
- " 2 - Выборка по весу\n" +
- " 3 - Выборка по национальности\n" +
- " 4 - Показать всех преступников\n");
- Console.Write("Ваш ответ: ");
- switch (Console.ReadLine())
- {
- case "1":
- MakeHeightSelection(criminals.Where(criminal => !criminal.IsDetained));
- break;
- case "2":
- MakeWeightSelection(criminals.Where(criminal => !criminal.IsDetained));
- break;
- case "3":
- MakeNationalitySelection(criminals.Where(criminal => !criminal.IsDetained));
- break;
- case "4":
- ShowAllCriminals(criminals);
- break;
- default:
- Console.WriteLine("Некорректное введенное значение, попробуйте ещё раз...");
- break;
- }
- }
- }
- private static void MakeNationalitySelection(IEnumerable<Criminal> criminals)
- {
- Nationality nationality = (Nationality)GetUserInput("Введите требуемую национальность: ");
- ShowSelection(criminals.Where(criminal => criminal.Nationality == nationality));
- }
- private static void MakeWeightSelection(IEnumerable<Criminal> criminals)
- {
- int weight = GetUserInput("Введите требуемый вес: ");
- ShowSelection(criminals.Where(criminal => criminal.Weight == weight));
- }
- private static void MakeHeightSelection(IEnumerable<Criminal> criminals)
- {
- int height = GetUserInput("Введите требуемый рост: ");
- ShowSelection(criminals.Where(criminal => criminal.Height == height));
- }
- private static int GetUserInput(string text)
- {
- Console.Clear();
- Console.Write(text);
- if (int.TryParse(Console.ReadLine(), out int parameter))
- return parameter;
- return 0;
- }
- private static void ShowSelection(IEnumerable<Criminal> selection)
- {
- int count = 0;
- Console.WriteLine();
- foreach (Criminal criminal in selection)
- {
- count++;
- criminal.ShowInfo();
- }
- if (count == 0)
- {
- Console.Clear();
- Console.WriteLine("Не найдено ни одного личного дела по вашему запросу.\n");
- }
- }
- private static List<Criminal> GenerateCriminals()
- {
- Random rand = new Random();
- string[] names = { "Джон", "Хью", "Энн", "Джек", "Уил", "Марк", "Лиз", "Майкл", "Дэвис" };
- string[] surnames = { "Сильвер", "Морган", "Смит", "Джонс", "Уильямс", "Сноу", "Миллер", "Борк" };
- List<Criminal> criminals = new List<Criminal>(rand.Next(10, 16));
- for (int i = 0; i < criminals.Capacity; i++)
- criminals.Add(new Criminal(
- names[rand.Next(0, names.Length)],
- surnames[rand.Next(0, surnames.Length)],
- rand.Next(0, 2) == 0,
- rand.Next(160, 200),
- rand.Next(65, 100),
- (Nationality)rand.Next(0, 5)));
- return criminals;
- }
- private static void ShowAllCriminals(List<Criminal> criminals)
- {
- Console.Clear();
- Console.WriteLine("Преступники, находящиеся в базе:\n");
- foreach (Criminal criminal in criminals)
- criminal.ShowInfo();
- }
- }
- class Criminal
- {
- public string Name { get; }
- public string Surname { get; }
- public bool IsDetained { get; }
- public int Height { get; }
- public int Weight { get; }
- public Nationality Nationality { get; }
- public Criminal(string name, string surname, bool isDetained, int height, int weight, Nationality nationality)
- {
- Name = name;
- Surname = surname;
- IsDetained = isDetained;
- Height = height;
- Weight = weight;
- Nationality = nationality;
- }
- public void ShowInfo()
- {
- string temp = IsDetained ? "Находится под стражей" : "На свободе";
- Console.WriteLine($" Преступник: {Name} {Surname}\n" +
- $" {temp}\n" +
- $" Рост: {Height}\n" +
- $" Вес: {Weight}\n" +
- $" Национальность: {Nationality}\n");
- }
- }
- public enum Nationality
- {
- Русский,
- Казах,
- Американец,
- Француз,
- Немец
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement