Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Home_Work
- {
- class Program
- {
- static void Main()
- {
- DataBase dataBase = new DataBase();
- dataBase.Work();
- }
- }
- class DataBase
- {
- private List<Criminal> _criminals;
- public DataBase()
- {
- _criminals = new List<Criminal>();
- FillDataBase();
- }
- public void Work()
- {
- bool isWorking = true;
- List<Criminal> criminals = _criminals;
- int number;
- while(isWorking == true)
- {
- ShowSelection(criminals);
- Console.WriteLine("1. Отфильтровать.\n2. Показать всех.\n3. Выход.");
- Console.Write("Введите команду: ");
- number = GetNumber();
- switch (number)
- {
- case 1:
- criminals = FilterOutCriminals();
- break;
- case 2:
- criminals = _criminals;
- break;
- case 3:
- isWorking = false;
- break;
- default:
- Console.WriteLine("Неверная команда.");
- break;
- }
- Console.ReadKey();
- Console.Clear();
- }
- }
- private List<Criminal> FilterOutCriminals()
- {
- int height;
- int weight;
- National national;
- Console.Write("Введите рост: ");
- height = GetNumber();
- Console.Write("Введите вес: ");
- weight = GetNumber();
- national = GetNational();
- var filteredCriminals = _criminals.Where(criminal => criminal.Height == height &&
- criminal.Weight == weight &&
- criminal.National == national &&
- criminal.IsArrested == false).ToList();
- return filteredCriminals;
- }
- private int GetNumber()
- {
- bool isConverted = false;
- int number = 0;
- string userInput;
- while(isConverted == false)
- {
- userInput = Console.ReadLine();
- isConverted = Int32.TryParse(userInput, out number);
- }
- return number;
- }
- private National GetNational()
- {
- bool isSelected = false;
- int nationalCount = Enum.GetNames(typeof(National)).Length;
- int number = 0;
- for(int i = 0; i < nationalCount; i++)
- {
- Console.WriteLine($"{i + 1}. {(National)i}.");
- }
- while(isSelected == false)
- {
- number = GetNumber() - 1;
- if (number >= 0 && number < nationalCount)
- {
- isSelected = true;
- }
- else
- {
- Console.WriteLine("Введите номер национальности.");
- }
- }
- return (National)number;
- }
- private void ShowSelection(List<Criminal> criminals)
- {
- foreach (Criminal criminal in criminals)
- {
- criminal.ShowInfo();
- }
- }
- private void FillDataBase()
- {
- _criminals.Add(new Criminal("Черёмушко Алексей Алексеевич", National.Russia, 180, 80, false));
- _criminals.Add(new Criminal("Чер Дмитрий Алексеевич", National.Russia, 185, 50, false));
- _criminals.Add(new Criminal("Альанах Алексей Дмитриевич", National.Georgia, 180, 90, true));
- _criminals.Add(new Criminal("Вассерман Анатолий Акашанович", National.UA, 185, 80, true));
- _criminals.Add(new Criminal("Шерлок Ди Холмс", National.Ukraina, 170, 70, false));
- _criminals.Add(new Criminal("Макуночи Но Ипо", National.UA, 210, 75, true));
- _criminals.Add(new Criminal("Грозный Иван Васильевич", National.USA, 180, 80, false));
- _criminals.Add(new Criminal("Борн Дмитрий Анатольевич", National.USA, 190, 90, true));
- _criminals.Add(new Criminal("Навальный Владимир Владиславович", National.Ukraina, 160, 75, false));
- _criminals.Add(new Criminal("Евпатий Калодратий", National.Georgia, 150, 50, false));
- _criminals.Add(new Criminal("Никто", National.Russia, 220, 100, true));
- _criminals.Add(new Criminal("Андерсон Джон Викторович", National.Russia, 180, 70, true));
- _criminals.Add(new Criminal("Самураев Душнила Тёмович", National.Ukraina, 150, 90, false));
- }
- }
- class Criminal
- {
- private string _fullName;
- private National _national;
- private int _height;
- private int _weight;
- private bool _isArrested;
- public Criminal(string fullName, National national, int height, int weight, bool isArrested)
- {
- _fullName = fullName;
- _national = national;
- _height = height;
- _weight = weight;
- _isArrested = isArrested;
- }
- public National National => _national;
- public int Height => _height;
- public int Weight => _weight;
- public bool IsArrested => _isArrested;
- public void ShowInfo()
- {
- string status;
- if(_isArrested == true)
- {
- status = "Арестован";
- }
- else
- {
- status = "Разыскивается";
- }
- Console.WriteLine($"{_fullName}. Национальность: {_national}. Рост: {_height}. Вес: {_weight}. {status}.");
- }
- }
- enum National
- {
- Russia,
- USA,
- UA,
- Georgia,
- Ukraina
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement