Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
1 / 1 / 1
Регистрация: 28.11.2014
Сообщений: 45
1

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

01.04.2015, 20:55. Просмотров 2093. Ответов 2
Метки нет (Все метки)


Добрый вечер. Ребята, помогите отсортировать считанный список.
В файл нужно вывести фамилию и имя студента в порядке убывания их среднего балла.
Очень нужно. Спасибо за внимание)

Пример файла IN:
Код
4
Ivanov Vasiliy 5 3 4
Petrov Sergey 4 3 5
Konstantinov Nikolay 5 5 5
Kuznetsov Ivan 5 4 4
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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();
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.04.2015, 20:55
Ответы с готовыми решениями:

Вывести список неуспевающих студентов в порядке убывания количества пропущенных ими занятий
Сама задача: Группе студентов в результате полусеместровой аттестации были выставлены оценки по...

Отсортировать список по названию файла в порядке возрастания и убывания
Есть список List&lt;string&gt;. В нем пути к файлам, такие вот: /dir1/02/202020.txt...

Вывести эти элементы в порядке убывания их индексов
Дан целочисленный массив размера N . Найти два соседних элемента, сумма которых минимальна. Вывести...

Как вывести числа в порядке убывания\возрастания
Скажем, у меня имеются 3 переменных h = 12.1 j = 10 k = 5 Как мне вывести эти числа в порядке...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
Записывайтесь на профессиональные курсы С#-разработчиков‌
2
68 / 68 / 42
Регистрация: 30.03.2015
Сообщений: 372
01.04.2015, 21:27 2
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
 
namespace ConsoleApplication1
{
    class Student
    {
        public string surname;
        public string name;
        public byte phys;
        public byte mat;
        public byte info;
 
        public Student(string line)
        {
            string[] parts = line.Split();
 
            surname = parts[0];
            name = parts[1];
            phys = byte.Parse(parts[2]);
            mat = byte.Parse(parts[3]);
            info = byte.Parse(parts[4]);
        }
 
        public override string ToString()
        {
            return string.Format("{0} {1} {2} {3} {4}", surname, name, phys, mat, info);
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Source list of students:\n");
 
            IEnumerable<Student> students = File.ReadAllLines(@"C:\Users\Constantine\Desktop\students.txt").Select(i => new Student(i));
            foreach (var s in students) Console.WriteLine(s.ToString());
 
            Console.WriteLine("Sorted list of students:\n");
            foreach (var s in students.OrderByDescending(i => (i.phys + i.mat + i.info) / 3)) Console.WriteLine(s.ToString());
        }
    }
}
Файл students.txt:
Ivanov Vasiliy 5 3 4
Petrov Sergey 4 3 5
Konstantinov Nikolay 5 5 5
Kuznetsov Ivan 5 4 4
Добавлено через 4 минуты
Запись в файл:
C#
1
File.WriteAllLines(@"C:\Users\Constantine\Desktop\studentsSorted.txt", students.OrderByDescending(i => (i.phys + i.mat + i.info) / 3).Select(i => i.ToString()));
1
Warrior
497 / 424 / 177
Регистрация: 23.11.2014
Сообщений: 932
01.04.2015, 21:30 3
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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);
    }
}
1
Вложения
Тип файла: txt in.txt (94 байт, 19 просмотров)
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.04.2015, 21:30

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

Подсчитать баллы за тест и вывести в порядке убывания
Здравствуйте! Необходимо достать из файла студентов (в файле они в n-строк в формате &quot;Морозов...

Вывести на экран четные степени числа 2 от 2^10 до 2^2 в порядке убывания
Используя сначала цикл с условием, а затем - цикл с переменной, напишите программу, которая выводит...

Вывести четные числа из массива в порядке убывания индексов
Array9. Дан целочисленный массив размера N. Вывести все содержащиеся в данном массиве четные...

Рекурсия: вывести все натуральные числа не больше N в порядке убывания
Разработать рекурсивный метод, который по заданному натуральному числу N (N&gt;=1000) выведет на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.