Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 01.10.2016
Сообщений: 33

Опредение среднего балла по данным из файла

14.05.2017, 00:23. Показов 4783. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан текстовый файл (in.txt) содержащий список учащихся и их оценки по трем
предметам: математике, физике, информатике.
Формат файла: сначала количество учащихся n, затем n строк, каждая из которых
содержит фамилию, имя и три числа. Данные в строке разделены одним пробелом.
Оценки принимают значение от 1 до 5.
Пример входного файла:
4
Ivanov Vasiliy 4 3 4
Petrov Sergey 5 3 5
Konstantinov Nikolay 4 4 5
Kuznetsov Ivan 5 5 5

I Определите средний балл каждого из учащихся. Выведите в файл out.txt фамилии и
имена учащихся, не имеющих троек (а также двоек и колов).
II Выведите три действительных числа: средний балл всех учащихся по математике,
по физике, по информатике. Определите учащихся с наилучшей успеваемостью, то есть с
максимальным средним баллом по трем предметам. Выведите в файл out.txt одного или
нескольких учащихся, имеющих максимальный средний балл.
III Выведите в файл out.txt фамилии и имена учащихся в порядке убывания их
среднего балла.

Помогите пожалуйста
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.05.2017, 00:23
Ответы с готовыми решениями:

Определение среднего балла
Доброго всем времени суток. Передо мной стоит следующая задача: Учащиеся одного класса (известно,что их не больше 20) сдают 4 экзамена....

Программа вычисления среднего балла
Задана таблица успеваемости учеников 10 класса за первое полугодие по 14 предметам. Составить программу вычисления среднего балла каждого...

Составить программу вычисления среднего балла
1 Задана таблица успеваемости учеников 10 класса за первое полугодие по 14 предметам. Составить программу вычисления среднего балла каждого...

4
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
14.05.2017, 04:45
Что-то вроде этого
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
using System;
using System.Linq;
using System.IO;
 
namespace ConsoleApp4
{
    class Program
    {
        struct Ball
        {
            public string FIO;
            public int math, phys, inf;
            public double ave;
        }
 
        static void exit()
        {
            Console.Write("Оценки должны быть < 5!\nНажмите любую клавишу...");
            Console.ReadKey(true);
            Environment.Exit(1);
        }
 
        static void Main(string[] args)
        {
            string path = @"E:\in.txt", pathout = @"E:\out.txt";
            string[][] a = File.ReadLines(path).Select(v => v.Split(' ').ToArray()).ToArray();
            Ball[] b = new Ball[a.GetLength(0)];
            for (int i = 0; i < b.Length; i++)
            {
                b[i].FIO = a[i][0] + ' ' + a[i][1];
                if (int.TryParse(a[i][2], out b[i].math))
                    if (b[i].math > 5)
                        exit();
                if (int.TryParse(a[i][3], out b[i].phys))
                    if (b[i].phys > 5)
                        exit();
                if (int.TryParse(a[i][4], out b[i].inf))
                    if (b[i].inf > 5)
                        exit();
                b[i].ave = (double)(b[i].inf + b[i].math + b[i].phys) / 3;
            }
 
            File.AppendAllText(pathout, "Не имеющие троек:" + Environment.NewLine);
            for (int i = 0; i < b.Length; i++)
            {
                int[] ave1 = { b[i].math, b[i].inf, b[i].phys };
                if (ave1.Average() > 3)
                    File.AppendAllText(pathout, b[i].FIO + Environment.NewLine);
            }
 
            File.AppendAllText(pathout, Environment.NewLine + $"Ср. математика: {b.Select(v => v.math).Average()}; " +
                $"Ср. физика: {b.Select(v => v.phys).Average()}; Ср. информатика: {b.Select(v => v.inf).Average()}" + Environment.NewLine);
 
            File.AppendAllText(pathout, Environment.NewLine + "Максимальный средний балл имеет(ют):");
            for (int i = 0; i < b.Length; i++)
                if (b[i].ave == b.Select(v => v.ave).Max())
                    File.AppendAllText(pathout,Environment.NewLine + b[i].FIO);
 
            File.AppendAllText(pathout, Environment.NewLine + Environment.NewLine + "В порядке убывания среднего балла:" +
                Environment.NewLine + String.Join(Environment.NewLine, b.OrderByDescending(v => v.ave).Select(v => v.FIO)));
        }
    }
}
1
0 / 0 / 0
Регистрация: 07.12.2016
Сообщений: 7
21.05.2017, 01:41
b[i].FIO = a[i][0] + ' ' + a[i][1]; на этой строке выводит ошибку "индекс находился вне границ массива"
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
21.05.2017, 01:52
geimerd, странно, у меня всё в порядке

Добавлено через 5 минут
Файл должен быть без числа в начале:
Ivanov Vasiliy 4 3 4
Petrov Sergey 5 3 5
Konstantinov Nikolay 4 4 5
Kuznetsov Ivan 5 5 5
0
0 / 0 / 0
Регистрация: 01.10.2016
Сообщений: 33
22.05.2017, 13:55  [ТС]
у меня тоже ошибку выводит
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.05.2017, 13:55
Помогаю со студенческими работами здесь

Ошибка FormatException не обработано при вычислении среднего балла
Добрый день. Написал простенькую программу вычисления среднего балла по трем предметам. После запуска программы и ввода чисел вылазит...

Структура с именем student. Упорядочить записи по возрастанию среднего балла
Создайте структуру с именем student, содержащую поля: фамилия и инициалы, номер группы, успеваемость (массив из пяти элементов). Создать...

Составить программу вычисления среднего балла каждого из 34 учеников класса
Задана таблица успеваемости учеников 10 класса за первое полугодие по 14 предметам. Составить программу вычисления среднего балла каждого...

Сформировать список студентов в котором студенты расположены по убыванию среднего балла
сформировать список студентов в котором студенты расположены по убыванию среднего балла. этот список выдать

Расчет среднего балла по данным, находящимся в StringGrid
Помогите пожалуйста) мне нужно сложить содержимое строчки StringGrida была идея присваивать переменную каждой ячейки и просто сложить между...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru