lovelyvook

Unit_52

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