Сортировка файла по снижению среднего бала студентов - C#

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

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

Задача. 1) Создать файл с полями Фамилия и оценки. Узнать средний бал успеваемости каждого студента. 2) Создать второй файл: Фамилия и средний бал. Отсортировать файл по снижению среднего бала студентов. С пунктом №1 справился. Вот как сортировку сделать? Есть ли идеи? Пример. Студент3 средний бал = 5.0 Студент1 средний бал = 4.5 Студент2 средний бал = 4.0

Решение задачи: «Сортировка файла по снижению среднего бала студентов»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
 
namespace Курсовий_проект_проба_пера_
{
    public class ReverseComparer : IComparer<string>
    {
        public int Compare(string x, string y)
        {
            // Compare y and x in reverse order.
            return y.CompareTo(x);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            int i, n;
            int t1 = 3;
            int t2 = 3;
            string student2;
            string studentName;
            var StudentMarks = new StreamWriter("StudentsMarks.txt");
            var StudentSort = new StreamWriter("StudentsSort.txt");
            Console.WriteLine("\t{0}", "Введiть прiзвище студента");
            string[,] Stud = new string[t1 + 1, t2 + 1];
            string[,] StudSort = new string[t1 + 1, t2 + 1];
            for (i = 0; i < t1; i++) //лiчильник для прiзвищ
            {
                double Sum = 0;
                n = i + 1;                  //нумерацiя з одинички
                Console.Write("Студент №" + n + " ");
                Stud[i, 0] = Console.ReadLine();
                StudentMarks.Write(Stud[i, 0] + " - Оцiнки ", true);
                for (int p = 1; p < t2; p++) //лiчильник для оцiнок
                {
                    if (p == 1)
                    {
                        Console.Write(" Оцiнка за предмет Математика  ");
                    }
                    if (p == 2)
                    {
                        Console.Write(" Оцiнка за предмет Програмування  ");
                    }
                    Stud[i, p] = Console.ReadLine();
                    double Sum1 = Convert.ToDouble(Stud[i, p]);
                    Sum = Sum + Sum1;
                    StudentMarks.Write(Stud[i, p] + ", ", true);
                }
                Stud[i, 3] = Convert.ToString(Sum / 2);
                StudentMarks.Write("Середнiй бал = " + Stud[i, 3], true);
                StudentMarks.WriteLine();
            }
            string[] Student1 = new string[t1];
            string[] Stud2 = new string[t1];
            string[] StudentName1 = new string[t1];
            for (i = 0; i < t1; i++)
            {
                student2 = null;
                studentName = null;
                student2 = Convert.ToString(Stud[i, 3]);
                studentName = Convert.ToString(Stud[i, 0]);
                StudentName1[i] = studentName;
                Student1[i] = student2;
                Stud2[i] = Student1[i];
            }
           ReverseComparer rc = new ReverseComparer();
            Console.WriteLine();
            Console.WriteLine("\nСортування");
            Array.Sort(Student1, rc);
            for (i = 0; i < t1; i++)
            {
                int indexMark = Array.IndexOf(Stud2, Student1[i]);
               string Name = StudentName1[indexMark];
                Console.WriteLine( Name+ "Середній бал = " + Student1[i]);
                StudentSort.WriteLine("Студент " + Name + " середній бал = " + Student1[i], true);
            }
            StudentMarks.Close();
            StudentSort.Close();
            Console.ReadKey();
        }
 
    }
}

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


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

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

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