Práctica de PRO2 - Otoño 2019 - Entrega intermedia X35616


Statement
 

pdf   zip

html

Este problema corresponde a la entrega intermedia de la práctica. Tened en cuenta que:

  • Esta no es la entrega definitiva de la práctica completa, ni siquiera es una entrega provisional de la práctica completa.
  • En esta entrega se ha de proporcionar todo el código necesario (clases, programa principal y Makefile) para poder usar todas las funcionalidades de la práctica, excepto las consultas por rango de fechas (busca_por_fecha), por etiqueta (busca_por_etiqueta) y las consultas booleanas (evalua_consulta_booleana).
  • En esta entrega no pedimos carpetas generadas mediante doxygen, pero los ficheros de la clases pueden llevar todos los comentarios doxygen que queráis; de hecho recomendamos que incluyáis las especificaciones de todas las operaciones y que sean lo más definitivas posible.
  • Esta entrega no tendrá nota manual.

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.

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 sobre el álbum en curso (funciones 1–5)
  • privat2: juego de pruebas que hace énfasis en las funcionalidades de gestión y consulta de álbumes en la colección (funciones 6–10)
  • privat3: juego de pruebas que hace énfasis en las funcionalidades de gestión y consulta de fotos en la colección (funciones 11–14)

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 practica.tar. 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 SinFotos 0
    imprime_album_en_curso
    agrega_album
    imprime_coleccion
    elimina_album SinFotos
    lee_album Paris 5
    img11 15 8 2019 0
    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
    imprime_album_en_curso
    agrega_foto img9 14 8 2019 2 Laura TorreEiffel
    agrega_foto img23 16 8 2019 2 Juan TorreEiffel
    imprime_album_en_curso
    elimina_foto img21
    elimina_foto img11
    imprime_album_en_curso
    obten_foto img13
    obten_foto img42
    nr_fotos
    agrega_album
    agrega_album
    imprime_album_en_curso
    lee_album ALL 1
    img42 20 10 2019 0
    agrega_album
    imprime_album_en_curso
    lee_album Paris 1
    img42 20 10 2019 0
    agrega_album
    imprime_album_en_curso
    lee_album Londres 4
    img42 20 10 2019 0
    img43 20 10 2019 0
    img13 15 6 2019 2 LondonEye Westminster
    img11 15 8 2019 0
    obten_album Londres
    elimina_album Londres
    imprime_album_en_curso
    agrega_album
    nr_albums
    lista_albumes
    obten_album Paris
    imprime_album_en_curso
    obten_album Londres
    imprime_album_en_curso
    elimina_album Londres
    nr_albums
    lista_albumes
    imprime_album_en_curso
    agrega_album
    imprime_coleccion
    agrega_foto_coleccion img42 21 10 2019 0
    agrega_foto_coleccion img24 21 10 2019 0
    imprime_coleccion
    elimina_foto_coleccion img11
    elimina_foto_coleccion img24
    elimina_foto_coleccion img77
    modifica_foto_coleccion img51 20 10 2019 0
    modifica_foto_coleccion img13 15 6 2019 2 LondonEye Westminster
    albumes_foto img51
    albumes_foto img13
    imprime_coleccion
    acabar
    

    Output

    # lee_album SinFotos ...
    Album SinFotos leido.
    # imprime_album_en_curso
    SinFotos
    # agrega_album
    Album en curso agregado a la coleccion.
    Album en curso, despues de agregar:
    SinFotos
    # imprime_coleccion
    ALL
    SinFotos
    # elimina_album SinFotos
    Album eliminado de la coleccion.
    # lee_album Paris ...
    Album Paris leido.
    # imprime_album_en_curso
    Paris
      img11 15/8/2019 0
      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
    # 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
    # imprime_album_en_curso
    Paris
      img11 15/8/2019 0
      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
    # elimina_foto img21
    El album en curso no contiene una foto con el identificador img21
    # elimina_foto img11
    Foto img11 eliminada del album en curso.
    # imprime_album_en_curso
    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
    # obten_foto img13
    img13 15/6/2019 1 Laura
    # obten_foto img42
    El album en curso no contiene una foto con el identificador img42
    # 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
    # agrega_album
    Identificador de album incorrecto. No se puede agregar.
    # imprime_album_en_curso
    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 ALL ...
    Album ALL leido.
    # agrega_album
    Identificador de album incorrecto. No se puede agregar.
    # imprime_album_en_curso
    ALL
      img42 20/10/2019 0
    # lee_album Paris ...
    Album Paris leido.
    # agrega_album
    Identificador de album incorrecto. No se puede agregar.
    # imprime_album_en_curso
    Paris
      img42 20/10/2019 0
    # lee_album Londres ...
    Album Londres leido.
    # obten_album Londres
    No existe un album con el id dado.
    # elimina_album Londres
    Identificador de album incorrecto. No se puede eliminar.
    # imprime_album_en_curso
    Londres
      img11 15/8/2019 0
      img13 15/6/2019 2 LondonEye Westminster
      img42 20/10/2019 0
      img43 20/10/2019 0
    # agrega_album
    Album en curso agregado a la coleccion.
    Album en curso, despues de agregar:
    Londres
      img11 15/8/2019 0
      img13 15/6/2019 1 Laura
      img42 20/10/2019 0
      img43 20/10/2019 0
    # nr_albums
    3
    # lista_albumes
    ALL Londres Paris
    # obten_album Paris
    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
    # imprime_album_en_curso
    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
    # obten_album Londres
    Londres
      img11 15/8/2019 0
      img13 15/6/2019 1 Laura
      img42 20/10/2019 0
      img43 20/10/2019 0
    # imprime_album_en_curso
    Londres
      img11 15/8/2019 0
      img13 15/6/2019 1 Laura
      img42 20/10/2019 0
      img43 20/10/2019 0
    # elimina_album Londres
    Album eliminado de la coleccion.
    # nr_albums
    2
    # lista_albumes
    ALL Paris
    # imprime_album_en_curso
    Londres
      img11 15/8/2019 0
      img13 15/6/2019 1 Laura
      img42 20/10/2019 0
      img43 20/10/2019 0
    # agrega_album
    Album en curso agregado a la coleccion.
    Album en curso, despues de agregar:
    Londres
      img11 15/8/2019 0
      img13 15/6/2019 1 Laura
      img42 20/10/2019 0
      img43 20/10/2019 0
    # imprime_coleccion
    ALL
      img11 15/8/2019 0
      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
      img42 20/10/2019 0
      img43 20/10/2019 0
      img9 14/8/2019 2 Laura TorreEiffel
    Londres
      img11 15/8/2019 0
      img13 15/6/2019 1 Laura
      img42 20/10/2019 0
      img43 20/10/2019 0
    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
    # 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 0
      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 0
      img42 20/10/2019 0
      img43 20/10/2019 0
      img9 14/8/2019 2 Laura TorreEiffel
    Londres
      img11 15/8/2019 0
      img13 15/6/2019 1 Laura
      img42 20/10/2019 0
      img43 20/10/2019 0
    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
    # elimina_foto_coleccion img11
    Foto img11 eliminada de la coleccion.
    # elimina_foto_coleccion img24
    Foto img24 eliminada de la coleccion.
    # elimina_foto_coleccion img77
    No existe una foto con el id dado. No se puede eliminar.
    # modifica_foto_coleccion img51 ...
    No existe una foto con el id dado. No se puede modificar.
    # modifica_foto_coleccion img13 ...
    Foto img13 modificada en la coleccion.
    # albumes_foto img51
    No existe una foto con el id dado.
    # albumes_foto img13
    ALL Londres Paris
    # imprime_coleccion
    ALL
      img12 15/8/2019 2 Juan Laura
      img13 15/6/2019 2 LondonEye Westminster
      img14 15/8/2019 2 ChampsElysees Juan
      img23 16/8/2019 3 Juan Laura TorreEiffel
      img42 20/10/2019 0
      img43 20/10/2019 0
      img9 14/8/2019 2 Laura TorreEiffel
    Londres
      img13 15/6/2019 2 LondonEye Westminster
      img42 20/10/2019 0
      img43 20/10/2019 0
    Paris
      img12 15/8/2019 2 Juan Laura
      img13 15/6/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
    
  • Information
    Author
    Language
    Spanish
    Official solutions
    Make
    User solutions
    Make