Advertisement
NikaBang

Анархия в больнице

Dec 6th, 2022 (edited)
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.10 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. internal class Program
  6. {
  7.     //У вас есть список больных(минимум 10 записей)
  8.     //Класс больного состоит из полей: ФИО, возраст, заболевание.
  9.     //Требуется написать программу больницы, в которой перед пользователем будет меню со следующими пунктами:
  10.     //1)Отсортировать всех больных по фио
  11.     //2)Отсортировать всех больных по возрасту
  12.     //3)Вывести больных с определенным заболеванием
  13.     //(название заболевания вводится пользователем с клавиатуры)
  14.  
  15.     static void Main(string[] args)
  16.     {
  17.         Database database = new Database();
  18.         database.RunProgram();
  19.     }
  20.  
  21.     class Patient
  22.     {
  23.         public string Name { get; }
  24.         public string Disease { get; }
  25.         public int Age { get; }
  26.  
  27.         public Patient(string name, string disease, int age)
  28.         {
  29.             Name = name;
  30.             Disease = disease;
  31.             Age = age;
  32.         }
  33.  
  34.         public void ShowInfo()
  35.         {
  36.             Console.WriteLine($"ФИО: {Name} Возраст: {Age} Заболевание: {Disease}");
  37.         }
  38.     }
  39.  
  40.     class Database
  41.     {
  42.         private List<Patient> _patients;
  43.         private string[] _diseases;
  44.  
  45.         public Database()
  46.         {
  47.             string[] diseases = { "Короновирус", "Грип", "Перелом", "Ифекция", "УченикХаудиХо" };
  48.             _diseases = diseases;
  49.             _patients = new List<Patient>();
  50.  
  51.             Fill();
  52.         }
  53.  
  54.         public void ShowInfo()
  55.         {
  56.             foreach (var patient in _patients)
  57.             {
  58.                 patient.ShowInfo();
  59.             }
  60.         }
  61.  
  62.         public void RunProgram()
  63.         {
  64.             const string CommandPointOne = "Name";
  65.             const string CommandPointTwo = "Age";
  66.             const string CommandPointThree = "Disease";
  67.             const string CommandExit = "Exit";
  68.             bool inProgram = true;
  69.  
  70.             while (inProgram)
  71.             {
  72.                 Console.WriteLine("База пациентов нашей больницы.\n");
  73.                 ShowInfo();
  74.  
  75.                 Console.Write($"\nМеню:\n1 - Что бы отсортировать всех больных по ФИО введите \"{CommandPointOne}\"" +
  76.                     $"\n2 - Что бы отсортировать всех больных по возрасту введите \"{CommandPointTwo}\"" +
  77.                     $"\n3 - Что бы вывести больных с определенным заболеванием введите \"{CommandPointThree}\"" +
  78.                     $"\nДля выхода введите \"{CommandExit}\".\nВаш выбор: ");
  79.  
  80.                 switch (Console.ReadLine())
  81.                 {
  82.                     case CommandPointOne:
  83.                         SortName();
  84.                         break;
  85.                     case CommandPointTwo:
  86.                         SortAge();
  87.                         break;
  88.                     case CommandPointThree:
  89.                         FilterDisease();
  90.                         break;
  91.                     case CommandExit:
  92.                         Console.WriteLine("Программа завершена.");
  93.                         inProgram = false;
  94.                         break;
  95.                     default:
  96.                         Console.WriteLine("Ошибка ввода.");
  97.                         break;
  98.                 }
  99.  
  100.                 Console.ReadKey();
  101.                 Console.Clear();
  102.             }
  103.         }
  104.  
  105.         private void SortName()
  106.         {
  107.             var filterPatients = _patients.OrderBy(patient => patient.Name);
  108.  
  109.             ShowFilterLinq(filterPatients);
  110.         }
  111.  
  112.         private void SortAge()
  113.         {
  114.             var filterPatients = _patients.OrderBy(patient => patient.Age);
  115.  
  116.             ShowFilterLinq(filterPatients);
  117.         }
  118.  
  119.         private void FilterDisease()
  120.         {
  121.             Console.WriteLine("\nУ нас есть пациенты с диагназом: ");
  122.  
  123.             foreach (var disease in _diseases)
  124.             {
  125.                 Console.WriteLine(disease);
  126.             }
  127.  
  128.             Console.Write("С каким диагназом показать пациентов: ");
  129.             string userInput = Console.ReadLine();
  130.  
  131.             var filterPatients = _patients.Where(patient => patient.Disease == userInput);
  132.  
  133.             ShowFilterLinq(filterPatients);
  134.         }
  135.  
  136.         private void ShowFilterLinq(IEnumerable<Patient> filterPatients)
  137.         {
  138.             foreach (var patient in filterPatients)
  139.             {
  140.                 patient.ShowInfo();
  141.             }
  142.         }
  143.  
  144.         private void Fill()
  145.         {
  146.             Patient[] patient =
  147.             {
  148.                 new Patient("Иванов И.А.", _diseases[0], 45),
  149.                 new Patient("Смирнов И.С.", _diseases[1], 20),
  150.                 new Patient("Гусев У.П.", _diseases[1], 40),
  151.                 new Patient("Лебединский К.О.", _diseases[2], 18),
  152.                 new Patient("Наскович И.И.", _diseases[3], 110),
  153.                 new Patient("Дружини И.Д.", _diseases[0], 73),
  154.                 new Patient("Чураков Т.И.", _diseases[0], 68),
  155.                 new Patient("Шабалин И.Л.", _diseases[3], 11),
  156.                 new Patient("Сакутин Р.В.", _diseases[4], 31),
  157.                 new Patient("Голубев И.Ш.", _diseases[1], 41),
  158.                 new Patient("Лолкеков П.Е.", _diseases[1], 22),
  159.                 new Patient("Чебуреков И.Г.", _diseases[2], 38),
  160.                 new Patient("Ситор Л.О.", _diseases[1], 14)
  161.             };
  162.  
  163.             _patients.AddRange(patient);
  164.         }
  165.     }
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement