wyszukiwanie i dopisywanie ocen

0

Witam jestem początkującym programistą i chce zmodernizować pewien program tak aby wyszukiwał osób po nazwisku i dopisywał oceny danej osobie. Proszę o pomoc i z góry dzięki.

#include <cstdlib>
#include <iostream>
#include <iomanip>
using namespace std;

struct STUDENT {
char nazwisko[30], imie[25];
unsigned int idStudenta, liczbaOcen;
};
struct OCENA {
char dataOceny[11];
float ocena;
int idStudenta;
};
//
const unsigned LICZBA_STUDENTOW = 20;
const unsigned LICZBA_OCEN = 200;
STUDENT *PobierzDaneStudenta(int &ile)
{
if(ile<LICZBA_STUDENTOW)
{
STUDENT *S=new STUDENT;
cout<<"Nazwisko: "; cin>>ws>>setw(30)>>S->nazwisko;
cout<<"Imie: "; cin>>ws>>setw(25)>>S->imie;
//cout<<"Id: "; cin>>ws>>S->idStudenta;
S->idStudenta=ile; // ale to zły pomysł.
cout<<"Ocen: "; cin>>ws>>S->liczbaOcen;
++ile;
return S;
}
cout<<"Program nie przewiduje tak licznej grupy"<<endl;
return NULL;
}

void WyswietlListeStudentow(STUDENT G[],int ile)
{
for(int i=0;i<ile;++i)
{
cout<<"LP: "<<(i+1)<<endl;
cout<<"Nazwisko: "<<G[i]->nazwisko<<endl;
cout<<"Imie: "<<G[i]->imie<<endl;
cout<<"Id: "<<G[i]->idStudenta<<endl;
cout<<"Ocen: "<<G[i]->liczbaOcen<<endl;
cout<<endl;
}
}
void menu(void)
{
cout << "Nacisnij: " << endl
<< "1 - aby dopisac nowego studenta " << endl
<< "2 - aby wyswietlic liste studentow " << endl
<< "0 - aby zakonczyc prace " << endl;
}
//
int main(int argc, char argv[])
{
STUDENT
Grupa[LICZBA_STUDENTOW];
OCENA
Oceny[LICZBA_OCEN];
char co = '0';
int ileStudentow = 0;
do
{
menu();
cin >> co;
switch (co)
{
case '1': Grupa[ileStudentow] = PobierzDaneStudenta(ileStudentow);
break;
case '2': WyswietlListeStudentow(Grupa, ileStudentow);
break;
default: co = '0';
}
} while (co != '0');
return EXIT_SUCCESS;
}

0

Najprościej studentów trzymać w map<string,student> a nie w tablicy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1