vovanhik_24

51

Aug 6th, 2025 (edited)
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.13 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace CriminalSearch
  6. {
  7.     public class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             CriminalSearchService criminalSearchService = new CriminalSearchService();
  12.             criminalSearchService.Run();
  13.         }
  14.     }
  15.  
  16.     public class Criminal
  17.     {
  18.         public Criminal(string fullName, bool isInCustody, int height, int weight, string nationality)
  19.         {
  20.             FullName = fullName;
  21.             IsInCustody = isInCustody;
  22.             Height = height;
  23.             Weight = weight;
  24.             Nationality = nationality;
  25.         }
  26.  
  27.         public string FullName { get; private set; }
  28.         public bool IsInCustody { get; private set; }
  29.         public int Height { get; private set; }
  30.         public int Weight { get; private set; }
  31.         public string Nationality { get; private set; }
  32.     }
  33.  
  34.     public class CriminalCreator
  35.     {
  36.         public List<Criminal> CreateCriminals()
  37.         {
  38.             return new List<Criminal>
  39.             {
  40.                 new Criminal("Иванов Иван Иванович", false, 180, 80, "Русский"),
  41.                 new Criminal("Петров Петр Петрович", true, 175, 75, "Русский"),
  42.                 new Criminal("Сидоров Сидор Сидорович", false, 180, 80, "Русский"),
  43.                 new Criminal("Варнов Михаил Александрович", false, 180, 80, "Русский"),
  44.                 new Criminal("Савельев Анатолий Максимович", true, 180, 80, "Русский"),
  45.                 new Criminal("Габдуллин Ринат Фаритович", false, 170, 70, "Татарин"),
  46.                 new Criminal("Юлдашев Айдар Маратович", false, 172, 68, "Башкир"),
  47.                 new Criminal("Кадыров Магомед Ахмедович", false, 178, 82, "Чеченец"),
  48.                 new Criminal("Петрова Анастасия Сергеевна", false, 165, 55, "Якут"),
  49.                 new Criminal("Семенов Алексей Николаевич", false, 175, 77, "Удмурт"),
  50.                 new Criminal("Морозова Мария Павловна", true, 168, 60, "Мордвин"),
  51.                 new Criminal("Чувашов Дмитрий Валерьевич", false, 173, 74, "Чуваш"),
  52.                 new Criminal("Бурятов Баир Дашиевич", false, 180, 85, "Бурят"),
  53.                 new Criminal("Григорян Армен Арменович", false, 177, 79, "Армянин"),
  54.                 new Criminal("Абдуллаев Рашид Магомедович", true, 182, 90, "Дагестанец"),
  55.             };
  56.         }
  57.     }
  58.  
  59.     public class CriminalSearchService
  60.     {
  61.         private readonly List<Criminal> _criminals;
  62.  
  63.         public CriminalSearchService()
  64.         {
  65.             CriminalCreator creator = new CriminalCreator();
  66.             _criminals = creator.CreateCriminals();
  67.         }
  68.  
  69.         public void Run()
  70.         {
  71.             const string CommandToShowLibertyCriminals = "1";
  72.             const string CommandToShowCustodyCriminals = "2";
  73.             const string CommandToSearch = "3";
  74.             const string CommandToExit = "4";
  75.  
  76.             bool isWorking = true;
  77.  
  78.             while (isWorking)
  79.             {
  80.                 Console.Clear();
  81.                 Console.WriteLine("\n Меню:");
  82.                 Console.WriteLine($" {CommandToShowLibertyCriminals}. Показать всех потенциальных преступников на свободе");
  83.                 Console.WriteLine($" {CommandToShowCustodyCriminals}. Показать всех преступников в заключении");
  84.                 Console.WriteLine($" {CommandToSearch}. Поиск преступника по параметрам");
  85.                 Console.WriteLine($" {CommandToExit}. Выход");
  86.                 Console.Write(" Выберите пункт меню: ");
  87.  
  88.                 string userInput = Console.ReadLine();
  89.  
  90.                 switch (userInput)
  91.                 {
  92.                     case CommandToShowLibertyCriminals:
  93.                         ShowCriminals(_criminals.Where(criminal => criminal.IsInCustody == false).ToList(), "\nСписок 'потенциальные преступники на свободе':\n");
  94.                         break;
  95.  
  96.                     case CommandToShowCustodyCriminals:
  97.                         ShowCriminals(_criminals.Where(criminal => criminal.IsInCustody).ToList(), "\nСписок 'преступники в заключении':\n");
  98.                         break;
  99.  
  100.                     case CommandToSearch:
  101.                         SearchCriminals();
  102.                         break;
  103.  
  104.                     case CommandToExit:
  105.                         isWorking = false;
  106.                         break;
  107.  
  108.                     default:
  109.                         Console.WriteLine("Некорректный ввод. Попробуйте снова.");
  110.                         break;
  111.                 }
  112.  
  113.                 Pause();
  114.             }
  115.         }
  116.  
  117.         private void SearchCriminals()
  118.         {
  119.             Console.Write("Введите рост: ");
  120.             int height = int.Parse(Console.ReadLine());
  121.  
  122.             Console.Write("Введите вес: ");
  123.             int weight = int.Parse(Console.ReadLine());
  124.  
  125.             Console.Write("Введите национальность: ");
  126.             string nationality = Console.ReadLine();
  127.  
  128.             List<Criminal> foundCriminals = FindFreeCriminals(height, weight, nationality);
  129.             ShowCriminals(foundCriminals, "\nНайденные преступники:\n");
  130.         }
  131.  
  132.         private void PrintCriminal(Criminal criminal)
  133.         {
  134.             Console.WriteLine($"{criminal.FullName}, Рост: {criminal.Height}, Вес: {criminal.Weight}, Национальность: {criminal.Nationality}");
  135.         }
  136.  
  137.         private List<Criminal> FindFreeCriminals(int height, int weight, string nationality)
  138.         {
  139.             return _criminals.Where(criminal => criminal.IsInCustody == false &&
  140.             criminal.Height == height &&
  141.             criminal.Weight == weight &&
  142.             criminal.Nationality.Equals(nationality, StringComparison.OrdinalIgnoreCase)).ToList();
  143.         }
  144.  
  145.         private void ShowCriminals(List<Criminal> criminals, string header)
  146.         {
  147.             if (criminals.Count == 0)
  148.             {
  149.                 Console.WriteLine("\nПреступники по заданным параметрам не найдены.");
  150.             }
  151.             else
  152.             {
  153.                 Console.WriteLine(header);
  154.  
  155.                 foreach (Criminal criminal in criminals)
  156.                 {
  157.                     PrintCriminal(criminal);
  158.                 }
  159.             }
  160.         }
  161.  
  162.         private void Pause()
  163.         {
  164.             Console.WriteLine("\nНажмите любую клавишу для продолжения...");
  165.             Console.ReadKey();
  166.         }
  167.     }
  168. }
Advertisement
Add Comment
Please, Sign In to add comment