Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace Hospital
- {
- public class Program
- {
- static void Main(string[] args)
- {
- PatientService service = new PatientService();
- service.Run();
- }
- }
- public class Patient
- {
- public Patient(string fullName, int age, string disease)
- {
- FullName = fullName;
- Age = age;
- Disease = disease;
- }
- public string FullName { get; private set; }
- public int Age { get; private set; }
- public string Disease { get; private set; }
- }
- public class PatientCreator
- {
- public List<Patient> CreatePatients()
- {
- return new List<Patient>
- {
- new Patient("Иванов Иван Иванович", 34, "Грипп"),
- new Patient("Петров Петр Петрович", 28, "ОРВИ"),
- new Patient("Сидоров Сидор Сидорович", 45, "Пневмония"),
- new Patient("Варнов Михаил Александрович", 52, "Грипп"),
- new Patient("Савельев Анатолий Максимович", 19, "Астма"),
- new Patient("Габдуллин Ринат Фаритович", 60, "ОРВИ"),
- new Patient("Юлдашев Айдар Маратович", 23, "Грипп"),
- new Patient("Кадыров Магомед Ахмедович", 37, "Диабет"),
- new Patient("Петрова Анастасия Сергеевна", 41, "Пневмония"),
- new Patient("Семенов Алексей Николаевич", 30, "Грипп"),
- };
- }
- }
- public class PatientService
- {
- private readonly List<Patient> _patients;
- public PatientService()
- {
- PatientCreator creator = new PatientCreator();
- _patients = creator.CreatePatients();
- }
- public void Run()
- {
- const string CommandToSortFullName = "1";
- const string CommandToSortAge = "2";
- const string CommandToShowPatientDisease = "3";
- const string CommandToExit = "4";
- bool isWorking = true;
- while (isWorking)
- {
- Console.Clear();
- Console.WriteLine(" Меню:");
- Console.WriteLine($" {CommandToSortFullName}. Отсортировать всех больных по ФИО");
- Console.WriteLine($" {CommandToSortAge}. Отсортировать всех больных по возрасту");
- Console.WriteLine($" {CommandToShowPatientDisease}. Вывести больных с определённым заболеванием");
- Console.WriteLine($" {CommandToExit}. Выход");
- Console.Write(" Выберите пункт меню: ");
- string userInput = Console.ReadLine();
- switch (userInput)
- {
- case CommandToSortFullName:
- ShowPatients(_patients.OrderBy(patient => patient.FullName).ToList(), " Список больных (сортировка по ФИО):");
- break;
- case CommandToSortAge:
- ShowPatients(_patients.OrderBy(patient => patient.Age).ToList(), " Список больных (сортировка по возрасту):");
- break;
- case CommandToShowPatientDisease:
- ShowPatientsByDisease();
- break;
- case CommandToExit:
- isWorking = false;
- break;
- default:
- Console.WriteLine("Некорректный ввод. Попробуйте снова.");
- break;
- }
- if (isWorking)
- {
- Pause();
- }
- }
- }
- private void ShowPatients(List<Patient> patients, string header)
- {
- Console.WriteLine("\n" + header);
- if (patients.Count == 0)
- {
- Console.WriteLine("Список пуст.");
- }
- else
- {
- foreach (Patient patient in patients)
- {
- Console.WriteLine($" {patient.FullName}, возраст: {patient.Age}, заболевание: {patient.Disease}");
- }
- }
- }
- private void ShowPatientsByDisease()
- {
- Console.Write("\nВведите название заболевания: ");
- string disease = Console.ReadLine();
- var filtered = _patients.Where(patient => patient.Disease.Equals(disease, StringComparison.OrdinalIgnoreCase)).ToList();
- ShowPatients(filtered, $" Список больных с заболеванием \"{disease}\":");
- }
- private void Pause()
- {
- Console.WriteLine("\nНажмите любую клавишу для продолжения...");
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment