Torgach

TempCriminals

May 18th, 2021 (edited)
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.81 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace SearchCriminal
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Menu menu = new Menu();
  14.             menu.Run();
  15.         }
  16.     }
  17.  
  18. class Menu
  19.     {
  20.         private Criminal _wanted;
  21.         private List<Criminal> _wantedCriminals;
  22.         private List<Criminal> _criminals;
  23.  
  24.         public Menu()
  25.         {
  26.             _wanted = null;
  27.             _wantedCriminals = null;
  28.             _criminals = new List<Criminal>()
  29.             {
  30.                 new Criminal("Bob A.S.", "Russian", false, 80, 180),
  31.                 new Criminal("Anna T", "Frenchman", true, 60, 170),
  32.                 new Criminal("Michael P", "American", false, 100, 190),
  33.                 new Criminal("Largus V", "German", false, 120, 185)
  34.             };
  35.         }
  36.  
  37.         public void Run()
  38.         {
  39.             bool isRun = true;
  40.  
  41.             while(isRun)
  42.             {
  43.                 Console.WriteLine("[1] - ввести информацию о разыскиваемом\n" +
  44.                     "[2] - показать список подозреваемых");
  45.                 Console.Write("Ввод: ");
  46.  
  47.                 switch (Console.ReadLine())
  48.                 {
  49.                     case "1":
  50.                         SearchWanted();
  51.                         break;
  52.                     case "2":
  53.                         ShowWantedCriminals();
  54.                         break;
  55.                     case "3":
  56.                         isRun = false;
  57.                         break;
  58.                 }
  59.             }
  60.         }
  61.  
  62.         private void SearchWanted()
  63.         {
  64.             Console.Write("Введите ФИО приступника: ");
  65.             string fullName = Console.ReadLine();
  66.  
  67.             Console.Write("Введите национальность: ");
  68.             string nationality = Console.ReadLine();
  69.  
  70.             Console.Write("Введите вес: ");
  71.             if (IsInputVerified(out int weight) == false)
  72.             {
  73.                 return;
  74.             }
  75.  
  76.             Console.Write("Введите рост: ");
  77.             if(IsInputVerified(out int height) == false)
  78.             {
  79.                 return;
  80.             }
  81.  
  82.  
  83.             _wanted = new Criminal(fullName, nationality , false, weight, height);
  84.  
  85.             var filteredCriminals = _criminals.Where(criminal => criminal.IsImprisoned == false
  86.                                     && criminal.FullName == _wanted.FullName
  87.                                     && criminal.Nationality == _wanted.Nationality
  88.                                     && criminal.Height == _wanted.Height
  89.                                     && criminal.Weight == _wanted.Weight);
  90.  
  91.             _wantedCriminals = filteredCriminals.ToList();
  92.         }
  93.  
  94.         private void ShowWantedCriminals()
  95.         {
  96.             if(_wanted == null)
  97.             {
  98.                 Console.WriteLine("Нет информации о подозреваемом!");
  99.                 return;
  100.             }
  101.  
  102.             Console.WriteLine($"Хар-ка Подозреваемого: Имя: {_wanted.FullName}; Национальность: {_wanted.Nationality}; " +
  103.                     $"Рост: {_wanted.Height}; Вес: {_wanted.Weight}");
  104.  
  105.             Console.WriteLine("Подходящие подозреваемые: ");
  106.             foreach (var criminal in _wantedCriminals)
  107.             {
  108.                 Console.WriteLine($"Имя: {criminal.FullName}; Национальность: {criminal.Nationality}; " +
  109.                     $"Рост: {criminal.Height}; Вес: {criminal.Weight}");
  110.             }
  111.         }
  112.  
  113.         private bool IsInputVerified(out int userInput)
  114.         {
  115.             if(int.TryParse(Console.ReadLine(), out userInput) == false)
  116.             {
  117.                 Console.WriteLine("Ошибка ввода!");
  118.                 return false;
  119.             }
  120.             return true;
  121.         }
  122.     }
  123.  
  124.     class Criminal
  125.     {
  126.         public string FullName { get; private set; }
  127.         public string Nationality { get; private set; }
  128.         public bool IsImprisoned { get; private set; }
  129.         public int Weight { get; private set; }
  130.         public int Height { get; private set; }
  131.  
  132.         public Criminal(string fullName, string nationality, bool isImprisoned, int weight, int height)
  133.         {
  134.             FullName = fullName;
  135.             Nationality = nationality;
  136.             IsImprisoned = isImprisoned;
  137.             Weight = weight;
  138.             Height = height;
  139.         }
  140.  
  141.         public void Imprison()
  142.         {
  143.             IsImprisoned = true;
  144.         }
  145.  
  146.         public void ReleaseFromPrison()
  147.         {
  148.             IsImprisoned = false;
  149.         }
  150.     }
  151. }
Add Comment
Please, Sign In to add comment