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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.643 из 5