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<Patient> _patients;
- public Database()
- {
- _patients = new List<Patient>();
- Fill();
- }
- public void Work()
- {
- bool isWorking = true;
- List<Patient> patients = _patients;
- int number;
- while (isWorking == true)
- {
- Console.WriteLine("Больные: ");
- ShowSelection(patients);
- Console.WriteLine("\n1. Отсортировать по ФИО.\n2. Отсортировать по возрасту.\n3. Отсортировать по болезни.\n4. Выход.");
- Console.Write("Введите команду: ");
- number = GetNumber();
- switch (number)
- {
- case 1:
- patients = GetSortByFullName();
- break;
- case 2:
- patients = GetSortByAge();
- break;
- case 3:
- patients = GetSortByDisease();
- break;
- case 4:
- isWorking = false;
- break;
- default:
- Console.WriteLine("Неверная команда.");
- break;
- }
- Console.ReadKey();
- Console.Clear();
- }
- }
- 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 List<Patient> GetSortByFullName()
- {
- return _patients.OrderBy(patient => patient.FullName).ToList();
- }
- private List<Patient> GetSortByAge()
- {
- return _patients.OrderBy(patient => patient.Age).ToList();
- }
- private List<Patient> GetSortByDisease()
- {
- Disease disease = GetDisease();
- return _patients.Where(patient => patient.Disease == disease).ToList();
- }
- private Disease GetDisease()
- {
- bool isSelected = false;
- int nationalCount = Enum.GetNames(typeof(Disease)).Length;
- int number = 0;
- for (int i = 0; i < nationalCount; i++)
- {
- Console.WriteLine($"{i + 1}. {(Disease)i}.");
- }
- while (isSelected == false)
- {
- number = GetNumber() - 1;
- if (number >= 0 && number < nationalCount)
- {
- isSelected = true;
- }
- else
- {
- Console.WriteLine("Введите номер болезни.");
- }
- }
- return (Disease)number;
- }
- private void ShowSelection(List<Patient> criminals)
- {
- foreach (Patient patient in _patients)
- {
- patient.ShowInfo();
- }
- }
- private void Fill()
- {
- _patients.Add(new Patient("Черёмушко Алексей Алексеевич", (Disease)0));
- _patients.Add(new Patient("Чер Дмитрий Алексеевич", (Disease)0));
- _patients.Add(new Patient("Альанах Алексей Дмитриевич", (Disease)1));
- _patients.Add(new Patient("Вассерман Анатолий Акашанович", (Disease)2));
- _patients.Add(new Patient("Шерлок Ди Холмс", (Disease)0));
- _patients.Add(new Patient("Макуночи Но Ипо", (Disease)1));
- _patients.Add(new Patient("Грозный Иван Васильевич", (Disease)1));
- _patients.Add(new Patient("Борн Дмитрий Анатольевич", (Disease)0));
- _patients.Add(new Patient("Навальный Владимир Владиславович", (Disease)2));
- _patients.Add(new Patient("Евпатий Калодратий", (Disease)0));
- _patients.Add(new Patient("Никто", (Disease)1));
- _patients.Add(new Patient("Андерсон Джон Викторович", (Disease)0));
- _patients.Add(new Patient("Самураев Душнила Тёмович", (Disease)2));
- }
- }
- class Patient
- {
- private static Random _random;
- private string _fullName;
- private int _age;
- private Disease _disease;
- static Patient()
- {
- _random = new Random();
- }
- public Patient(string fullName, Disease disease)
- {
- int maxAge = 100;
- _fullName = fullName;
- _disease = disease;
- _age = _random.Next(maxAge);
- }
- public string FullName => _fullName;
- public int Age => _age;
- public Disease Disease => _disease;
- public void ShowInfo()
- {
- Console.WriteLine($"{_fullName}. Возраст: {_age}. Болезнь: {_disease}.");
- }
- }
- enum Disease
- {
- Covid19,
- AIDS,
- Pneumonia
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment