Предмет: Информатика, автор: khkhara

C#
Дан текстовый файл, содержащий сведения о пациентах глазной клиники. Каждая строка файла содержит: фамилию, имя, отчество пациента, пол, возраст, место проживания(город), диагноз.
Вывести по запросу данные
- о количестве пациентов-мужчин и количестве пациентов-женщин
- о пациентах с заданным диагнозом в алфавитном порядке

Ответы

Автор ответа: ruslol
0
Отпишитесь если будут ошибки,т.к. кодил на мобилке.
Тело программы:
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. я не доктор, соответственно в плане диагноза я написал чушь.

khkhara: Ошибка 1 Имя "File" отсутствует в текущем контексте
khkhara: скорее всего нужно указать путь к файлу
ruslol: добавь в начала кода using System.IO;
ruslol: Правильный текстовый файл:
ruslol: Сергеев:Иван:Алексеевич:Мужской:34:Санкт-Петербург:Кариес;
Белоусова:Элина:Станислава:Женский:27:Москва:Ангина;
Павлов:Николай:Дмитриевич: Мужской:89:Астрахань:Сахарный диабет
ruslol: и эту строку String file = File.ReadAllText("persons.txt"); поменяй на эту: String file = File.ReadAllText("persons.txt",Encoding.GetEncoding(1251));
ruslol: и,если не знаешь, чтобы приложение не закрылось раньше времени,добавь в конце кода Console.ReadKey();
khkhara: все сделал, спасибо большое)
Похожие вопросы
Предмет: Алгебра, автор: evgeniakopylova869
Предмет: Математика, автор: Forten2003