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
|
class GestionnaireVuParEleve
{
public:
GestionnaireVuParEleve();
~GestionnaireVuParEleve();
size_t position(const IdEleve &) const;
double moyenne(const IdEleve &) const;
double resultat(const IdEleve &, const IdExam&) const;
protected:
/* toutes les données en cache, protected pour qu'elle soient
* accessible par les méthodes de GestionnaireVuParProf
*/
};
class GestionnaireVuParProf: public GestionnaireVuParEleve
{
public:
GestionnaireVuParProf();
~GestionnaireVuParProf();
void AddResultat(IdEleve &, const IdExamen&, const double resultat);
};
class Eleve
{
public:
Eleve(GestionnaireVuParEleve*, const IdExamen&);
~Eleve();
/* méthodes (exclusivement constantes) d'interrogation
* sur le résultat de l'éleve concerné
* + 1 méthode non constante pour indiquer qu'il a présenté un examen
*/
private:
GestionnaireVuParEleve gestionnaire;
std::list<IdExamen> presente;
IdEleve id;
};
class Prof
{
public:
Prof(GestionnaireVuParProf*);
~Prof();
private:
GestionnaireVuParProf* gestionnaire;
}; |