Чтение и запись текстовых файлов - 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 одного или нескольких учащихся, имеющих максимальный средний балл.
Листинг программы
  1. namespace _1
  2. {
  3. class Info
  4. {
  5. string[] all_text_arr;
  6. public double Avr_math { get; private set; }
  7. public double Avr_ph { get; private set; }
  8. public double Avr_inf { get; private set; }
  9. string[] lastName;
  10. string[] name;
  11. int[] math;
  12. int[] ph;
  13. int[] inf;
  14. double[] avr; //средний бал
  15. public Info(string path)
  16. {
  17. all_text_arr = File.ReadAllLines(path).Skip(1).ToArray(); // заносим в массив все строки кроме первой
  18. lastName = new string[all_text_arr.Length];
  19. name = new string[all_text_arr.Length];
  20. math = new int[all_text_arr.Length];
  21. ph = new int[all_text_arr.Length];
  22. inf = new int[all_text_arr.Length];
  23. avr = new double[all_text_arr.Length];
  24. for (int i = 0; i < all_text_arr.Length; i++)
  25. {
  26. lastName[i] = all_text_arr[i].Split(' ')[0];
  27. name[i] = all_text_arr[i].Split(' ')[1];
  28. math[i] = int.Parse(all_text_arr[i].Split(' ')[2]);
  29. ph[i] = int.Parse(all_text_arr[i].Split(' ')[3]);
  30. inf[i] = int.Parse(all_text_arr[i].Split(' ')[4]);
  31. avr[i] = (math[i] + ph[i] + inf[i]) / 3;
  32. }
  33. Avr_math = math.Average();
  34. Avr_ph = ph.Average();
  35. Avr_inf = inf.Average();
  36. }
  37. public string[] Max()
  38. {
  39. double avr_max = avr.Max();
  40. var list = new List<string>();
  41. for (int i = 0; i < all_text_arr.Length; i++)
  42. {
  43. if (avr[i] == avr.Max()) list.Add(lastName[i] + " " + name[i] + " средний балл: " + avr[i]);
  44. }
  45. return list.ToArray();
  46. }
  47. }
  48. Main(string[] args)
  49. {
  50. Info inf = new Info("in.txt");
  51. Console.WriteLine("Средний балл по математике: {0}", inf.Avr_math);
  52. Console.WriteLine("Средний балл по физике: {0}", inf.Avr_ph);
  53. Console.WriteLine("Средний балл по информатике: {0}", inf.Avr_inf);
  54. Console.WriteLine("C наилучшей успеваемостью:");
  55. foreach (var item in inf.Max())
  56. {
  57. Console.WriteLine(item);
  58. }
  59. File.WriteAllLines("out.txt", inf.Max());
  60. Console.ReadLine();
  61. }
В 57 строке ошибка: метод должен иметь тип возвращаемого значения.... Никак не могу сообразить. Подскажите, пожалуйста

Решение задачи: «Чтение и запись текстовых файлов»

textual
Листинг программы
  1. static void Main(string[] args)
  2. {
  3.    //...
  4. }

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут