Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace CriminalSearch
- {
- public class Program
- {
- static void Main(string[] args)
- {
- CriminalSearchService criminalSearchService = new CriminalSearchService();
- criminalSearchService.Run();
- }
- }
- public class Criminal
- {
- public Criminal(string fullName, bool isInCustody, int height, int weight, string nationality)
- {
- FullName = fullName;
- IsInCustody = isInCustody;
- Height = height;
- Weight = weight;
- Nationality = nationality;
- }
- public string FullName { get; private set; }
- public bool IsInCustody { get; private set; }
- public int Height { get; private set; }
- public int Weight { get; private set; }
- public string Nationality { get; private set; }
- }
- public class CriminalCreator
- {
- public List<Criminal> CreateCriminals()
- {
- return new List<Criminal>
- {
- new Criminal("Иванов Иван Иванович", false, 180, 80, "Русский"),
- new Criminal("Петров Петр Петрович", true, 175, 75, "Русский"),
- new Criminal("Сидоров Сидор Сидорович", false, 180, 80, "Русский"),
- new Criminal("Варнов Михаил Александрович", false, 180, 80, "Русский"),
- new Criminal("Савельев Анатолий Максимович", true, 180, 80, "Русский"),
- new Criminal("Габдуллин Ринат Фаритович", false, 170, 70, "Татарин"),
- new Criminal("Юлдашев Айдар Маратович", false, 172, 68, "Башкир"),
- new Criminal("Кадыров Магомед Ахмедович", false, 178, 82, "Чеченец"),
- new Criminal("Петрова Анастасия Сергеевна", false, 165, 55, "Якут"),
- new Criminal("Семенов Алексей Николаевич", false, 175, 77, "Удмурт"),
- new Criminal("Морозова Мария Павловна", true, 168, 60, "Мордвин"),
- new Criminal("Чувашов Дмитрий Валерьевич", false, 173, 74, "Чуваш"),
- new Criminal("Бурятов Баир Дашиевич", false, 180, 85, "Бурят"),
- new Criminal("Григорян Армен Арменович", false, 177, 79, "Армянин"),
- new Criminal("Абдуллаев Рашид Магомедович", true, 182, 90, "Дагестанец"),
- };
- }
- }
- public class CriminalSearchService
- {
- private readonly List<Criminal> _criminals;
- public CriminalSearchService()
- {
- CriminalCreator creator = new CriminalCreator();
- _criminals = creator.CreateCriminals();
- }
- public void Run()
- {
- const string CommandToShowLibertyCriminals = "1";
- const string CommandToShowCustodyCriminals = "2";
- const string CommandToSearch = "3";
- const string CommandToExit = "4";
- bool isWorking = true;
- while (isWorking)
- {
- Console.Clear();
- Console.WriteLine("\n Меню:");
- Console.WriteLine($" {CommandToShowLibertyCriminals}. Показать всех потенциальных преступников на свободе");
- Console.WriteLine($" {CommandToShowCustodyCriminals}. Показать всех преступников в заключении");
- Console.WriteLine($" {CommandToSearch}. Поиск преступника по параметрам");
- Console.WriteLine($" {CommandToExit}. Выход");
- Console.Write(" Выберите пункт меню: ");
- string userInput = Console.ReadLine();
- switch (userInput)
- {
- case CommandToShowLibertyCriminals:
- ShowCriminals(_criminals.Where(criminal => criminal.IsInCustody == false).ToList(), "\nСписок 'потенциальные преступники на свободе':\n");
- break;
- case CommandToShowCustodyCriminals:
- ShowCriminals(_criminals.Where(criminal => criminal.IsInCustody).ToList(), "\nСписок 'преступники в заключении':\n");
- break;
- case CommandToSearch:
- SearchCriminals();
- break;
- case CommandToExit:
- isWorking = false;
- break;
- default:
- Console.WriteLine("Некорректный ввод. Попробуйте снова.");
- break;
- }
- Pause();
- }
- }
- private void SearchCriminals()
- {
- Console.Write("Введите рост: ");
- int height = int.Parse(Console.ReadLine());
- Console.Write("Введите вес: ");
- int weight = int.Parse(Console.ReadLine());
- Console.Write("Введите национальность: ");
- string nationality = Console.ReadLine();
- List<Criminal> foundCriminals = FindFreeCriminals(height, weight, nationality);
- ShowCriminals(foundCriminals, "\nНайденные преступники:\n");
- }
- private void PrintCriminal(Criminal criminal)
- {
- Console.WriteLine($"{criminal.FullName}, Рост: {criminal.Height}, Вес: {criminal.Weight}, Национальность: {criminal.Nationality}");
- }
- private List<Criminal> FindFreeCriminals(int height, int weight, string nationality)
- {
- return _criminals.Where(criminal => criminal.IsInCustody == false &&
- criminal.Height == height &&
- criminal.Weight == weight &&
- criminal.Nationality.Equals(nationality, StringComparison.OrdinalIgnoreCase)).ToList();
- }
- private void ShowCriminals(List<Criminal> criminals, string header)
- {
- if (criminals.Count == 0)
- {
- Console.WriteLine("\nПреступники по заданным параметрам не найдены.");
- }
- else
- {
- Console.WriteLine(header);
- foreach (Criminal criminal in criminals)
- {
- PrintCriminal(criminal);
- }
- }
- }
- private void Pause()
- {
- Console.WriteLine("\nНажмите любую клавишу для продолжения...");
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment