vovanhik_24

53

Aug 8th, 2025
379
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.38 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Hospital
  6. {
  7.     public class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             PatientService service = new PatientService();
  12.             service.Run();
  13.         }
  14.     }
  15.  
  16.     public class Patient
  17.     {
  18.         public Patient(string fullName, int age, string disease)
  19.         {
  20.             FullName = fullName;
  21.             Age = age;
  22.             Disease = disease;
  23.         }
  24.  
  25.         public string FullName { get; private set; }
  26.         public int Age { get; private set; }
  27.         public string Disease { get; private set; }
  28.     }
  29.  
  30.     public class PatientCreator
  31.     {
  32.         public List<Patient> CreatePatients()
  33.         {
  34.             return new List<Patient>
  35.             {
  36.                 new Patient("Иванов Иван Иванович", 34, "Грипп"),
  37.                 new Patient("Петров Петр Петрович", 28, "ОРВИ"),
  38.                 new Patient("Сидоров Сидор Сидорович", 45, "Пневмония"),
  39.                 new Patient("Варнов Михаил Александрович", 52, "Грипп"),
  40.                 new Patient("Савельев Анатолий Максимович", 19, "Астма"),
  41.                 new Patient("Габдуллин Ринат Фаритович", 60, "ОРВИ"),
  42.                 new Patient("Юлдашев Айдар Маратович", 23, "Грипп"),
  43.                 new Patient("Кадыров Магомед Ахмедович", 37, "Диабет"),
  44.                 new Patient("Петрова Анастасия Сергеевна", 41, "Пневмония"),
  45.                 new Patient("Семенов Алексей Николаевич", 30, "Грипп"),
  46.             };
  47.         }
  48.     }
  49.  
  50.     public class PatientService
  51.     {
  52.         private readonly List<Patient> _patients;
  53.  
  54.         public PatientService()
  55.         {
  56.             PatientCreator creator = new PatientCreator();
  57.             _patients = creator.CreatePatients();
  58.         }
  59.  
  60.         public void Run()
  61.         {
  62.             const string CommandToSortFullName = "1";
  63.             const string CommandToSortAge = "2";
  64.             const string CommandToShowPatientDisease = "3";
  65.             const string CommandToExit = "4";
  66.  
  67.             bool isWorking = true;
  68.  
  69.             while (isWorking)
  70.             {
  71.                 Console.Clear();
  72.                 Console.WriteLine(" Меню:");
  73.                 Console.WriteLine($" {CommandToSortFullName}. Отсортировать всех больных по ФИО");
  74.                 Console.WriteLine($" {CommandToSortAge}. Отсортировать всех больных по возрасту");
  75.                 Console.WriteLine($" {CommandToShowPatientDisease}. Вывести больных с определённым заболеванием");
  76.                 Console.WriteLine($" {CommandToExit}. Выход");
  77.                 Console.Write(" Выберите пункт меню: ");
  78.  
  79.                 string userInput = Console.ReadLine();
  80.  
  81.                 switch (userInput)
  82.                 {
  83.                     case CommandToSortFullName:
  84.                         ShowPatients(_patients.OrderBy(patient => patient.FullName).ToList(), " Список больных (сортировка по ФИО):");
  85.                         break;
  86.  
  87.                     case CommandToSortAge:
  88.                         ShowPatients(_patients.OrderBy(patient => patient.Age).ToList(), " Список больных (сортировка по возрасту):");
  89.                         break;
  90.  
  91.                     case CommandToShowPatientDisease:
  92.                         ShowPatientsByDisease();
  93.                         break;
  94.  
  95.                     case CommandToExit:
  96.                         isWorking = false;
  97.                         break;
  98.  
  99.                     default:
  100.                         Console.WriteLine("Некорректный ввод. Попробуйте снова.");
  101.                         break;
  102.                 }
  103.  
  104.                 if (isWorking)
  105.                 {
  106.                     Pause();
  107.                 }
  108.             }
  109.         }
  110.  
  111.         private void ShowPatients(List<Patient> patients, string header)
  112.         {
  113.             Console.WriteLine("\n" + header);
  114.  
  115.             if (patients.Count == 0)
  116.             {
  117.                 Console.WriteLine("Список пуст.");
  118.             }
  119.             else
  120.             {
  121.                 foreach (Patient patient in patients)
  122.                 {
  123.                     Console.WriteLine($" {patient.FullName}, возраст: {patient.Age}, заболевание: {patient.Disease}");
  124.                 }
  125.             }
  126.         }
  127.  
  128.         private void ShowPatientsByDisease()
  129.         {
  130.             Console.Write("\nВведите название заболевания: ");
  131.             string disease = Console.ReadLine();
  132.  
  133.             var filtered = _patients.Where(patient => patient.Disease.Equals(disease, StringComparison.OrdinalIgnoreCase)).ToList();
  134.  
  135.             ShowPatients(filtered, $" Список больных с заболеванием \"{disease}\":");
  136.         }
  137.  
  138.         private void Pause()
  139.         {
  140.             Console.WriteLine("\nНажмите любую клавишу для продолжения...");
  141.             Console.ReadKey();
  142.         }
  143.     }
  144. }
Advertisement
Add Comment
Please, Sign In to add comment