Matriculacions

Volem simular les modificacions de la matrícula d’estudiants a assignatures de la FIB. Al començament es llegirà la matrícula original d’estudiants i després el programa oferirà un menú d’opcions:

Després d’executar l’opció "fi" i sortir del menú, s’escriu en ordre alfabètic la relació d’assignatures que s’han matriculat en algun moment (tot i que s’hagin anul·lat les seves matrícules), i el nombre d’estudiants que les cursaran. A més, també s’escriurà per ordre alfabètic la relació d’estudiants que tenen assignatures matriculades (no aquells que hagin anul·lat totes les assignatures que haguessin matriculat), seguit de les assignatures que cursaran.

Entrada

Primer es llegeix el nombre d’estudiants matriculats (un enter), i després els corresponents noms d’estudiants seguits de les assignatures matriculades. Cada estudiant i les seves assignatures ocupen una línia, i l’estudiant és un sol string sense espais, i les assignatures són també strings separats per espais.

Les opcions de menú tenen un format variable però comencen sempre per l’opció com un string, i en cada cas segueixen les dades necessàries per executar l’opció, que són un nom d’estudiant o d’assignatura, o tots dos. No cal suposar que les opcions de menú estan en línies separades, poden estar totes seguides.

Sortida

La sortida consisteix en una part amb la sortida de cadascuna de les opcions del menú indicades a l’entrada, les opcions de les quals tenen la sortida següent:

Una vegada detectada l’opció “fi”, el programa mostra un llistat de les assignatures i el nombre de matriculats, ordenat per nom d’assignatura, amb una assignatura per línia, i amb una línia buida al final.

Després es mostra un llistat dels estudiants, ordenat per nom d’estudiant, i les assignatures a les que estan matriculats, ordenades per nom d’assignatura, i amb una línia buida al final.

Observació

Nota: és convenient que facis servir la classe stringstream i l’acció getline per poder llegir seqüències sense centinella delimitades pel salt de línia. Recorda que en llegir un enter, cal llegir un getline extra per consumir el salt de línia.

Informació del problema

Autoria: PRO2

Generació: 2026-01-25T21:39:29.736Z

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