C#
Дан текстовый файл, содержащий сведения о пациентах глазной клиники. Каждая строка файла содержит: фамилию, имя, отчество пациента, пол, возраст, место проживания(город), диагноз.
Вывести по запросу данные
- о количестве пациентов-мужчин и количестве пациентов-женщин
- о пациентах с заданным диагнозом в алфавитном порядке
Answers & Comments
Тело программы:
public static void Main(string[] args)
{
int man = 0;
int woman = 0;
String file = File.ReadAllText("persons.txt");
List<Person> persons = StringToPersons(file);
foreach(Person p in persons)
if(p.Sex == "Мужской")
man++;
else if(p.Sex == "Женский")
woman++;
Console.WriteLine("Женщин: {0}\nМужчин: {1}",woman,man);
persons = persons.OrderBy(p => p.LastName).ToList();
for(int i = 0;i<persons.Count;i++)
{
Person p = persons[i];
Console.WriteLine("Пациент # {0}\nФИО: {1} {2} {3},Пол: {4},Возраст: {5} лет,Место проживания: {6}, Диагноз: {7}.",i+1,p.LastName,p.FirstName,p.Patronymic,p.Sex,p.Age,p.City,p.Main);
}
}
public static List<Person> StringToPersons(String FileContent)
{
List<Person> persons = new List<Person>();
String[] lines = FileContent.Split(';');
foreach(String line in lines)
{
String[] data = line.Split(':');
if(data.Length>7)
{
throw new Exception("Error read persons file");
}
Person person = new Person(data[0],data[1],data[2],data[3],data[4],data[5],data[6]);
persons.Add(person);
}
return persons;
}
}
public class Person
{
public String LastName;
public String FirstName;
public String Patronymic;
public String Sex;
public String Age;
public String City;
public String Main;
public Person(String LastName,String FirstName,String Patronymic,String Sex,String Age,String City,String Main)
{
this.LastName = LastName;
this.FirstName = FirstName;
this.Patronymic = Patronymic;
this.Sex = Sex;
this.Age = Age;
this.City = City;
this.Main = Main;
}
}
Текстовый файл:
Сергеев:Иван:Алексеевич:Мужской:34:Санкт-Петербург:Кариес;
Белоусова:Элина:Станислава:Женщина:27:Москва:Ангина;
Павлов:Николай:Дмитриевич: Мужской:89:Астрахань:Сахарный диабет
P.s. я не доктор, соответственно в плане диагноза я написал чушь.
Белоусова:Элина:Станислава:Женский:27:Москва:Ангина;
Павлов:Николай:Дмитриевич: Мужской:89:Астрахань:Сахарный диабет