Отсортировать студентов по их среднему баллу и добавить студента в группу с++

Помогите, пожалуйста, нужно отсортировать студентов по их среднему баллу и добавить студента в группу вот исходник:

#include <fstream>
#include <string>
#include <vector>
using namespace std;

class Student {
private:
    int age;
    string name;
    vector<int> grades;
public:
    Student() :Student(0, "sdfs", { 0 })
    {

    }

    Student(int age, string name, vector<int> grades) {
        this->name = name;
        this->age = age;
        this->grades = grades;
    }

    int GetAge() {
        return this->age;
    }
    string GetName() {
        return this->name;
    }

    // Сетеры
    void SetAge(int age) {
        this->age = age;
    }
    void SetName(string name) {
        this->name = name;
    }
    void SetGrades(vector<int> grades) {
        /*grades.resize(7);
        grades = {1,5,8,9,7,12,10};
        for (auto const& element : grades)
            cout << element << ' ';*/

        this->grades = grades;

    }
    void AVG() {
        float count = 0;
        for (int i = 0; i < grades.size(); i++) {
            count += grades[i];

        }
        cout<< count / grades.size();
    }
    void addmark() {
        int chislo;
        cin >> chislo;
        grades.push_back(chislo);

    }
    void printmark() {
        for (int i = 0; i < grades.size(); i++) {
            cout << grades[i]<<" ";
        }
    }



    void Print() {
        cout << "Ваш возраст: " << age << " , " << " Вас зовут: " << name;
    }
};

class Group {
private:
    
    string title;
    vector<Student> students;
public:

    Group() : Group("плоывитпл")
    {
        students = {};
    }
    Group(string title) : title(title) {
        //grades = vector<int>();
        students = {};
    }
    Group(string title, vector<Student> students) {
        this->title = title;
        this->students = students;

    }
    string GetTitle() {
        return this->title;
    }
    void SetTitle(string title) {
        this->title = title;
    }


    void AddStudent(Student s) {
        students.push_back(s);
        students.emplace_back();
    }
    //////void SetStudents() {
    //////  students = { "sdfsdf","fdsfds","dsffsdf","sdgfgdfg" };
    //////  for (auto const& element : students)
    //////      cout << element << ' ';

    void SetGrades(vector<Student> students) {
        /*grades.resize(7);
        grades = {1,5,8,9,7,12,10};
        for (auto const& element : grades)
        cout << element << ' ';*/
        this->students = students;
        //////}
    }
    void cliar(int n) {
        for (long i =n ; i < n; ++i)
        {
            students[i] = students[i + 1];
        }
        
    }
    void Print() {
        cout << "Название " << title;
    }
};


void main() {
    setlocale(LC_ALL, "rus");
    Group g;
    g.SetTitle("Vbu021");
    g.Print();
    Student s2(18, "gsdgsd", { 58,4564,64,46,4,5,3 });
    cout << endl;
    s2.Print();
    cout << "  Средний балл: "; 
    s2.AVG();
    cout << endl;
    s2.printmark();
    cout << endl;
    s2.addmark();
    cout << endl;
    s2.printmark();
    Student s1(15, "gsdfyuigsd", { 18,44,64,46,4,5,3 });
    cout << endl;
    s1.Print(); 
    cout << " Средний балл: ";
    s1.AVG();
    cout << endl;
    s1.printmark();
    cout << endl;
    s1.addmark();
    cout << endl;
    s1.printmark();
    Student s3(26, "Vlad", { 50,44,14,8,7,5,3 });
    cout << endl;
    s3.Print();
    cout << " Средний балл: ";
    s3.AVG();
    cout << endl;
    s2.printmark();
    cout << endl;
    s3.addmark();
    cout << endl;
    s3.printmark();
    cout << endl;
    cout << "GROUUUP";
    cout << endl;
    g.cliar(0);
    
}```

Ответы (0 шт):