Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace Ijunior
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- Detective detective = new Detective();
- detective.Work();
- }
- }
- class Detective
- {
- private Database _database = new Database();
- public void Work()
- {
- const string CommandFindCriminal = "1";
- const string CommandExit = "2";
- bool isWork = true;
- while (isWork)
- {
- Console.Write($"{CommandFindCriminal} - искать преступника" +
- $"\n{CommandExit} - выйти из программы" +
- $"\nВведите номер: ");
- switch (Console.ReadLine())
- {
- case CommandFindCriminal:
- FindCriminal();
- break;
- case CommandExit:
- isWork = false;
- break;
- default:
- Console.WriteLine("Некорректный ввод");
- break;
- }
- Console.ReadKey();
- Console.Clear();
- }
- }
- private void FindCriminal()
- {
- Console.Write("Введите национальность подозреваемого: ");
- string userNationality = Console.ReadLine().ToLower();
- Console.Write("Введите рост подозреваемого: ");
- int userHeight = Utils.ReadInt();
- Console.Write("Введите вес подозреваемого: ");
- int userWeight = Utils.ReadInt();
- var filteredCriminals = _database.Criminals.Where(criminal =>
- criminal.Nationality == userNationality &&
- criminal.Height == userHeight &&
- criminal.Weight == userWeight &&
- criminal.IsArrested == false).ToList();
- if (filteredCriminals.Count > 0)
- ShowCriminals(filteredCriminals);
- else
- Console.WriteLine("По таким параметрам подозреваемых нет");
- }
- private void ShowCriminals(List<Criminal> criminals)
- {
- foreach (Criminal criminal in criminals)
- {
- Console.WriteLine($"{criminal.Name} - рост {criminal.Height}, вес {criminal.Weight}, национальность {criminal.Nationality}");
- }
- }
- }
- class Database
- {
- private List<Criminal> _criminals;
- public Database()
- {
- _criminals = new List<Criminal>();
- AddCriminals();
- }
- public List<Criminal> Criminals => _criminals.ToList();
- private void AddCriminals()
- {
- _criminals.Add(new Criminal("Иванов Сергей Александрович", "русский", 180, 90, true));
- _criminals.Add(new Criminal("Смирнова Екатерина Викторовна", "русский", 170, 80, false));
- _criminals.Add(new Criminal("Петрова Анна Дмитриевна", "русский", 160, 60, true));
- _criminals.Add(new Criminal("Гогия Леван Нодарович", "грузин", 170, 80, false));
- _criminals.Add(new Criminal("Циклаури Нино Вахтанговна", "грузин", 170, 80, false));
- }
- }
- class Criminal
- {
- public Criminal(string name, string nationality, int height, int weight, bool isArrested)
- {
- Name = name;
- Nationality = nationality;
- Height = height;
- Weight = weight;
- IsArrested = isArrested;
- }
- public string Name { get; }
- public string Nationality { get; }
- public int Height { get; }
- public int Weight { get; }
- public bool IsArrested { get; }
- }
- class Utils
- {
- public static int ReadInt()
- {
- int number;
- while (int.TryParse(Console.ReadLine(), out number) == false)
- Console.Write("Некорректный ввод, введите повторно: ");
- return number;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment