Llista de tasques X28829


Statement
 

pdf   zip

html

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>

Public test cases
  • Input

    add_task anar al cinema
    add_task netejar la casa
    add_task anar a correr
    show_pending_tasks
    finish_task anar a correr
    show_finished_tasks
    remove_task netejar la casa
    show_pending_tasks
    show_finished_tasks

    Output

    anar al cinema
    netejar la casa
    anar a correr
    anar a correr
    anar al cinema
    anar a correr
    
  • Input

    add_task sortir amb els amics
    add_task fer la compra
    add_task anar de festa
    add_task entrenar a badminton
    add_task anar a classe
    add_task jugar a la pilota
    add_task fer un examen de prova
    add_task trucar la meva avia
    finish_task fer la compra
    finish_task anar a classe
    finish_task trucar la meva avia
    remove_task sortir amb els amics
    show_pending_tasks
    show_finished_tasks

    Output

    anar de festa
    entrenar a badminton
    jugar a la pilota
    fer un examen de prova
    fer la compra
    anar a classe
    trucar la meva avia
    
  • Input

    add_task fer exercici
    add_task anar al gimnas
    add_task jugar a volei
    finish_task fer exercici
    finish_task jugar a volei
    finish_task anar de festa
    remove_task anar al parc
    finish_task jugar a volei
    show_pending_tasks
    show_finished_tasks
    remove_task fer exercici
    show_finished_tasks

    Output

    task not found
    task not found
    task not found
    anar al gimnas
    fer exercici
    jugar a volei
    jugar a volei
    
  • Input

    add_task anar al cinema
    add_task jugar a la pilota
    add_task anar al parc
    add_task sortir amb els amics
    add_task anar de festa
    add_task anar a classe
    add_task saltar en paracaigudes
    add_task anar de viatge
    finish_task sortir amb els amics
    remove_task saltar en paracaigudes
    remove_task anar de viatge
    finish_task anar a classe
    finish_task anar al parc
    show_pending_tasks 
    show_finished_tasks
    finish_task anar a classe de programacio
    finish_task fer els deures
    add_task jugar a la Play
    show_pending_tasks
    show_finished_tasks

    Output

    anar al cinema
    jugar a la pilota
    anar de festa
    sortir amb els amics
    anar a classe
    anar al parc
    task not found
    task not found
    anar al cinema
    jugar a la pilota
    anar de festa
    jugar a la Play
    sortir amb els amics
    anar a classe
    anar al parc
    
  • Information
    Author
    Language
    Catalan
    Official solutions
    Unknown.
    User solutions
    C++