Есть текстовый файл (in.txt) содержащий список учащихся и их оценки по трем предметам: математике, физике, информатике - C#

Узнай цену своей работы

Формулировка задачи:

Написал прогу, а она не работает. Формат файла: сначала количество учащихся n, затем n строк, каждая из которых содержит фамилию, имя и три числа. Данные в строке разделены одним пробелом. Оценки принимают значение от 1 до 5. Пример входного файла: 4 Ivanov Vasiliy 5 3 4 Petrov Sergey 4 3 5 Konstantinov Nikolay 5 5 5 Kuznetsov Ivan 5 4 4 Определите средний балл каждого из учащихся по каждому предмету. Выведите в файл out.txt фамилии и имена учащихся, не имеющих троек (а также двоек и колов).
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace New_3
{
    class Student
    {
        public string surname;
        public string name;
        public byte phys;
        public byte mat;
        public byte info;

        public Student()
        {
            surname = null;
            name = null;
            phys = 0;
            mat = 0;
            info = 0;
 
        }
 
        public Student(string surname, string name, byte mat, byte phys, byte info)
        {
            this.surname = surname;
            this.name = name;
            this.mat = mat;
            this.phys = phys;
            this.info = info;
        }
 
        public string Output()
        {
            return string.Format("{0} {1} {3} {4}", surname, name, mat, phys, info);
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            StreamReader input = new StreamReader("D:/IN.txt");
            byte n = byte.Parse(input.ReadLine());
            Console.WriteLine(n);
            Student[] students = new Student[n];
            string buf = null;
            string[] bufsplit;
             for (int i = 0; i < n; i++)
            {
                buf = input.ReadLine();
                bufsplit = buf.Split(' ');
                students[i] = new Student(bufsplit[0], bufsplit[1], byte.Parse(bufsplit[3]), byte.Parse(bufsplit[4]), byte.Parse(bufsplit[5]));
                Console.WriteLine("{0} {1}", i + 1, students[i].Output());
           }
            Console.WriteLine("Файл считан");
            StreamWriter output = new StreamWriter("D:/Out.txt");
            byte j = 0;
            for(int i=0; i<n; i++)
            {
                if ((students[i].mat > 3) & (students[i].phys > 3) & (students[i].info > 3)) 
                {
                    j++;
                    output.WriteLine(students[i].surname + " " + students[i].name + " " + (students[i].mat + students[i].info + students[i].phys) / 3);
                }
            }
            output.Close();
            input.Close();
        }
    }
}
Причем ошибка на 59 строке.

Решение задачи: «Есть текстовый файл (in.txt) содержащий список учащихся и их оценки по трем предметам: математике, физике, информатике»

textual
Листинг программы
bufsplit[0], bufsplit[1], byte.Parse(bufsplit[2]), byte.Parse(bufsplit[3]), byte.Parse(bufsplit[4])

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


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

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

8   голосов , оценка 4 из 5
Похожие ответы