Advertisement
VodVas

Поиск преступника

Jan 15th, 2024 (edited)
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.92 KB | Software | 0 0
  1. namespace Поиск_преступника2
  2. {
  3.     internal class Program
  4.     {
  5.         static void Main(string[] args)
  6.         {
  7.             DataBase dataBase = new DataBase();
  8.  
  9.             dataBase.Work();
  10.         }
  11.     }
  12.  
  13.     class DataBase
  14.     {
  15.         private List<Criminal> _criminals = new List<Criminal>();
  16.  
  17.         public DataBase()
  18.         {
  19.             _criminals.Add(new Criminal("Альфонсе", "Капоне", "Габриэль", 85, 179, "Американец", false));
  20.             _criminals.Add(new Criminal("Пабло", "Эскобар", "Гавирия", 70, 166, "Колумбиец", false));
  21.             _criminals.Add(new Criminal("Александр", "Николаевич", "Спесивцев", 80, 170, "Русский", true));
  22.         }
  23.  
  24.         public void Work()
  25.         {
  26.             ShowAllCriminals();
  27.  
  28.             SearchCriminal();
  29.         }
  30.  
  31.         private void SearchCriminal()
  32.         {
  33.             int minGrowth = 30;
  34.             int maxGrowth = 230;
  35.             int minWeight = 40;
  36.             int maxWeight = 300;
  37.  
  38.             Console.Write("\nВведите рост: ");
  39.  
  40.             int growth = Utility.GetInputNumber();
  41.  
  42.             Console.Write("Введите вес: ");
  43.  
  44.             int weight = Utility.GetInputNumber();
  45.  
  46.             Console.Write("Введите национальность: ");
  47.  
  48.             string nationality = Utility.GetInputText();
  49.  
  50.             if (growth <= minGrowth || growth >= maxGrowth && weight <= minWeight || weight >= maxWeight)
  51.             {
  52.                 Console.ForegroundColor = ConsoleColor.Red;
  53.                 Console.WriteLine("Ошибка ввода данных, введите данные еще раз");
  54.                 Console.ForegroundColor = ConsoleColor.White;
  55.  
  56.                 SearchCriminal();
  57.             }
  58.             else
  59.             {
  60.                 var filteredCriminal = _criminals.Where(criminal => criminal.Growth == growth
  61.                 && criminal.Weight == weight
  62.                 && criminal.Nationality.ToUpper() == nationality.ToUpper()
  63.                 && criminal.IsPrisoner == false);
  64.  
  65.                 foreach (var criminal in filteredCriminal)
  66.                 {
  67.                     criminal.ShowDescription();
  68.                 }
  69.  
  70.                 if (filteredCriminal.Count() == 0)
  71.                 {
  72.                     Console.ForegroundColor = ConsoleColor.Red;
  73.                     Console.WriteLine("Преступник не найден в базе или уже под стражей");
  74.                     Console.ForegroundColor = ConsoleColor.White;
  75.                 }
  76.             }
  77.         }
  78.  
  79.         private void ShowAllCriminals()
  80.         {
  81.             Console.WriteLine("Преступники в базе:");
  82.  
  83.             foreach (var criminal in _criminals)
  84.             {
  85.                 criminal.ShowDescription();
  86.             }
  87.         }
  88.     }
  89.  
  90.     class Criminal
  91.     {
  92.         private string _name;
  93.         private string _surname;
  94.         private string _middleName;
  95.  
  96.         public Criminal(string name, string surname, string middleName, int weight, int growth, string nationality, bool isPrisoner)
  97.         {
  98.             _name = name;
  99.             _surname = surname;
  100.             _middleName = middleName;
  101.             Weight = weight;
  102.             Growth = growth;
  103.             Nationality = nationality;
  104.             IsPrisoner = isPrisoner;
  105.         }
  106.  
  107.         public int Weight { get; private set; }
  108.         public int Growth { get; private set; }
  109.         public string Nationality { get; private set; }
  110.         public bool IsPrisoner { get; private set; }
  111.  
  112.         public void ShowDescription()
  113.         {
  114.             Console.WriteLine($"ФИО: {_name} {_surname} {_middleName}|| Рост: {Growth} || Вес: {Weight} || Национальность: {Nationality} || Заключенный: {IsPrisoner}");
  115.         }
  116.     }
  117.  
  118.     class Utility
  119.     {
  120.         public static int GetInputNumber()
  121.         {
  122.             int number;
  123.  
  124.             while (int.TryParse(Console.ReadLine(), out number) == false)
  125.             {
  126.                 Console.WriteLine("Введено не число, попробуйте еще раз: ");
  127.             }
  128.  
  129.             return number;
  130.         }
  131.  
  132.         public static string GetInputText()
  133.         {
  134.             string text = Console.ReadLine();
  135.  
  136.             foreach (char symbol in text)
  137.             {
  138.                 if (char.IsLetter(symbol) == false || text == null)
  139.                 {
  140.                     Console.ForegroundColor = ConsoleColor.Red;
  141.                     Console.WriteLine("Ошибка ввода данных, введите корректные данные: ");
  142.                     Console.ForegroundColor = ConsoleColor.White;
  143.  
  144.                     GetInputText();
  145.  
  146.                     return null;
  147.                 }
  148.             }
  149.  
  150.             return text;
  151.         }
  152.     }
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement