Вопрос задан 31.07.2023 в 23:04. Предмет Информатика. Спрашивает Макаров Дава.

C# Дан текстовый файл, содержащий сведения о пациентах глазной клиники. Каждая строка файла

содержит: фамилию, имя, отчество пациента, пол, возраст, место проживания(город), диагноз. Вывести по запросу данные - о количестве пациентов-мужчин и количестве пациентов-женщин - о пациентах с заданным диагнозом в алфавитном порядке
0 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. я не доктор, соответственно в плане диагноза я написал чушь.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения данной задачи вам потребуется использовать язык программирования C# и работать с файлами. Вот пример кода, который поможет вам выполнить указанные запросы:

csharp
using System; using System.Collections.Generic; using System.IO; using System.Linq; class Program { static void Main() { string filePath = "path/to/your/textfile.txt"; // Замените на путь к вашему файлу List<Patient> patients = ReadPatientsFromFile(filePath); Console.WriteLine("Количество пациентов-мужчин: " + patients.Count(p => p.Gender == Gender.Male)); Console.WriteLine("Количество пациентов-женщин: " + patients.Count(p => p.Gender == Gender.Female)); Console.Write("Введите диагноз для поиска: "); string searchDiagnosis = Console.ReadLine().Trim(); List<Patient> patientsWithDiagnosis = patients.Where(p => p.Diagnosis == searchDiagnosis) .OrderBy(p => p.FullName) .ToList(); Console.WriteLine($"Пациенты с диагнозом '{searchDiagnosis}' в алфавитном порядке:"); foreach (var patient in patientsWithDiagnosis) { Console.WriteLine(patient.FullName); } } static List<Patient> ReadPatientsFromFile(string filePath) { List<Patient> patients = new List<Patient>(); string[] lines = File.ReadAllLines(filePath); foreach (string line in lines) { string[] parts = line.Split(';'); if (parts.Length >= 7) { string lastName = parts[0]; string firstName = parts[1]; string middleName = parts[2]; Gender gender = (parts[3].ToLower() == "м") ? Gender.Male : Gender.Female; int age = int.Parse(parts[4]); string city = parts[5]; string diagnosis = parts[6]; patients.Add(new Patient(lastName, firstName, middleName, gender, age, city, diagnosis)); } } return patients; } } enum Gender { Male, Female } class Patient { public string LastName { get; set; } public string FirstName { get; set; } public string MiddleName { get; set; } public Gender Gender { get; set; } public int Age { get; set; } public string City { get; set; } public string Diagnosis { get; set; } public Patient(string lastName, string firstName, string middleName, Gender gender, int age, string city, string diagnosis) { LastName = lastName; FirstName = firstName; MiddleName = middleName; Gender = gender; Age = age; City = city; Diagnosis = diagnosis; } public string FullName => $"{LastName} {FirstName} {MiddleName}"; }

Важно убедиться, что путь к вашему текстовому файлу правильно указан в переменной filePath. Код читает информацию из файла, разбивает каждую строку на поля и создает список объектов типа Patient. Затем он производит запросы по количеству пациентов-мужчин и пациентов-женщин, а также ищет пациентов с заданным диагнозом и выводит их в алфавитном порядке.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос