RedFlys

Home work - anarchy in the hospital

Jan 21st, 2022 (edited)
471
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.82 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Home_Work
  8. {
  9.     class Program
  10.     {
  11.         static void Main()
  12.         {
  13.             Database database = new Database();
  14.             database.Work();
  15.         }
  16.     }
  17.  
  18.     class Database
  19.     {
  20.         private List<Patient> _patients;
  21.  
  22.         public Database()
  23.         {
  24.             _patients = new List<Patient>();
  25.             Fill();
  26.         }
  27.  
  28.         public void Work()
  29.         {
  30.             bool isWorking = true;
  31.             List<Patient> patients = _patients;
  32.             int number;
  33.  
  34.             while (isWorking == true)
  35.             {
  36.                 Console.WriteLine("Больные: ");
  37.                 ShowSelection(patients);
  38.                 Console.WriteLine("\n1. Отсортировать по ФИО.\n2. Отсортировать по возрасту.\n3. Отсортировать по болезни.\n4. Выход.");
  39.                 Console.Write("Введите команду: ");
  40.                 number = GetNumber();
  41.  
  42.                 switch (number)
  43.                 {
  44.                     case 1:
  45.                         patients = GetSortByFullName();
  46.                         break;
  47.  
  48.                     case 2:
  49.                         patients = GetSortByAge();
  50.                         break;
  51.  
  52.                     case 3:
  53.                         patients = GetSortByDisease();
  54.                         break;
  55.  
  56.                     case 4:
  57.                         isWorking = false;
  58.                         break;
  59.  
  60.                     default:
  61.                         Console.WriteLine("Неверная команда.");
  62.                         break;
  63.                 }
  64.  
  65.                 Console.ReadKey();
  66.                 Console.Clear();
  67.             }
  68.         }
  69.  
  70.         private int GetNumber()
  71.         {
  72.             bool isConverted = false;
  73.             int number = 0;
  74.             string userInput;
  75.  
  76.             while (isConverted == false)
  77.             {
  78.                 userInput = Console.ReadLine();
  79.                 isConverted = Int32.TryParse(userInput, out number);
  80.             }
  81.  
  82.             return number;
  83.         }
  84.  
  85.         private List<Patient> GetSortByFullName()
  86.         {
  87.             return _patients.OrderBy(patient => patient.FullName).ToList();
  88.         }
  89.  
  90.         private List<Patient> GetSortByAge()
  91.         {
  92.             return _patients.OrderBy(patient => patient.Age).ToList();
  93.         }
  94.  
  95.         private List<Patient> GetSortByDisease()
  96.         {
  97.             Disease disease = GetDisease();
  98.  
  99.             return _patients.Where(patient => patient.Disease == disease).ToList();
  100.         }
  101.  
  102.         private Disease GetDisease()
  103.         {
  104.             bool isSelected = false;
  105.             int nationalCount = Enum.GetNames(typeof(Disease)).Length;
  106.             int number = 0;
  107.  
  108.             for (int i = 0; i < nationalCount; i++)
  109.             {
  110.                 Console.WriteLine($"{i + 1}. {(Disease)i}.");
  111.             }
  112.  
  113.             while (isSelected == false)
  114.             {
  115.                 number = GetNumber() - 1;
  116.  
  117.                 if (number >= 0 && number < nationalCount)
  118.                 {
  119.                     isSelected = true;
  120.                 }
  121.                 else
  122.                 {
  123.                     Console.WriteLine("Введите номер болезни.");
  124.                 }
  125.             }
  126.  
  127.             return (Disease)number;
  128.         }
  129.  
  130.         private void ShowSelection(List<Patient> criminals)
  131.         {
  132.             foreach (Patient patient in _patients)
  133.             {
  134.                 patient.ShowInfo();
  135.             }
  136.         }
  137.  
  138.         private void Fill()
  139.         {
  140.             _patients.Add(new Patient("Черёмушко Алексей Алексеевич", (Disease)0));
  141.             _patients.Add(new Patient("Чер Дмитрий Алексеевич", (Disease)0));
  142.             _patients.Add(new Patient("Альанах Алексей Дмитриевич", (Disease)1));
  143.             _patients.Add(new Patient("Вассерман Анатолий Акашанович", (Disease)2));
  144.             _patients.Add(new Patient("Шерлок Ди Холмс", (Disease)0));
  145.             _patients.Add(new Patient("Макуночи Но Ипо", (Disease)1));
  146.             _patients.Add(new Patient("Грозный Иван Васильевич", (Disease)1));
  147.             _patients.Add(new Patient("Борн Дмитрий Анатольевич", (Disease)0));
  148.             _patients.Add(new Patient("Навальный Владимир Владиславович", (Disease)2));
  149.             _patients.Add(new Patient("Евпатий Калодратий", (Disease)0));
  150.             _patients.Add(new Patient("Никто", (Disease)1));
  151.             _patients.Add(new Patient("Андерсон Джон Викторович", (Disease)0));
  152.             _patients.Add(new Patient("Самураев Душнила Тёмович", (Disease)2));
  153.         }
  154.     }
  155.  
  156.     class Patient
  157.     {
  158.         private static Random _random;
  159.         private string _fullName;
  160.         private int _age;
  161.         private Disease _disease;
  162.  
  163.         static Patient()
  164.         {
  165.             _random = new Random();
  166.         }
  167.  
  168.         public Patient(string fullName, Disease disease)
  169.         {
  170.             int maxAge = 100;
  171.  
  172.             _fullName = fullName;
  173.             _disease = disease;
  174.             _age = _random.Next(maxAge);
  175.         }
  176.  
  177.         public string FullName => _fullName;
  178.         public int Age => _age;
  179.         public Disease Disease => _disease;
  180.  
  181.         public void ShowInfo()
  182.         {
  183.             Console.WriteLine($"{_fullName}. Возраст: {_age}. Болезнь: {_disease}.");
  184.         }
  185.     }
  186.  
  187.     enum Disease
  188.     {
  189.         Covid19,
  190.         AIDS,
  191.         Pneumonia
  192.     }
  193. }
Advertisement
Add Comment
Please, Sign In to add comment