Torgach

SearchCriminal

May 17th, 2021
705
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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.  
  14.             Menu menu = new Menu();
  15.             menu.Run();
  16.         }
  17.     }
  18.  
  19. class Menu
  20.     {
  21.         private Criminal wanted;
  22.         private List<Criminal> _wantedCriminals;
  23.         private List<Criminal> _criminals;
  24.  
  25.         public Menu()
  26.         {
  27.             wanted = null;
  28.             _wantedCriminals = null;
  29.             _criminals = new List<Criminal>()
  30.             {
  31.                 new Criminal("1", "1", false, 1, 1),
  32.                 new Criminal("Bob A.S.", "Russian", false, 80, 180),
  33.                 new Criminal("Anna T", "Frenchman", true, 60, 170),
  34.                 new Criminal("Michael P", "American", false, 100, 190),
  35.                 new Criminal("Largus V", "German", false, 120, 185)
  36.             };
  37.         }
  38.  
  39.         public void Run()
  40.         {
  41.             bool isRun = true;
  42.  
  43.             while(isRun)
  44.             {
  45.                 Console.WriteLine("[1] - ввести информацию о разыскиваемом\n" +
  46.                     "[2] - показать список подозреваемых");
  47.                 Console.Write("Ввод: ");
  48.  
  49.                 switch (Console.ReadLine())
  50.                 {
  51.                     case "1":
  52.                         SearchWanted();
  53.                         break;
  54.                     case "2":
  55.                         ShowWantedCriminals();
  56.                         break;
  57.                     case "3":
  58.                         isRun = false;
  59.                         break;
  60.                 }
  61.             }
  62.         }
  63.  
  64.         private void SearchWanted()
  65.         {
  66.             Console.Write("Введите ФИО приступника: ");
  67.             string fullName = Console.ReadLine();
  68.  
  69.             Console.Write("Введите национальность: ");
  70.             string nationality = Console.ReadLine();
  71.  
  72.             Console.Write("Введите вес: ");
  73.             if (IsInputVerified(out int weight) == false)
  74.             {
  75.                 return;
  76.             }
  77.  
  78.             Console.Write("Введите рост: ");
  79.             if(IsInputVerified(out int height) == false)
  80.             {
  81.                 return;
  82.             }
  83.  
  84.  
  85.             wanted = new Criminal(fullName, nationality , true, height, weight);
  86.  
  87.             var filteredCriminals = _criminals.TakeWhile(criminal => criminal.FullName == wanted.FullName
  88.             && criminal.Nationality == wanted.Nationality
  89.             && criminal.Height == wanted.Height
  90.             && criminal.Weight == wanted.Weight);
  91.  
  92.             _wantedCriminals = filteredCriminals.ToList();
  93.         }
  94.  
  95.         private void ShowWantedCriminals()
  96.         {
  97.             if(wanted == null)
  98.             {
  99.                 Console.WriteLine("Нет информации о подозреваемом!");
  100.                 return;
  101.             }
  102.  
  103.             Console.WriteLine($"Хар-ка Подозреваемого: Имя: {wanted.FullName}; Национальность: {wanted.Nationality}; " +
  104.                     $"Рост: {wanted.Height}; Вес: {wanted.Weight}");
  105.  
  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. }
RAW Paste Data