Advertisement
IGRODELOFF

Task51.4

Sep 1st, 2022 (edited)
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.77 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 Task51
  8. {
  9.     internal class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             DataBase dataBase = new DataBase();
  14.             dataBase.Work();
  15.         }
  16.     }
  17.  
  18.     class DataBase
  19.     {
  20.         private List<Criminal> _criminals;
  21.  
  22.         public DataBase()
  23.         {
  24.             _criminals = new List<Criminal>();
  25.             _criminals.Add(new Criminal("Лавров","Алексей", "Иванович", true, 160, 65, "Роговин"));
  26.             _criminals.Add(new Criminal("Сидоров", "Виктор", "Андреевич", false, 181, 93, "Перкек"));
  27.             _criminals.Add(new Criminal("Шульц", "Александр", "Измаилович", false, 174, 78, "Коми"));
  28.             _criminals.Add(new Criminal("Варналов", "Николай", "Владимирович", true, 156, 60, "Налак"));
  29.             _criminals.Add(new Criminal("Швалов", "Владимир", "Сергеевич", true, 178, 110, "Новоряк"));
  30.             _criminals.Add(new Criminal("Капустин", "Пётр", "Дмитриевич", true, 192, 98, "Ладык"));
  31.         }
  32.  
  33.         public void Work()
  34.         {
  35.             int growth;
  36.             int weight;
  37.  
  38.             string nationality;
  39.             string userInput;
  40.             string requestGrowthWeightNationality =
  41.                 "Введите рост, вес и национальность подозреваемого.";
  42.             string requestGrowth =
  43.                 "Введите рост: ";
  44.             string requestWeight =
  45.                 "Введите вес: ";
  46.             string requestNationality =
  47.                 "Введите национальность: ";
  48.             string errorInputData =
  49.                 "Ошибка. Вы велли данные некоректно. ";
  50.             string goodbye =
  51.                 "До свидания.";
  52.             const string answerExitYes =
  53.                 "Да";
  54.  
  55.             bool isExit = false;
  56.  
  57.             while (isExit != true)
  58.             {
  59.                 Console.WriteLine(requestGrowthWeightNationality);
  60.  
  61.                 Console.Write(requestGrowth);
  62.                 growth = UserUtils.GetInt(requestGrowth);
  63.  
  64.                 Console.Write(requestWeight);
  65.                 weight = UserUtils.GetInt(requestWeight);
  66.  
  67.                 Console.Write(requestNationality);
  68.                 nationality = UserUtils.GetString(requestNationality);
  69.  
  70.                 if (growth == 0 || weight == 0 || nationality == null)
  71.                 {
  72.                     Console.WriteLine(errorInputData);
  73.                 }
  74.                 else
  75.                 {
  76.                     var foundPeople = from people in _criminals
  77.                                        where people.Growth <= growth
  78.                                        && people.Weight <= weight
  79.                                        && people.Nationality.ToLower() == nationality.ToLower()
  80.                                        && people.IsCondemned == false
  81.                                        select people;
  82.  
  83.                     foreach (var people in foundPeople)
  84.                     {
  85.                         people.ShowCriminal();
  86.                     }
  87.                 }
  88.  
  89.                 Console.WriteLine(
  90.                     "1 - чтобы выйти.\n" +
  91.                     "Любая другая кнопка, продолжение работы программы.");
  92.  
  93.                 userInput = Console.ReadLine().ToLower();
  94.  
  95.                 if (userInput == answerExitYes)
  96.                 {
  97.                     isExit = true;
  98.                     Console.WriteLine(goodbye);
  99.                 }
  100.             }
  101.         }
  102.     }
  103.  
  104.     class Criminal
  105.     {
  106.         private string _surname;
  107.         private string _name;
  108.         private string _middleName;
  109.  
  110.         public bool IsCondemned { get; private set; }
  111.         public int Growth { get; private set; }
  112.         public int Weight { get; private set; }
  113.         public string Nationality { get; private set; }
  114.  
  115.         public Criminal(string surname, string name, string middleName, bool isCondemned, int growth, int weight, string nationality)
  116.         {
  117.             _surname = surname;
  118.             _name = name;
  119.             _middleName = middleName;
  120.             IsCondemned = isCondemned;
  121.             Growth = growth;
  122.             Weight = weight;
  123.             Nationality = nationality;
  124.         }
  125.  
  126.         public void ShowCriminal()
  127.         {
  128.             Console.WriteLine(
  129.                 $"ФИО ----------------- {_surname} {_name} {_middleName}\n" +
  130.                 $"Заключён под стражу - {IsCondemned}\n" +
  131.                 $"Рост ---------------- {Growth}\n" +
  132.                 $"Вес ----------------- {Weight}\n" +
  133.                 $"Национальность ------ {Nationality}");
  134.         }
  135.     }
  136.  
  137.     static class UserUtils
  138.     {
  139.         public static int GetInt(string requestInputNumber)
  140.         {
  141.             string errorConversion = "Ошибка,вы вели не цифры! Попробуйте снова.";
  142.             string userInput;
  143.  
  144.             bool resultConverted = false;
  145.  
  146.             int number = 0;
  147.  
  148.             while (resultConverted == false)
  149.             {
  150.                 Console.Write(requestInputNumber);
  151.                 userInput = Console.ReadLine();
  152.  
  153.                 resultConverted = int.TryParse(userInput, out int numberConvert);
  154.  
  155.                 if (resultConverted != true)
  156.                     Console.WriteLine(errorConversion);
  157.                 else
  158.                     number = numberConvert;
  159.             }
  160.             return number;
  161.         }
  162.  
  163.         public static string GetString(string requestNationality)
  164.         {
  165.             int errorCounter;
  166.             string error =
  167.                 "В написании нужно использовать только буквы!";
  168.             string userInput = null;
  169.  
  170.             bool correctWritten = false;
  171.  
  172.             while (correctWritten == false)
  173.             {
  174.                 errorCounter = 0;
  175.  
  176.                 Console.Write(requestNationality);
  177.                 userInput = Console.ReadLine();
  178.  
  179.                 foreach (char symbol in userInput)
  180.                 {
  181.                     if (char.IsLetter(symbol) == false)
  182.                     {
  183.                         Console.WriteLine(error);
  184.                         errorCounter++;
  185.                     }
  186.                 }
  187.  
  188.                 if (errorCounter == 0)
  189.                 {
  190.                     correctWritten = true;
  191.                 }
  192.             }
  193.             return userInput;
  194.         }
  195.     }
  196. }
  197.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement