Control PRO2 - Torn 1 - Problema 2 (primavera 2019)

Volem una operació nova per fer-la servir al context de les classes
 Cjt_estudiants i Es­tu­diant que heu vist al laboratori. Concretament,
volem poder escriure conjunts d’estudiants en ordre decreixent per nota.
En cas d’empat, escriurem primer els estudiants amb DNI més petit. Els
estudiants sense nota es tracten com si la seva nota fos -1.

Hem optat per afegir dues noves operacions que no pertanyen a cap classe
amb la següent especificació:

    void escriure_nota_decr(const Cjt_estudiants& c) {
      /* Pre: cert */
      /* Post: s'han escrit pel canal estàndar de sortida els estudiants
         de c en ordre descendent de nota i, en cas d'empat, en ordre
         ascendent per DNI */

    bool nota_decr(const Estudiant& a, const Estudiant& b) {
      /* Pre: cert */
      /* Post: el resultat es cert si la nota d'a es mes gran que la de b
         o, si son iguals, si el dni d'a es mes petit que el de b */

Observació

Heu de lliurar un fitxer solution.cc amb una implementació eficient de
les operacions escriure_nota_decr i nota_decr. Aquest fitxer no pot
accedir als elements privats de les classes Cjt_estudiants i  Es­tu­diant.
Òbviament, sí que pot fer servir les operacions públiques de les
versions que us donem d’ambdues.

A l’apartat Public files del Jutge (icona del gatet) us proveïm amb una
plantilla pel fitxer solution.cc que només cal completar. A més,
trobareu material addicional, tot comprimit en un fitxer .tar. Podeu
descomprimir aquest fitxer amb la comanda

       tar -xvf nom_fitxer.tar

Aquest material addicional consisteix en els següents fitxers:

- Cjt_estudiants.hh: les capçaleres i l’especificació Pre/Post de les
  operacions públiques i privades de la classe Cjt_estudiants, així com
  la definició dels seus atributs.

- Cjt_estudiants.cc: la implementació de totes de les operacions de la
  nova versió de la classe Cjt_estudiants.

- Estudiant.hh: l’especificació de la classe Estudiant i la definició
  dels seus atributs.

- Estudiant.cc: la implementació dels mètodes de la classe Estudiant.

- pro2.cc: un programa principal que podeu fer servir per provar la
  solució d’aquest exercici.

- llegeixme.txt: instruccions per a generar i provar l’executable del
  programa pro2.

- sample.inp: entrada del joc de proves públic

- sample.cor: sortida del joc de proves públic

- solution.cc: plantilla explicada previament

- solution.hh: les capçaleres de les noves operacions, per fer #include

És fonamental que la solució sigui eficient en temps i espai. No es pot
emprar cap estructura de dades que no hagi aparegut a les sessions 1-4
de laboratori. Sí que es pot fer servir un vector auxiliar i l’operació
sort.
 
Quan feu els enviaments el Jutge us indicarà quants jocs de proves
passeu i de quin tipus (public o privat). El joc de proves anomenat
public s’explica al fitxer llegeixme.txt. El privat1 és molt semblant al
public. Els privat2 i privat3 proven situacions especials.

Informació del problema

Autoria: Professors de PRO2

Generació: 2026-01-25T21:23:23.999Z

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