[C++] Ciekawe zadanie ze struktur

Witam od niedawna uczę się c++ i w książce znalazłem takie coś:

struct pracownik

    {

           string imie, nazwisko;

           int wiek;

           float zarobki;

           };


    struct listapracownikow

    {

           int ile;

           pracownik tab[100];

           };


    listapracownikow p;

    cout << "podaj ilosc pracownikow\n";

    cin >> p.ile;


    for (int i=1; i<=p.ile; i++){

        cout << "Podaj imie\n";

        cin >> p.tab[i].imie;

        cout << "Podaj nazwisko\n";

        cin >> p.tab[i].nazwisko;

        cout << "Podaj wiek\n";

        cin >> p.tab[i].wiek;   

        cout << "Podaj zarobki\n";

        cin >> p.tab[i].zarobki;

        }


    int w, ile=0;

    cout << "podaj wiek do wyswietlenia\n";

    cin >> w;


    for (int i=1; i<=p.ile; i++) {

        if(p.tab[i].wiek > w){

                         cout << p.tab[i].imie << " " << p.tab[i].nazwisko << "\n";

                         ile++;

                         }

                         }

    cout << "Pracownikow powyzej " << w << "lat jet: " << ile << "\n";

i mam tak przerobić ten kod żeby: a. wczytać dane do n klas b. obliczyć średnią uczniów z poszczególnych klas c. obliczyć średnią klasy Jak przerobic powyższy kod żeby wykonać te podpunkty? Trzeba te dwie struktury przerobić na tak:

struct sluchacz

{ string nazwisko;

       int oceny[5];

};


struct klasa

{ int iles;

       int ilep;

       sluchacz sl[10];

};


klasa K[5];

ale co dalej?