F001A. Alumnes de la FIPS

La Facultat d’Informàtica del Poble Sec guarda la informació dels seus alumnes i de les notes que han obtingut a les assignatures que han cursat en l’estructura de dades següent:

    struct Alumne {
        string nom;                 // Nom de l'alumne
        int dni;                    // DNI de l'alumne
        vector<Assignatura> ass;    // Llista d'assignatures de l'alumne
    };

on |Assignatura| ve donat per:

    struct Assignatura {
        string nom;                 // Nom de l'assignatura
        double nota;                // Entre 0 i 10, -1 indica NP
    };

Usant aquestes definicions, implementeu la funció

    double nota(const vector<Alumne>& alums, int dni, string nom);

que busqui i retorni la nota que l’alumne |dni| ha obtingut a l’assignatura |nom|. Si l’alumne no existeix, no ha cursat l’assignatura demanada, o hi ha tret un NP, cal retornar 1-1.

Implementeu també la funció

double mitjana(const vector<Assignatura>& ass);

que calculi i retorni la nota mitjana de les assignatures del vector |ass|. Els NP no compten en el càlcul de la mitjana. Si totes les notes són NP o el vector és buit, considereu que la nota mitjana és 1-1.

Usant les dues funcions anteriors, implementeu l’acció

    void compta(const vector<Alumne>& alums, int dni, string nom, int& com);

que compti i deixi en el paràmetre de sortida |com| el nombre d’alumnes del vector |alums| que tenen una nota mitjana estrictament superior a la nota que l’alumne |dni| ha obtingut a l’assignatura |nom|.

Precondició

No hi ha alumnes repetits. A la llista d’assignatures de cada alumne no hi ha assignatures repetides.

Observació

El programa principal ja se us dóna implementat; no el canvieu. Aquest llegeix les dades dels alumnes, i després escriu el resultat de la vostra acció |compta()| per a cada combinació d’alumne i assignatura de l’entrada.

(A l’exemple, les notes mitjanes de la Mònica, en Joan, en Pere, l’Alícia, en Pol, l’Àstrid i en Jordi són respectivament 9.5, 8, 0, 5.25, 1-1, 9.25 i 1-1. El 2 de la sortida es correspon a la Mònica i l’Àstrid. El 1 es correspon a la Mònica. Els 5 es corresponen a la Mònica, en Joan, en Pere, l’Alícia i l’Àstrid.)

Informació del problema

Autoria: Professorat de P1

Generació: 2026-01-25T11:52:49.335Z

© Jutge.org, 2006–2026.
https://jutge.org