Сортировка файла по снижению среднего бала студентов - 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(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д