Чтение и запись текстовых файлов - C#
Формулировка задачи:
Дан текстовый файл (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
Выведите три действительных числа: средний балл всех учащихся по математике,
по физике, по информатике. Определите учащихся с наилучшей успеваемостью, то есть с
максимальным средним баллом по трем предметам. Выведите в файл out.txt одного или
нескольких учащихся, имеющих максимальный средний балл.
Листинг программы
- namespace _1
- {
- class Info
- {
- string[] all_text_arr;
- public double Avr_math { get; private set; }
- public double Avr_ph { get; private set; }
- public double Avr_inf { get; private set; }
- string[] lastName;
- string[] name;
- int[] math;
- int[] ph;
- int[] inf;
- double[] avr; //средний бал
- public Info(string path)
- {
- all_text_arr = File.ReadAllLines(path).Skip(1).ToArray(); // заносим в массив все строки кроме первой
- lastName = new string[all_text_arr.Length];
- name = new string[all_text_arr.Length];
- math = new int[all_text_arr.Length];
- ph = new int[all_text_arr.Length];
- inf = new int[all_text_arr.Length];
- avr = new double[all_text_arr.Length];
- for (int i = 0; i < all_text_arr.Length; i++)
- {
- lastName[i] = all_text_arr[i].Split(' ')[0];
- name[i] = all_text_arr[i].Split(' ')[1];
- math[i] = int.Parse(all_text_arr[i].Split(' ')[2]);
- ph[i] = int.Parse(all_text_arr[i].Split(' ')[3]);
- inf[i] = int.Parse(all_text_arr[i].Split(' ')[4]);
- avr[i] = (math[i] + ph[i] + inf[i]) / 3;
- }
- Avr_math = math.Average();
- Avr_ph = ph.Average();
- Avr_inf = inf.Average();
- }
- public string[] Max()
- {
- double avr_max = avr.Max();
- var list = new List<string>();
- for (int i = 0; i < all_text_arr.Length; i++)
- {
- if (avr[i] == avr.Max()) list.Add(lastName[i] + " " + name[i] + " средний балл: " + avr[i]);
- }
- return list.ToArray();
- }
- }
- Main(string[] args)
- {
- Info inf = new Info("in.txt");
- Console.WriteLine("Средний балл по математике: {0}", inf.Avr_math);
- Console.WriteLine("Средний балл по физике: {0}", inf.Avr_ph);
- Console.WriteLine("Средний балл по информатике: {0}", inf.Avr_inf);
- Console.WriteLine("C наилучшей успеваемостью:");
- foreach (var item in inf.Max())
- {
- Console.WriteLine(item);
- }
- File.WriteAllLines("out.txt", inf.Max());
- Console.ReadLine();
- }
В 57 строке ошибка: метод должен иметь тип возвращаемого значения.... Никак не могу сообразить. Подскажите, пожалуйста
Решение задачи: «Чтение и запись текстовых файлов»
textual
Листинг программы
- static void Main(string[] args)
- {
- //...
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д