Вывести список студентов в порядке убывания - C#

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

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

Добрый вечер. Ребята, помогите отсортировать считанный список. В файл нужно вывести фамилию и имя студента в порядке убывания их среднего балла. Очень нужно. Спасибо за внимание) Пример файла IN:
4
Ivanov Vasiliy 5 3 4
Petrov Sergey 4 3 5
Konstantinov Nikolay 5 5 5
Kuznetsov Ivan 5 4 4
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("C:/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[2]), byte.Parse(bufsplit[3]), byte.Parse(bufsplit[4]));
                Console.WriteLine("{0} {1}", i + 1, students[i].Output());
            }
            Console.WriteLine("Файл считан");
            StreamWriter output = new StreamWriter("C:/OUT.txt");
 
           //блок обработки считанных данных
 
            output.Close();
            input.Close();
        }
    }
}

Решение задачи: «Вывести список студентов в порядке убывания»

textual
Листинг программы
using System.IO;
using System.Linq;
 
class Class13
{
    static void Main()
    {
        var t = File.ReadLines("in.txt").Skip(1).Select(n =>
        {
            var strings = n.Split();
            int phys = int.Parse(strings[2]),
                mat = int.Parse(strings[3]),
                info = int.Parse(strings[4]);
            return
                new
                {
                    surname = strings[0],
                    name = strings[1],
                    average = ((double)phys + mat + info) / 3
                };
        }).OrderByDescending(n => n.average).Select(n => n.surname + " " + n.name);
 
 
        File.WriteAllLines("result.txt", t);
    }
}

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


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

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

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