Exercici 2 · Metodologia de la Programació UAB 2024

Tema: Disseny de classes: declaració, const i sobrecàrrega d'operadors · Del examen Examen Primer Parcial Curs 2024-2025 (2024)

Enunciado

Exercici 2 (1 punt). Const-correctness en classes Notes, Estudiant i Assignatura

Considereu el següent conjunt de declaracions i mètodes de tres classes relacionades:

class Notes {

public:

float getNotaMitjana();

};

class Estudiant {

public:

float consultaNota() const;

string getNom() const;

private:

string m_nom;

Notes m_notes;

};

class Assignatura {

public:

float recuperaEstudiant(const string& nom, Estudiant& e) const;

void afegeixEstudiant(Estudiant& e) const;

private:

Estudiant m_estudiants[MAX_ESTUDIANTS];

int m_nEstudiants;

int cercaEstudiant(const string& nom);

};

float Assignatura::recuperaEstudiant(const string& nom, Estudiant& e) const {

float nota = -1;

int pos = cercaEstudiant(e.getNom());

if (pos != -1) {

e = m_estudiants[pos];

nota = e.consultaNota();

}

return nota;

}

void Assignatura::afegeixEstudiant(Estudiant& e) const {

int pos = cercaEstudiant(e.getNom());

if (pos == -1)

m_estudiants[m_nEstudiants++] = e;

}

float Estudiant::consultaNota() const {

return m_notes.getNotaMitjana();

}

Apliqueu totes les modificacions necessàries a les definicions de les classes Notes, Estudiant i Assignatura perquè l'ús de referències constants i mètodes const sigui consistent i no provoqui errors de compilació. Només cal reescriure la declaració de cadascuna de les classes amb les capçaleres corregides, sense refer el codi de la implementació.

Enunciado: Exercici 2 · Metodologia de la Programació UAB 2024

Solución

Según los criterios oficiales de corrección

Declaració corregida de la classe Notes

Solución: ```cpp class Notes { public: float getNotaMitjana() const; }; ```

Declaració corregida de la classe Estudiant

Solución: ```cpp class Estudiant { public: float consultaNota() const; string getNom() const; private: string m_nom; Notes m_notes; }; ```

Declaració corregida de la classe Assignatura

Solución: ```cpp class Assignatura { public: float recuperaEstudiant(const string& nom, Estudiant& e) const; void afegeixEstudiant(const Estudiant& e); private: Estudiant m_estudiants[MAX_ESTUDIANTS]; int m_nEstudiants; int cercaEstudiant(const string& nom) const; }; ```

La explicación paso a paso, hecha con IA, es Premium. Premium

Resuélvelo aquí mismo: corrección automática, pistas y solución paso a paso.

‹ Exercici 1 · 2024 · Pregunta 1 · 2018 ›

Más ejercicios de Disseny de classes: declaració, const i sobrecàrrega d'operadors