Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 23.11.2021
Сообщений: 35
.NET 6

Работа с текстовым файлом

10.02.2022, 17:07. Показов 696. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте нужна ваша помощь.
Вот задание :
Сформировать файл “stud”, который имеет следующую структуру: фамилию студента, год рождения, пол. Распечатать, используя файл, список студентов мужского рода и указать возраст. В конце списка распечатать средний возраст студентов.

Не могу сделать, что-бы программа показывала среднее значение возраста...
И не знаю как сделать, что-бы оно показывало только студентов мужского пола.
Помогите доделать

Вот наш файл :

Студент Пучко, 1999, м
Студент Кошубынський, 2000, м
Студент Самков, 2001, м
Студент Смачило, 1999, м
Студент Петров, 2001, м
Студент Петрова, 2001, ж

Код Program.cs :
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using System.Text;
using z3._2;
 
Console.OutputEncoding = System.Text.Encoding.UTF8;
 
var file_patch = @"D:\Academy\2 курс\Предмети\Практика\z3.2\z3.2\TextFile1.txt";
 
StreamReader reader = null;
 
List<z3._2.Student> students = new List<z3._2.Student>();
 
try
{
    reader = new StreamReader(file_patch, Encoding.Unicode);
    string line;
    while ((line = reader.ReadLine()) != null)
    {
        
        string[] parts = line.Split(',');
        students.Add(new Student
        {
            LastName = parts[0],
            Year = int.Parse(parts[1]),
            poll = parts[2],
        });
    }
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}
finally
{
    if(reader != null)
        reader.Close();
}
Console.WriteLine("Complete!!!");
 
 
foreach (var p in students)
    Console.WriteLine($"{p.LastName} {p.Year - 2022}  {p.poll}");
Код Student.cs
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
namespace z3._2
{
    public class Student
    {
 
        public string LastName { get; set; }
        public int Year { get; set; }
        public string poll { get; set; }
 
        public override string ToString()
        {
            return $"{LastName}: {Year} and {poll}";
        }
        
    }
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.02.2022, 17:07
Ответы с готовыми решениями:

Работа с текстовым файлом.
Дан текстовый файл. Найти номер самой короткой строки. Помогите, пожалуйста, решить.

Работа с текстовым файлом C#
Всё компилится но нет файл пуст, в чём может быть дело? StreamWriter usersFile = new StreamWriter(&quot;users.txt&quot;, true); ...

Работа с текстовым файлом
Есть текстовый файл примерно следующего содержания: //комментарий variable1 value1 variable2 &quot;value2&quot; variable3 10 ...

7
643 / 338 / 139
Регистрация: 19.10.2013
Сообщений: 1,209
10.02.2022, 17:20
Цитата Сообщение от jerzy_all Посмотреть сообщение
Не могу сделать, что-бы программа показывала среднее значение возраста...


C#
1
students.Average(i=>i.Year)
Добавлено через 2 минуты
Цитата Сообщение от jerzy_all Посмотреть сообщение
И не знаю как сделать, что-бы оно показывало только студентов мужского пола.
C#
1
students.FindAll(i=>i.poll.IndexOf("м",StringComparison.InvariantCultureIgnoreCase)>=0)
0
0 / 0 / 0
Регистрация: 23.11.2021
Сообщений: 35
10.02.2022, 17:27  [ТС]
куда именно мне его вписать ?
0
 Аватар для Kazbek17
1484 / 939 / 454
Регистрация: 06.02.2012
Сообщений: 2,868
10.02.2022, 17:33
Цитата Сообщение от jerzy_all Посмотреть сообщение
куда именно мне его вписать ?
В коде, где вы хотите получить такую информацию.
C#
1
2
3
var result = students.Where(i => i.poll == "м");
    foreach(Student st in result)
      Console.WriteLine(st.ToString());
0
643 / 338 / 139
Регистрация: 19.10.2013
Сообщений: 1,209
10.02.2022, 17:34
Лучший ответ Сообщение было отмечено jerzy_all как решение

Решение

с 38й строки :

C#
1
Console.WriteLine($"Средний возраст  { students.Average(i =>DateTime.Now.Year- i.Year)}");


C#
1
2
3
4
5
6
7
8
9
10
Console.WriteLine($"Студенты мужского пола");
foreach (var male in students.FindAll(i=>i.poll.IndexOf("м",StringComparison.InvariantCultureIgnoreCase)>=0))
{
Console.WriteLine(male.ToString());
}
 
 
 
 
Console.WriteLine($"Средний возраст  { students.Average(i =>DateTime.Now.Year- i.Year)}");
0
0 / 0 / 0
Регистрация: 23.11.2021
Сообщений: 35
10.02.2022, 17:37  [ТС]
Вписываю
C#
1
students.Average(i => i.Year);
Оно просто показывает годы рождения всех кто есть в списку

Добавлено через 2 минуты
Всё работает, не так вписал, спасибо!!!!
0
643 / 338 / 139
Регистрация: 19.10.2013
Сообщений: 1,209
10.02.2022, 17:39
jerzy_all,

C#
1
    Console.WriteLine($"Средний возраст  { (double)students.Sum(i => DateTime.Now.Year- i.Year)/students.Count}");
0
0 / 0 / 0
Регистрация: 23.11.2021
Сообщений: 35
10.02.2022, 17:52  [ТС]
Спасибо большое!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.02.2022, 17:52
Помогаю со студенческими работами здесь

Работа с текстовым файлом в с#
У меня возникло несколько вопросов по поводу c#. Как в c# в уже созданный текстовый документ вставлять строки? И можно ли сделать поиск по...

Работа с текстовым файлом
Здравствуйте! Написала программу, но есть одна загвоздка. По условию С помощью программы можно выбрать текстовый файл *.txt в любой...

Работа с текстовым файлом
Здравствуйте, надо найти в файле по ключу слово, номер строки этого слова и вернуть это дело из функциии, подскажите как? Как я...

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

Работа с текстовым файлом
Дана последовательность из n целых чисел.Создать файл и записать в него числа последовательности не кратные заданному числу,Вывести...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru