Práctica de PRO2 - Otoño 2019 - Entrega final provisional X77835


Statement
 

pdf   zip   tar

html

Este problema corresponde a la entrega final de la práctica, pero no es necesario entregar la documentación ni el juego de pruebas preparado para la competencia transversal de Trabajo en Equipo. Por dicha razón es una entrega final provisional. Pero, salvo que se indicase lo contrario mediante un aviso o aclaración en la web de la asignatura, los juegos de pruebas públicos y privados sí son los definitivos. Tened en cuenta que:

  • Solo es necesario presentar los ficheros fuente (.hh y .cc) de la práctica y el fichero Makefile. Pero no está prohibido subir ficheros de documentación, juegos de pruebas propios, …

    En principio, los juegos de pruebas no cambiarán en la entrega final definitiva.

  • Esta entrega no tendrá nota manual ni automática.

Entrada

Una secuencia de instrucciones y datos que siguen el formato del enunciado de la práctica y del juego de pruebas público.

Salida

Una secuencia de resultados que siguen el formato del enunciado de la práctica y del juego de pruebas público. N.B.: se ha simplificado el formato de la salida en las consultas booleanas; en vez de reproducir una versión “procesada” de la expresión que representa a la consulta simplemente se imprime BEGIN_QUERY ... END_QUERY (es decir, se imprimen tres puntos suspensivos).

Observación

El Jutge prueba vuestras entregas mediante 4 juegos de pruebas:

  • sample: el juego de pruebas público
  • privat1: juego de pruebas que ensaya principalmente las funcionalidades de la entrega intermedia (funciones 1–14)
  • privat2: juego de pruebas que hace énfasis en las funcionalidades de búsqueda por fecha y por etiqueta (funciones 15–16)
  • privat3: juego de pruebas que hace énfasis en las funcionalidad de consultas booleanas (función 17)

En un fichero llamado practica.tar tenéis que entregar

  • Los ficheros .hh y .cc de las clases y el programa principal
  • El fichero Makefile, que usaremos para generar y probar el ejecutable

Tened en cuenta las siguientes restricciones:

  • El fichero que contiene el programa principal se ha de llamar program.cc
  • El Makefile ha de generar un ejecutable llamado program.exe
  • Es importante que uséis las opciones de compilación del Jutge de PRO2 (ved Documentation → Compilers → PRO2 a www.jutge.org)
  • No usar la opción -D_GLIBCXX_DEBUG o usarla de forma incorrecta podrá ser penalizado

Producid el fichero practica.tar con la instrucción Linux

tar -cvf practica.tar fitxer1 fitxer2 fitxer3 ...

desde el directorio/carpeta donde tengáis los ficheros que vais a entregar. Incluid esta instrucción en vuestro Makefile, de forma que el .tar se pueda generar ejecutando make tar.

---- Fichero Makefile ---------------------------------------

...
clean:
    rm *.o
    ...
tar: 
    tar -cvf practica.tar Makefile *.cc *.hh
...

Con eso reduciréis el riesgo de error en sucesivas entregas. El Jutge no acepta .tar donde los ficheros estén dentro de carpetas. Recomendamos usar GNU tar para reducir el riesgo de que el fichero practica.tar sea incompatible con el Jutge. No es necesario incluir BinTree.hh en practica.tar.

Public test cases
  • Input

    lee_album Paris 5
    img11 15 8 2019 2 Maria ChampsElysees
    img12 15 8 2019 2 Juan Laura
    img13 15 6 2019 1 Laura
    img14 15 8 2019 2 Juan ChampsElysees
    img23 16 8 2019 3 Laura Juan TorreEiffel
    agrega_foto img9 14 8 2019 2 Laura TorreEiffel
    agrega_foto img23 16 8 2019 2 Juan TorreEiffel
    elimina_foto img11
    nr_fotos
    agrega_album
    lee_album Londres 4
    img42 20 10 2019 2 Juan LondonEye
    img43 20 10 2019 3 Maria Juan Westminster
    img13 15 6 2019 2 LondonEye Westminster
    img11 15 8 2019 4 Laura Maria Westminster TowerBridge
    agrega_album
    agrega_foto_coleccion img42 21 10 2019 2 Juan Laura
    agrega_foto_coleccion img24 21 10 2019 2 Maria Laura
    imprime_coleccion
    modifica_foto_coleccion img13 15 7 2019 2 LondonEye Westminster
    imprime_coleccion
    busca_por_fecha 15 8 2019 17 8 2019 ALL resultadobusquedafecha
    imprime_album_en_curso
    busca_por_fecha 15 8 2019 17 8 2019 Roma resultadobusquedafecha
    busca_por_etiqueta Laura Paris Laura_en_Paris
    imprime_album_en_curso
    busca_por_etiqueta Laia ALL Laia
    imprime_album_en_curso
    busca_por_etiqueta Laia Roma Laia_en_Roma
    imprime_album_en_curso
    evalua_consulta_booleana Laura_en_Paris Laura_TorreEiffel
    BEGIN_QUERY TAG TorreEiffel END_QUERY
    evalua_consulta_booleana Paris Laura_TorreEiffel
    BEGIN_QUERY TAG Laura and TAG TorreEiffel END_QUERY 
    imprime_album_en_curso
    agrega_album
    imprime_coleccion
    elimina_album Laura_TorreEiffel
    imprime_coleccion
    evalua_consulta_booleana ALL resultado
    BEGIN_QUERY ( ( TAG Laura or TAG Juan ) and DATE 15 8 2019 16 8 2019 ) and not TAG Westminster END_QUERY  
    evalua_consulta_booleana ALL resultado
    BEGIN_QUERY ( ( TAG Laura OR TAG Juan ) AND DATE 15 8 2019 16 8 2019 ) AND NOT TAG Westminster END_QUERY  
    acabar
    

    Output

    # lee_album Paris ...
    Album Paris leido.
    # agrega_foto img9 ...
    Foto img9 agregada al album en curso.
    # agrega_foto img23 ...
    El album en curso ya contiene una foto con el identificador img23
    # elimina_foto img11
    Foto img11 eliminada del album en curso.
    # nr_fotos
    5
    # agrega_album
    Album en curso agregado a la coleccion.
    Album en curso, despues de agregar:
    Paris
      img12 15/8/2019 2 Juan Laura
      img13 15/6/2019 1 Laura
      img14 15/8/2019 2 ChampsElysees Juan
      img23 16/8/2019 3 Juan Laura TorreEiffel
      img9 14/8/2019 2 Laura TorreEiffel
    # lee_album Londres ...
    Album Londres leido.
    # agrega_album
    Album en curso agregado a la coleccion.
    Album en curso, despues de agregar:
    Londres
      img11 15/8/2019 4 Laura Maria TowerBridge Westminster
      img13 15/6/2019 1 Laura
      img42 20/10/2019 2 Juan LondonEye
      img43 20/10/2019 3 Juan Maria Westminster
    # agrega_foto_coleccion img42 ...
    Ya existe una foto con el mismo id. No se puede agregar.
    # agrega_foto_coleccion img24 ...
    Foto img24 agregada a la coleccion.
    # imprime_coleccion
    ALL
      img11 15/8/2019 4 Laura Maria TowerBridge Westminster
      img12 15/8/2019 2 Juan Laura
      img13 15/6/2019 1 Laura
      img14 15/8/2019 2 ChampsElysees Juan
      img23 16/8/2019 3 Juan Laura TorreEiffel
      img24 21/10/2019 2 Laura Maria
      img42 20/10/2019 2 Juan LondonEye
      img43 20/10/2019 3 Juan Maria Westminster
      img9 14/8/2019 2 Laura TorreEiffel
    Londres
      img11 15/8/2019 4 Laura Maria TowerBridge Westminster
      img13 15/6/2019 1 Laura
      img42 20/10/2019 2 Juan LondonEye
      img43 20/10/2019 3 Juan Maria Westminster
    Paris
      img12 15/8/2019 2 Juan Laura
      img13 15/6/2019 1 Laura
      img14 15/8/2019 2 ChampsElysees Juan
      img23 16/8/2019 3 Juan Laura TorreEiffel
      img9 14/8/2019 2 Laura TorreEiffel
    # modifica_foto_coleccion img13 ...
    Foto img13 modificada en la coleccion.
    # imprime_coleccion
    ALL
      img11 15/8/2019 4 Laura Maria TowerBridge Westminster
      img12 15/8/2019 2 Juan Laura
      img13 15/7/2019 2 LondonEye Westminster
      img14 15/8/2019 2 ChampsElysees Juan
      img23 16/8/2019 3 Juan Laura TorreEiffel
      img24 21/10/2019 2 Laura Maria
      img42 20/10/2019 2 Juan LondonEye
      img43 20/10/2019 3 Juan Maria Westminster
      img9 14/8/2019 2 Laura TorreEiffel
    Londres
      img11 15/8/2019 4 Laura Maria TowerBridge Westminster
      img13 15/7/2019 2 LondonEye Westminster
      img42 20/10/2019 2 Juan LondonEye
      img43 20/10/2019 3 Juan Maria Westminster
    Paris
      img12 15/8/2019 2 Juan Laura
      img13 15/7/2019 2 LondonEye Westminster
      img14 15/8/2019 2 ChampsElysees Juan
      img23 16/8/2019 3 Juan Laura TorreEiffel
      img9 14/8/2019 2 Laura TorreEiffel
    # busca_por_fecha 15/8/2019-17/8/2019 ALL resultadobusquedafecha
    resultadobusquedafecha
      img11 15/8/2019 4 Laura Maria TowerBridge Westminster
      img12 15/8/2019 2 Juan Laura
      img14 15/8/2019 2 ChampsElysees Juan
      img23 16/8/2019 3 Juan Laura TorreEiffel
    # imprime_album_en_curso
    resultadobusquedafecha
      img11 15/8/2019 4 Laura Maria TowerBridge Westminster
      img12 15/8/2019 2 Juan Laura
      img14 15/8/2019 2 ChampsElysees Juan
      img23 16/8/2019 3 Juan Laura TorreEiffel
    # busca_por_fecha 15/8/2019-17/8/2019 Roma resultadobusquedafecha
    No existe un album con el id dado.
    # busca_por_etiqueta Laura Paris Laura_en_Paris
    Laura_en_Paris
      img12 15/8/2019 2 Juan Laura
      img23 16/8/2019 3 Juan Laura TorreEiffel
      img9 14/8/2019 2 Laura TorreEiffel
    # imprime_album_en_curso
    Laura_en_Paris
      img12 15/8/2019 2 Juan Laura
      img23 16/8/2019 3 Juan Laura TorreEiffel
      img9 14/8/2019 2 Laura TorreEiffel
    # busca_por_etiqueta Laia ALL Laia
    Laia
    # imprime_album_en_curso
    Laia
    # busca_por_etiqueta Laia Roma Laia_en_Roma
    No existe un album con el id dado.
    # imprime_album_en_curso
    Laia
    # evalua_consulta_booleana Laura_en_Paris Laura_TorreEiffel
    # BEGIN_QUERY ... END_QUERY
    No existe un album con el id dado.
    # evalua_consulta_booleana Paris Laura_TorreEiffel
    # BEGIN_QUERY ... END_QUERY
    Laura_TorreEiffel
      img23 16/8/2019 3 Juan Laura TorreEiffel
      img9 14/8/2019 2 Laura TorreEiffel
    # imprime_album_en_curso
    Laura_TorreEiffel
      img23 16/8/2019 3 Juan Laura TorreEiffel
      img9 14/8/2019 2 Laura TorreEiffel
    # agrega_album
    Album en curso agregado a la coleccion.
    Album en curso, despues de agregar:
    Laura_TorreEiffel
      img23 16/8/2019 3 Juan Laura TorreEiffel
      img9 14/8/2019 2 Laura TorreEiffel
    # imprime_coleccion
    ALL
      img11 15/8/2019 4 Laura Maria TowerBridge Westminster
      img12 15/8/2019 2 Juan Laura
      img13 15/7/2019 2 LondonEye Westminster
      img14 15/8/2019 2 ChampsElysees Juan
      img23 16/8/2019 3 Juan Laura TorreEiffel
      img24 21/10/2019 2 Laura Maria
      img42 20/10/2019 2 Juan LondonEye
      img43 20/10/2019 3 Juan Maria Westminster
      img9 14/8/2019 2 Laura TorreEiffel
    Laura_TorreEiffel
      img23 16/8/2019 3 Juan Laura TorreEiffel
      img9 14/8/2019 2 Laura TorreEiffel
    Londres
      img11 15/8/2019 4 Laura Maria TowerBridge Westminster
      img13 15/7/2019 2 LondonEye Westminster
      img42 20/10/2019 2 Juan LondonEye
      img43 20/10/2019 3 Juan Maria Westminster
    Paris
      img12 15/8/2019 2 Juan Laura
      img13 15/7/2019 2 LondonEye Westminster
      img14 15/8/2019 2 ChampsElysees Juan
      img23 16/8/2019 3 Juan Laura TorreEiffel
      img9 14/8/2019 2 Laura TorreEiffel
    # elimina_album Laura_TorreEiffel
    Album eliminado de la coleccion.
    # imprime_coleccion
    ALL
      img11 15/8/2019 4 Laura Maria TowerBridge Westminster
      img12 15/8/2019 2 Juan Laura
      img13 15/7/2019 2 LondonEye Westminster
      img14 15/8/2019 2 ChampsElysees Juan
      img23 16/8/2019 3 Juan Laura TorreEiffel
      img24 21/10/2019 2 Laura Maria
      img42 20/10/2019 2 Juan LondonEye
      img43 20/10/2019 3 Juan Maria Westminster
      img9 14/8/2019 2 Laura TorreEiffel
    Londres
      img11 15/8/2019 4 Laura Maria TowerBridge Westminster
      img13 15/7/2019 2 LondonEye Westminster
      img42 20/10/2019 2 Juan LondonEye
      img43 20/10/2019 3 Juan Maria Westminster
    Paris
      img12 15/8/2019 2 Juan Laura
      img13 15/7/2019 2 LondonEye Westminster
      img14 15/8/2019 2 ChampsElysees Juan
      img23 16/8/2019 3 Juan Laura TorreEiffel
      img9 14/8/2019 2 Laura TorreEiffel
    # evalua_consulta_booleana ALL resultado
    # BEGIN_QUERY ... END_QUERY
    resultado
      img12 15/8/2019 2 Juan Laura
      img14 15/8/2019 2 ChampsElysees Juan
      img23 16/8/2019 3 Juan Laura TorreEiffel
    # evalua_consulta_booleana ALL resultado
    # BEGIN_QUERY ... END_QUERY
    resultado
      img12 15/8/2019 2 Juan Laura
      img14 15/8/2019 2 ChampsElysees Juan
      img23 16/8/2019 3 Juan Laura TorreEiffel
    
  • Information
    Author
    Language
    Spanish
    Official solutions
    Make
    User solutions
    Make