lovelyvook

Unit_50

Aug 17th, 2024 (edited)
418
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.46 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Ijunior
  6. {
  7.     internal class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             Detective detective = new Detective();
  12.             detective.Work();
  13.         }
  14.     }
  15.  
  16.     class Detective
  17.     {
  18.         private Database _database = new Database();
  19.  
  20.         public void Work()
  21.         {
  22.             const string CommandFindCriminal = "1";
  23.             const string CommandExit = "2";
  24.  
  25.             bool isWork = true;
  26.  
  27.             while (isWork)
  28.             {
  29.                 Console.Write($"{CommandFindCriminal} - искать преступника" +
  30.                               $"\n{CommandExit} - выйти из программы" +
  31.                               $"\nВведите номер: ");
  32.  
  33.                 switch (Console.ReadLine())
  34.                 {
  35.                     case CommandFindCriminal:
  36.                         FindCriminal();
  37.                         break;
  38.  
  39.                     case CommandExit:
  40.                         isWork = false;
  41.                         break;
  42.  
  43.                     default:
  44.                         Console.WriteLine("Некорректный ввод");
  45.                         break;
  46.                 }
  47.  
  48.                 Console.ReadKey();
  49.                 Console.Clear();
  50.             }
  51.         }
  52.  
  53.         private void FindCriminal()
  54.         {
  55.             Console.Write("Введите национальность подозреваемого: ");
  56.             string userNationality = Console.ReadLine().ToLower();
  57.             Console.Write("Введите рост подозреваемого: ");
  58.             int userHeight = Utils.ReadInt();
  59.             Console.Write("Введите вес подозреваемого: ");
  60.             int userWeight = Utils.ReadInt();
  61.  
  62.             var filteredCriminals = _database.Criminals.Where(criminal =>
  63.             criminal.Nationality == userNationality &&
  64.             criminal.Height == userHeight &&
  65.             criminal.Weight == userWeight &&
  66.             criminal.IsArrested == false).ToList();
  67.  
  68.             if (filteredCriminals.Count > 0)
  69.                 ShowCriminals(filteredCriminals);
  70.             else
  71.                 Console.WriteLine("По таким параметрам подозреваемых нет");
  72.         }
  73.  
  74.         private void ShowCriminals(List<Criminal> criminals)
  75.         {
  76.             foreach (Criminal criminal in criminals)
  77.             {
  78.                 Console.WriteLine($"{criminal.Name} - рост {criminal.Height}, вес {criminal.Weight}, национальность {criminal.Nationality}");
  79.             }
  80.         }
  81.     }
  82.  
  83.     class Database
  84.     {
  85.         private List<Criminal> _criminals;
  86.  
  87.         public Database()
  88.         {
  89.             _criminals = new List<Criminal>();
  90.             AddCriminals();
  91.         }
  92.  
  93.         public List<Criminal> Criminals => _criminals.ToList();
  94.  
  95.         private void AddCriminals()
  96.         {
  97.             _criminals.Add(new Criminal("Иванов Сергей Александрович", "русский", 180, 90, true));
  98.             _criminals.Add(new Criminal("Смирнова Екатерина Викторовна", "русский", 170, 80, false));
  99.             _criminals.Add(new Criminal("Петрова Анна Дмитриевна", "русский", 160, 60, true));
  100.             _criminals.Add(new Criminal("Гогия Леван Нодарович", "грузин", 170, 80, false));
  101.             _criminals.Add(new Criminal("Циклаури Нино Вахтанговна", "грузин", 170, 80, false));
  102.         }
  103.     }
  104.  
  105.     class Criminal
  106.     {
  107.         public Criminal(string name, string nationality, int height, int weight, bool isArrested)
  108.         {
  109.             Name = name;
  110.             Nationality = nationality;
  111.             Height = height;
  112.             Weight = weight;
  113.             IsArrested = isArrested;
  114.         }
  115.  
  116.         public string Name { get; }
  117.         public string Nationality { get; }
  118.         public int Height { get; }
  119.         public int Weight { get; }
  120.         public bool IsArrested { get; }
  121.     }
  122.  
  123.     class Utils
  124.     {
  125.         public static int ReadInt()
  126.         {
  127.             int number;
  128.  
  129.             while (int.TryParse(Console.ReadLine(), out number) == false)
  130.                 Console.Write("Некорректный ввод, введите повторно: ");
  131.  
  132.             return number;
  133.         }
  134.     }
  135. }
Advertisement
Add Comment
Please, Sign In to add comment