Сортировать список студентов из файла - C#

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

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

Список студенческой группы записан на диске как текстовый файл. Каждая строка списка содержит фамилию студента и три экзаменационные оценки, причем список никак не упорядочен. Составить программу, которая корректирует список и сортирует его либо по среднему баллу, либо по алфавиту, либо по оценкам, либо по заданному предмету. Список записывается в файл либо под старым, либо под новым именем.

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

textual
Листинг программы
  1.         static void Main(string[] args)
  2.         {
  3.             string NonSortPath = "list.txt";
  4.             string SortPath = "list2.txt";
  5.             string[] list = File.ReadAllLines(NonSortPath, Encoding.Default);
  6.             List<Student> students = new List<Student>();
  7.             List<string> temp = new List<string>();
  8.  
  9.             foreach (var str in list)
  10.             {
  11.               temp.AddRange(str.Split(' '));
  12.                 students.Add(new Student {
  13.                     lastname = temp[0],
  14.                     one = Convert.ToInt32(temp[1]),
  15.                     two = Convert.ToInt32(temp[2]),
  16.                     trh = Convert.ToInt32(temp[3]),
  17.                     Score = (Convert.ToInt32(temp[1]) + Convert.ToInt32(temp[2]) + Convert.ToInt32(temp[3]))/3 });
  18.                 temp.Clear();
  19.             }
  20.  
  21.             Console.WriteLine("Выберите способ сортировки:\n 1-по Алфавиту,\n 2 - По среднему баллу,\n 3 - По предмету");
  22.             int vibor = int.Parse(Console.ReadLine());
  23.             var st = students.OrderBy(i => i.lastname);
  24.  
  25.             switch (vibor)
  26.             {
  27.                 case 1:
  28.                     st = students.OrderBy(i => i.lastname);
  29.                     break;
  30.                 case 2:
  31.                      st = students.OrderBy(i => i.Score);
  32.                     break;
  33.                 case 3:
  34.                      st = students.OrderBy(i => i.one);
  35.                     break;
  36.                 default:
  37.                      st = students.OrderBy(i => i.lastname);
  38.                     break;
  39.             }
  40.  
  41.  
  42.             foreach (var item in st)
  43.             {
  44.                 Console.WriteLine("{0}\t{1} {2} {3} Средний балл - {4}", item.lastname, item.one, item.two, item.trh, item.Score);
  45.                 File.AppendAllText(SortPath, String.Format("{0}\t{1} {2} {3} Средний балл - {4}\n", item.lastname, item.one, item.two, item.trh, item.Score));
  46.             }
  47.  
  48.            // File.AppendAllLines(SortPath, st.Select(i=> new { i.lastname, i.one, i.two, i.trh, i.Score }.ToString()));
  49.             Console.ReadKey();
  50.         }
  51.  
  52.         public class Student
  53.         {
  54.             public string lastname{ get; set; }
  55.             public int one{ get; set; }
  56.             public int two{ get; set; }
  57.             public int trh{ get; set; }
  58.             public int Score { get; set; }
  59.         }

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


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

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

10   голосов , оценка 3.8 из 5

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

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

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