Llista de tasques

Escriviu un programa que simuli el manteniment d’una llista de tasques,
a base de llegir instruccions que la van actualitzant, i instruccions
que la van consultant. La llista de tasques se suposa inicialment buida,
i les instruccions son dels següents tipus: afegir tasques al final de
la llista, treure tasques concretes de la llista, donar tasques per
fetes, o consultar quins elements estan pendents o quins estan fets
començant des del principi de les llistes.

És obligatori utilitzar només el constructor de tipus list com a
mecanisme d’emmagatzemament massiu de dades. En particular, no es pot
usar ni vector, ni stack, ni queue. Podeu declarar tants list com
volgueu i del tipus que volgueu (que no sigui cap altre mecanisme
d’emmagatzemament massiu), i podeu usar iteradors sobre llistes.

Entrada

La entrada consisteix en un nombre arbitrari de linies, cadascuna amb
una instrucció. Les instruccions poden ser de la següent forma:

    add_task
    finish_task
    show_pending_tasks
    show_finished_tasks
    remove_task

Sortida

La instrucció add_task afegeix una tasca a la llista de tasques
pendents, la instrucció finish_task cambia una tasca de la llista de
pendents i la afegeix a la llista de tasques fetes, les instriccions
show_pending_tasks i show_finished_tasks mostra per pantalla les llistes
demanades i, per últim, la instrucció de remove_task esborra una tasca
seleccionada en la seva respectiva llista.

1.  add_task ⇒ Afegeix una tasca a la llista de pendents i es mostra com
    tasca no feta.

2.  finish_task ⇒ Canvia una tasca de la llista de pendent a la llista
    de tasques fetes. Si aquesta tasca no es troba pendent, mostra per
    pantalla el missatge "tasca no trobada".

3.  show_pending_tasks ⇒ Mostra per pantalla les tasques de la llista de
    pendents. Si aquesta és buida, mostra per pantalla el missatge "no
    pending tasks".

4.  show_finished_tasks ⇒ Mostra per pantalla les tasques de la llista
    de fetes. Si aquesta és buida, mostra per pantalla el missatge "no
    finished tasks".

5.  remove_task ⇒ Elimina una tasca independentment de la llista en la
    que estigui. Si aquesta tasca no es a cap llista, mostra per
    pantalla el missatge "tasca no trobada".

Observació

Amb l’objectiu de superar els jocs de proves públics i aconseguir part
de la nota, pots enfocar l’exercici fent una implementació senzilla
utilitzant vectors de strings en comptes de llistes representades en un
list<string>

Informació del problema

Autoria: Unknown

Generació: 2026-01-25T22:59:12.931Z

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