Askor

Hw39

Dec 19th, 2021 (edited)
318
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.53 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 DetectiveApp
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             DetectiveApp detectiveApp = new DetectiveApp();
  14.             detectiveApp.Work();
  15.             Console.ReadKey();
  16.         }
  17.     }
  18.  
  19.     class DetectiveApp
  20.     {
  21.         private List<Criminal> _criminals = new List<Criminal>();
  22.  
  23.         public DetectiveApp()
  24.         {
  25.             Fill();
  26.         }
  27.  
  28.         public void Work()
  29.         {
  30.             int weight;
  31.             int height;
  32.             string nationality;
  33.  
  34.             Console.WriteLine("Input weight:");
  35.             weight = GetNumber();
  36.  
  37.             Console.WriteLine("Input height:");
  38.             height = GetNumber();
  39.  
  40.             Console.WriteLine("Input nationality:");
  41.             nationality = Console.ReadLine().ToUpper();
  42.  
  43.             ShowFilteredCriminals(weight, height, nationality);
  44.         }
  45.  
  46.         private void ShowFilteredCriminals(int weight, int height, string nationality)
  47.         {
  48.             var filteredCriminals = _criminals.Where(criminal => criminal.Weight == weight && criminal.Height == height && criminal.Nationality.ToUpper() == nationality && criminal.InDetention == false);
  49.  
  50.             if (filteredCriminals.Count() == 0)
  51.             {
  52.                 Console.WriteLine("Such a criminal not been found");
  53.             }
  54.             else
  55.             {
  56.                 foreach (var criminal in filteredCriminals)
  57.                 {
  58.                     criminal.ShowInfo();
  59.                 }
  60.             }
  61.         }
  62.  
  63.         private int GetNumber()
  64.         {
  65.             int number;
  66.  
  67.             while (int.TryParse(Console.ReadLine(), out number) == false)
  68.             {
  69.                 Console.Write("Input number: ");
  70.             }
  71.  
  72.             return number;
  73.         }
  74.  
  75.         private void Fill()
  76.         {
  77.             _criminals.Add(new Criminal("Kyle Shelton", Nationality.Albanian, 170, 70, true));
  78.             _criminals.Add(new Criminal("Oscar Miles", Nationality.French, 175, 65, false));
  79.             _criminals.Add(new Criminal("Bobby Fletcher", Nationality.French, 180, 79, true));
  80.             _criminals.Add(new Criminal("Mario Newton", Nationality.Greek, 165, 57, false));
  81.             _criminals.Add(new Criminal("Tristan Erickson", Nationality.Italian, 190, 73, false));
  82.             _criminals.Add(new Criminal("Andy Larkin ", Nationality.Brazilian, 175, 63, true));
  83.         }
  84.     }
  85.  
  86.     class Criminal
  87.     {
  88.         private Nationality _nationality;
  89.         public string FullName { get; private set; }
  90.         public int Height { get; private set; }
  91.         public int Weight { get; private set; }
  92.         public bool InDetention { get; private set; }
  93.  
  94.         public string Nationality => _nationality.ToString();
  95.  
  96.         public Criminal(string name, Nationality nationality, int height, int weight, bool inDetention = false)
  97.         {
  98.             FullName = name;
  99.             _nationality = nationality;
  100.             Height = height;
  101.             Weight = weight;
  102.             InDetention = inDetention;
  103.         }
  104.  
  105.         public void ShowInfo()
  106.         {
  107.             Console.WriteLine($"Full name - {FullName}, Nationality - {_nationality}, Height - {Height}, Weight - {Weight}, InDetention - {InDetention}");
  108.         }
  109.     }
  110.  
  111.     enum Nationality
  112.     {
  113.         Albanian,
  114.         Brazilian,
  115.         Cuban,
  116.         French,
  117.         Greek,
  118.         Italian
  119.     }
  120. }
  121.  
  122.  
Advertisement
Add Comment
Please, Sign In to add comment