Advertisement
TeT91

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

Jun 25th, 2024 (edited)
533
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.68 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace CSLight
  6. {
  7.     internal class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             PersonBase person = new PersonBase();
  12.             person.ShowPatientsInfo();
  13.         }
  14.     }
  15.  
  16.     class PersonBase
  17.     {
  18.         private List<Person> _patients;
  19.  
  20.         public PersonBase()
  21.         {
  22.             GeneratePatients();
  23.         }
  24.  
  25.         public void ShowPatientsInfo()
  26.         {
  27.             const string CommandSortBySurname = "1";
  28.             const string CommandSortByAge = "2";
  29.             const string CommandFilterByDisease = "3";
  30.             const string CommandExit = "exit";
  31.  
  32.             bool isRunnig = true;
  33.  
  34.             while (isRunnig)
  35.             {
  36.                 Console.WriteLine("Введите команду:");
  37.  
  38.                 string userInput = Console.ReadLine();
  39.  
  40.                 switch (userInput)
  41.                 {
  42.                     case CommandSortBySurname:
  43.                         SortBySurname();
  44.                         break;
  45.  
  46.                     case CommandSortByAge:
  47.                         SortByAge();
  48.                         break;
  49.  
  50.                     case CommandFilterByDisease:
  51.                         FilterByDisease();
  52.                         break;
  53.  
  54.                     case CommandExit:
  55.                         isRunnig = false;
  56.                         break;
  57.                 }
  58.             }
  59.            
  60.             Console.ReadKey();
  61.         }
  62.  
  63.         private void SortBySurname()
  64.         {
  65.             var sortedList = _patients.OrderBy(patient => patient.Surname);
  66.             ShowList(sortedList);
  67.         }
  68.  
  69.         private void SortByAge()
  70.         {
  71.             var sortedList = _patients.OrderBy(patient => patient.Age);
  72.             ShowList(sortedList);
  73.         }
  74.  
  75.         private void FilterByDisease()
  76.         {
  77.             Console.WriteLine("Какое заболевание вывести?");
  78.             string disease = Console.ReadLine();
  79.             Console.WriteLine($"Пациенты с {disease}");
  80.  
  81.             var filteredList = _patients.Where(patient => patient.Disiase == disease);
  82.  
  83.             ShowList(filteredList);
  84.         }
  85.  
  86.         private void ShowList(IEnumerable<Person> list)
  87.         {
  88.             foreach (Person person in list)
  89.             {
  90.                 Console.WriteLine($"{person.Surname} {person.Name} {person.Patronymic} - {person.Age} - {person.Disiase}");
  91.             }
  92.         }
  93.  
  94.         private void GeneratePatients()
  95.         {
  96.             PersonCreator creator = new PersonCreator();
  97.             int dataBaseCapacity = 20;
  98.  
  99.             _patients = new List<Person>();
  100.  
  101.             for (int i = 0; i < dataBaseCapacity; i++)
  102.             {
  103.                 _patients.Add(creator.CreatePerson());
  104.             }
  105.         }
  106.     }
  107.  
  108.     class PersonCreator
  109.     {
  110.         private List<string> _names;
  111.         private List<string> _surnames;
  112.         private List<string> _patronymic;
  113.         private List<string> _diseases;
  114.  
  115.         public PersonCreator()
  116.         {
  117.             InitNames();
  118.             InitSurnames();
  119.             InitPatronymics();
  120.             InitDiseases();
  121.         }
  122.  
  123.         public Person CreatePerson()
  124.         {
  125.             int maxAge = 100;
  126.             int age = UserUtils.GenerateRandomValue(maxAge);
  127.  
  128.             string name = GetRandomValue(_names);
  129.             string surname = GetRandomValue(_surnames);
  130.             string patronymic = GetRandomValue(_patronymic);
  131.             string crimeType = GetRandomValue(_diseases);
  132.  
  133.             return new Person(name, surname, patronymic, age, crimeType);
  134.         }
  135.  
  136.         private void InitSurnames()
  137.         {
  138.             _surnames = new List<string>();
  139.             _surnames.Add("Смирнов");
  140.             _surnames.Add("Иванов");
  141.             _surnames.Add("Кузнецов");
  142.             _surnames.Add("Попов");
  143.             _surnames.Add("Соколов");
  144.             _surnames.Add("Лебедев");
  145.             _surnames.Add("Козлов");
  146.             _surnames.Add("Новиков");
  147.             _surnames.Add("Морозов");
  148.             _surnames.Add("Козлов");
  149.             _surnames.Add("Волков");
  150.         }
  151.  
  152.         private void InitPatronymics()
  153.         {
  154.             _patronymic = new List<string>();
  155.             _patronymic.Add("Максимович");
  156.             _patronymic.Add("Михаилович");
  157.             _patronymic.Add("Александрович");
  158.             _patronymic.Add("Дмитриевич");
  159.             _patronymic.Add("Денисович");
  160.             _patronymic.Add("Ильич");
  161.             _patronymic.Add("Андреевич");
  162.             _patronymic.Add("Артемович");
  163.             _patronymic.Add("Иванович");
  164.             _patronymic.Add("Алексеевич");
  165.             _patronymic.Add("Никитич");
  166.         }
  167.  
  168.         private void InitNames()
  169.         {
  170.             _names = new List<string>();
  171.             _names.Add("Максим");
  172.             _names.Add("Михаил");
  173.             _names.Add("Александр");
  174.             _names.Add("Дмитрий");
  175.             _names.Add("Денис");
  176.             _names.Add("Илья");
  177.             _names.Add("Андрей");
  178.             _names.Add("Артем");
  179.             _names.Add("Иван");
  180.             _names.Add("Алексей");
  181.             _names.Add("Никита");
  182.         }
  183.  
  184.         private void InitDiseases()
  185.         {
  186.             _diseases = new List<string>();
  187.             _diseases.Add("Кашель");
  188.             _diseases.Add("Температура");
  189.             _diseases.Add("Сопли");
  190.         }
  191.  
  192.         private string GetRandomValue(List<string> values)
  193.         {
  194.             int randomId = UserUtils.GenerateRandomValue(values.Count);
  195.             return values[randomId];
  196.         }
  197.     }
  198.  
  199.     class Person
  200.     {
  201.         public Person(string name, string surname, string patronymic, int age, string disease)
  202.         {
  203.             Name = name;
  204.             Surname = surname;
  205.             Patronymic = patronymic;
  206.             Disiase = disease;
  207.             Age = age;
  208.         }
  209.  
  210.         public string Name { get; private set; }
  211.  
  212.         public string Surname { get; private set; }
  213.  
  214.         public string Patronymic { get; private set; }
  215.  
  216.         public int Age { get; private set; }
  217.  
  218.         public string Disiase { get; private set; }
  219.     }
  220.  
  221.     static class UserUtils
  222.     {
  223.         private static Random s_random = new Random();
  224.  
  225.         public static int GenerateRandomValue(int maxValue)
  226.         {
  227.             return s_random.Next(maxValue);
  228.         }
  229.     }
  230. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement