Advertisement
_KAGATUN_

Untitled

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