Advertisement
Fle2x

7.1.2

Jul 15th, 2021
1,166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.26 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. namespace _7._1
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             Database database = new Database();
  11.  
  12.             database.AddCriminal(new Criminal ("Петя", false, 150, 70, "Русский"));
  13.             database.AddCriminal(new Criminal ("Артем", false, 150, 70, "Русский"));
  14.             database.AddCriminal(new Criminal ("Женька", true, 150, 70, "Русский"));
  15.             database.AddCriminal(new Criminal ("Герман", true, 160, 80, "Немец"));
  16.             database.AddCriminal(new Criminal ("Ян", false, 140, 50, "Китаец"));
  17.             database.AddCriminal(new Criminal ("Роберт", true, 180, 90, "Братанец"));
  18.             database.AddCriminal(new Criminal ("Саул", false, 170, 70, "Казах"));
  19.             database.AddCriminal(new Criminal ("Олег", true, 165, 70, "Кореец"));
  20.  
  21.             Console.WriteLine("Список всех заключенных:\n");
  22.             database.ShowAllCriminals();
  23.  
  24.             int height = ReadInt("\nВведите рост:");
  25.  
  26.             int weight = ReadInt("Введите вес:");
  27.  
  28.             Console.WriteLine("Введите национальность:");
  29.             string nationality = Convert.ToString(Console.ReadLine().ToUpper());
  30.  
  31.             database.FindCriminals(height, weight, nationality);
  32.  
  33.             Console.ReadKey();
  34.         }
  35.  
  36.         static int ReadInt(string text)
  37.         {
  38.             bool isExit = false;
  39.             int number = 0;
  40.             while (!isExit)
  41.             {
  42.                 Console.WriteLine(text);
  43.                 bool success = Int32.TryParse(Console.ReadLine(), out number);
  44.  
  45.                 if (success)
  46.                 {
  47.                     return number;
  48.                 }
  49.                 else
  50.                 {
  51.                     Console.WriteLine("Попробуйте еще раз!");
  52.                 }
  53.             }
  54.             return number;
  55.         }
  56.     }
  57.  
  58.     class Criminal
  59.     {
  60.         public string Fullname { get; private set; }
  61.         public bool IsPrisoned{ get; private set; }
  62.         public int Height { get; private set; }
  63.  
  64.         public int Weight { get; private set; }
  65.         public string Nationality { get; private set; }
  66.  
  67.         public Criminal(string fullname, bool isPrisioner, int height, int weight, string nationality)
  68.         {
  69.             Fullname = fullname;
  70.             IsPrisoned = isPrisioner;
  71.             Height = height;
  72.             Weight = weight;
  73.             Nationality = nationality.ToUpper();
  74.         }
  75.  
  76.         public void ShowInfo()
  77.         {
  78.             Console.WriteLine($"ФИО: {Fullname}. Рост: {Height}. Вес: {Weight}. Национальность: {Nationality}");
  79.         }
  80.     }
  81.  
  82.     class Database
  83.     {
  84.         private List<Criminal> _criminals;
  85.  
  86.         public Database() {
  87.             _criminals = new List<Criminal>();
  88.         }
  89.  
  90.         public void AddCriminal(Criminal criminal)
  91.         {
  92.             _criminals.Add(criminal);
  93.         }
  94.  
  95.         public void ShowAllCriminals()
  96.         {
  97.             foreach (var criminal in _criminals)
  98.             {
  99.                 criminal.ShowInfo();
  100.             }
  101.         }
  102.  
  103.         public void FindCriminals(int height, int weight, string nationality)
  104.         {
  105.             var filteredCriminals = from Criminal crimanals in _criminals
  106.                                     where crimanals.Height == height &&
  107.                                           crimanals.Weight == weight &&
  108.                                           crimanals.IsPrisoned == false &&
  109.                                           crimanals.Nationality == nationality.ToUpper()
  110.                                     select crimanals;
  111.  
  112.             Console.WriteLine("\nРезультат поиска: ");
  113.             if (filteredCriminals.Any())
  114.             {
  115.                 foreach (var criminal in filteredCriminals)
  116.                 {
  117.  
  118.                     criminal.ShowInfo();
  119.                 }
  120.             }
  121.             else
  122.             {
  123.                 Console.WriteLine("По вашему запросу нет результатов");
  124.             }
  125.         }
  126.     }
  127. }
  128.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement