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

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

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

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

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

textual
Листинг программы
        static void Main(string[] args)
        {
            string NonSortPath = "list.txt";
            string SortPath = "list2.txt";
            string[] list = File.ReadAllLines(NonSortPath, Encoding.Default);
            List<Student> students = new List<Student>();
            List<string> temp = new List<string>();
 
            foreach (var str in list)
            {
              temp.AddRange(str.Split(' '));
                students.Add(new Student {
                    lastname = temp[0],
                    one = Convert.ToInt32(temp[1]),
                    two = Convert.ToInt32(temp[2]),
                    trh = Convert.ToInt32(temp[3]),
                    Score = (Convert.ToInt32(temp[1]) + Convert.ToInt32(temp[2]) + Convert.ToInt32(temp[3]))/3 });
                temp.Clear();
            }
 
            Console.WriteLine("Выберите способ сортировки:\n 1-по Алфавиту,\n 2 - По среднему баллу,\n 3 - По предмету");
            int vibor = int.Parse(Console.ReadLine());
            var st = students.OrderBy(i => i.lastname);
 
            switch (vibor)
            {
                case 1:
                    st = students.OrderBy(i => i.lastname);
                    break;
                case 2:
                     st = students.OrderBy(i => i.Score);
                    break;
                case 3:
                     st = students.OrderBy(i => i.one);
                    break;
                default:
                     st = students.OrderBy(i => i.lastname);
                    break;
            }
 
 
            foreach (var item in st)
            {
                Console.WriteLine("{0}\t{1} {2} {3} Средний балл - {4}", item.lastname, item.one, item.two, item.trh, item.Score);
                File.AppendAllText(SortPath, String.Format("{0}\t{1} {2} {3} Средний балл - {4}\n", item.lastname, item.one, item.two, item.trh, item.Score));
            }
 
           // File.AppendAllLines(SortPath, st.Select(i=> new { i.lastname, i.one, i.two, i.trh, i.Score }.ToString()));
            Console.ReadKey();
        }
 
        public class Student
        {
            public string lastname{ get; set; }
            public int one{ get; set; }
            public int two{ get; set; }
            public int trh{ get; set; }
            public int Score { get; set; }
        }

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


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

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

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