Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- internal class Program
- {
- //У вас есть список больных(минимум 10 записей)
- //Класс больного состоит из полей: ФИО, возраст, заболевание.
- //Требуется написать программу больницы, в которой перед пользователем будет меню со следующими пунктами:
- //1)Отсортировать всех больных по фио
- //2)Отсортировать всех больных по возрасту
- //3)Вывести больных с определенным заболеванием
- //(название заболевания вводится пользователем с клавиатуры)
- static void Main(string[] args)
- {
- Database database = new Database();
- database.RunProgram();
- }
- class Patient
- {
- public string Name { get; }
- public string Disease { get; }
- public int Age { get; }
- public Patient(string name, string disease, int age)
- {
- Name = name;
- Disease = disease;
- Age = age;
- }
- public void ShowInfo()
- {
- Console.WriteLine($"ФИО: {Name} Возраст: {Age} Заболевание: {Disease}");
- }
- }
- class Database
- {
- private List<Patient> _patients;
- private string[] _diseases;
- public Database()
- {
- string[] diseases = { "Короновирус", "Грип", "Перелом", "Ифекция", "УченикХаудиХо" };
- _diseases = diseases;
- _patients = new List<Patient>();
- Fill();
- }
- public void ShowInfo()
- {
- foreach (var patient in _patients)
- {
- patient.ShowInfo();
- }
- }
- public void RunProgram()
- {
- const string CommandPointOne = "Name";
- const string CommandPointTwo = "Age";
- const string CommandPointThree = "Disease";
- const string CommandExit = "Exit";
- bool inProgram = true;
- while (inProgram)
- {
- Console.WriteLine("База пациентов нашей больницы.\n");
- ShowInfo();
- Console.Write($"\nМеню:\n1 - Что бы отсортировать всех больных по ФИО введите \"{CommandPointOne}\"" +
- $"\n2 - Что бы отсортировать всех больных по возрасту введите \"{CommandPointTwo}\"" +
- $"\n3 - Что бы вывести больных с определенным заболеванием введите \"{CommandPointThree}\"" +
- $"\nДля выхода введите \"{CommandExit}\".\nВаш выбор: ");
- switch (Console.ReadLine())
- {
- case CommandPointOne:
- SortName();
- break;
- case CommandPointTwo:
- SortAge();
- break;
- case CommandPointThree:
- FilterDisease();
- break;
- case CommandExit:
- Console.WriteLine("Программа завершена.");
- inProgram = false;
- break;
- default:
- Console.WriteLine("Ошибка ввода.");
- break;
- }
- Console.ReadKey();
- Console.Clear();
- }
- }
- private void SortName()
- {
- var filterPatients = _patients.OrderBy(patient => patient.Name);
- ShowFilterLinq(filterPatients);
- }
- private void SortAge()
- {
- var filterPatients = _patients.OrderBy(patient => patient.Age);
- ShowFilterLinq(filterPatients);
- }
- private void FilterDisease()
- {
- Console.WriteLine("\nУ нас есть пациенты с диагназом: ");
- foreach (var disease in _diseases)
- {
- Console.WriteLine(disease);
- }
- Console.Write("С каким диагназом показать пациентов: ");
- string userInput = Console.ReadLine();
- var filterPatients = _patients.Where(patient => patient.Disease == userInput);
- ShowFilterLinq(filterPatients);
- }
- private void ShowFilterLinq(IEnumerable<Patient> filterPatients)
- {
- foreach (var patient in filterPatients)
- {
- patient.ShowInfo();
- }
- }
- private void Fill()
- {
- Patient[] patient =
- {
- new Patient("Иванов И.А.", _diseases[0], 45),
- new Patient("Смирнов И.С.", _diseases[1], 20),
- new Patient("Гусев У.П.", _diseases[1], 40),
- new Patient("Лебединский К.О.", _diseases[2], 18),
- new Patient("Наскович И.И.", _diseases[3], 110),
- new Patient("Дружини И.Д.", _diseases[0], 73),
- new Patient("Чураков Т.И.", _diseases[0], 68),
- new Patient("Шабалин И.Л.", _diseases[3], 11),
- new Patient("Сакутин Р.В.", _diseases[4], 31),
- new Patient("Голубев И.Ш.", _diseases[1], 41),
- new Patient("Лолкеков П.Е.", _diseases[1], 22),
- new Patient("Чебуреков И.Г.", _diseases[2], 38),
- new Patient("Ситор Л.О.", _diseases[1], 14)
- };
- _patients.AddRange(patient);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement