Advertisement
SaNik74

Anarchy_in_hospital

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