Advertisement
SPavelA

LinqTask3Hospital

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