Чтение и запись текстовых файлов - 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)
{
//...
}