Помогите сделать структуру на c++.

Реализовать данную программу.
По дате
По Рейтингу
Я задолбался писать это "чудо". ТЗ дикое, реализовывать такое на массиве - это лютый пипец. Результат работы:
123456789101112131415161718
Студенты по возрастанию среднего балла
ФИО: '8ST' Группа: 2 Оценки: 1 1 1 2 2 Средний балл: 1.4
ФИО: '4ST' Группа: 3 Оценки: 3 2 2 3 2 Средний балл: 2.4
ФИО: '3ST' Группа: 3 Оценки: 3 3 2 3 3 Средний балл: 2.8
ФИО: '6ST' Группа: 2 Оценки: 3 3 3 3 3 Средний балл: 3
ФИО: '7ST' Группа: 3 Оценки: 3 4 3 4 3 Средний балл: 3.4
ФИО: '2ST' Группа: 1 Оценки: 4 4 4 4 3 Средний балл: 3.8
ФИО: '5ST' Группа: 1 Оценки: 4 4 4 4 4 Средний балл: 4
ФИО: '10ST' Группа: 5 Оценки: 4 5 4 5 4 Средний балл: 4.4
ФИО: '1ST' Группа: 1 Оценки: 5 5 5 5 4 Средний балл: 4.8
ФИО: '9ST' Группа: 5 Оценки: 5 5 5 5 5 Средний балл: 5
Хорошисты и отличники
ФИО: '7ST' Группа: 3
ФИО: '2ST' Группа: 1
ФИО: '5ST' Группа: 1
ФИО: '10ST' Группа: 5
ФИО: '1ST' Группа: 1
ФИО: '9ST' Группа: 5
Программа на достаточно неплохом уровне умеет обрабатывать ошибки ввода и разного рода нештатные ситуации.
Исходник тут: https://pastebin.com/n5m5SXJf