Last active
December 15, 2020 23:24
-
-
Save Hellhackee/84466689bc024dd432fedfea6d659465 to your computer and use it in GitHub Desktop.
CS Light Lesson 41 (patients)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Program | |
{ | |
static void Main(string[] args) | |
{ | |
bool isOpen = true; | |
string input; | |
string inputDisease; | |
Patient patient1 = new Patient("Олег", 18, "амнезия"); | |
Patient patient2 = new Patient("Иван", 20, "перелом"); | |
Patient patient3 = new Patient("Петр", 32, "раздвоение личности"); | |
Patient patient4 = new Patient("Евгений", 12, "головные боли"); | |
Patient patient5 = new Patient("Александр", 26, "аутизм"); | |
Patient patient6 = new Patient("Алексей", 19, "менископатия"); | |
Patient patient7 = new Patient("Степан", 23, "перелом"); | |
Patient patient8 = new Patient("Андрей", 41, "простатит"); | |
Patient patient9 = new Patient("Владимир", 38, "головные боли"); | |
Patient patient10 = new Patient("Анатолий", 17, "амнезия"); | |
List<Patient> patients = new List<Patient>() { patient1, patient2, patient3, patient4, patient5, | |
patient6, patient7, patient8, patient9, patient10}; | |
var diseases = from Patient patient in patients | |
group patient.Disease by patient.Disease; | |
diseases.ToArray(); | |
while (isOpen) | |
{ | |
Console.WriteLine("Список больных: "); | |
foreach (var patient in patients) | |
{ | |
patient.ShowInfo(); | |
} | |
Console.WriteLine(); | |
Console.WriteLine("Список доступных команд:"); | |
Console.WriteLine(" 1 - Отсортировать всех больных по фио\n 2 - Отсортировать всех больных по возрасту" + | |
"\n 3 - Вывести больных с определенным заболеванием\n 4 - Выход"); | |
input = Console.ReadLine(); | |
switch (input) | |
{ | |
case "1": | |
var sortedPatientsByName = patients.OrderBy(x => x.Name); | |
foreach (var patient in sortedPatientsByName) | |
{ | |
patient.ShowInfo(); | |
} | |
break; | |
case "2": | |
var sortedPatientsByAge = patients.OrderBy(x => x.Age); | |
foreach (var patient in sortedPatientsByAge) | |
{ | |
patient.ShowInfo(); | |
} | |
break; | |
case "3": | |
Console.WriteLine("Список болезней: "); | |
foreach (var disease in diseases) | |
{ | |
Console.WriteLine(disease.Key); | |
} | |
Console.Write("Введите имя болезни: "); | |
inputDisease = Console.ReadLine().ToLower(); | |
var filtredPatients = patients.Where(patient => patient.Disease == inputDisease); | |
Console.WriteLine("Список больных: "); | |
foreach (var patient in filtredPatients) | |
{ | |
patient.ShowInfo(); | |
} | |
break; | |
case "4": | |
isOpen = false; | |
break; | |
default: | |
Console.WriteLine("Извините, такой команды нет."); | |
break; | |
} | |
Console.ReadKey(); | |
Console.Clear(); | |
} | |
} | |
} | |
class Patient | |
{ | |
public string Name { get; private set; } | |
public int Age { get; private set; } | |
public string Disease { get; private set; } | |
public Patient(string name, int age, string disease) | |
{ | |
Name = name; | |
Age = age; | |
Disease = disease; | |
} | |
public void ShowInfo() | |
{ | |
Console.WriteLine($"Пациент: {Name}, возраст {Age}, болезнь {Disease}"); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment