Ordena eventos Z56599


Statement
 

pdf   zip

thehtml

Escribe un programa que lea de la entrada estándar (con cin) los datos de una serie de eventos. Tal y como se define en el enunciado de la práctica 2 de Programación Avanzada y Estructuras de Datos, un evento consta de una fecha y un mensaje. Tras leer los datos, el programa deberá imprimir la información de los eventos ordenada de forma cronológica. Si en los datos de entrada hay más de un evento para la misma fecha, sólo deberá considerarse el primer evento que aparezca en la entrada.

Este problema se soluciona fácilmente teniendo bien implementados los métodos insertarEvento y aCadena de la clase Calendario. Simplemente habrá que leer cada evento de la entrada y llamar a InsertarEvento con el evento leído. Cuando se hayan leído todos los eventos de la entrada estándar, habrá que llamar al método aCadena. Se proporciona un programa principal (función main) que se encarga de la lectura de las fechas y de invocar al método aCadena. Por tanto, para superar este problema sólo es necesario que estén bien implementados los métodos mencionados.

Los ficheros necesarios para entregar la solución al problema están disponibles en la plataforma Moodle, en la pàgina “Instrucciones para subir la solución al problema público de la práctica 2” bajo la sección “Práctica 2: Implementación de TADs lineales en C++ ”. Los pasos a seguir para realizar una entrega son los siguientes:

1. Asegúrate de que en el directorio actual se encuentran los ficheros Fecha.h, Fecha.cc, Evento.h, Evento.cc, Calendario.h y Calendario.cc.

2. Descarga los ficheros genera-entrega-ordenaEventos.sh y main-ordenaEventos.cc al mismo directorio

3. Ejecuta la orden bash genera-entrega-ordenaEventos.sh

4. Si todo ha ido bien, debería haberse generado un fichero entrega.cc, que es el que deberás subir a jutge.org

Cada vez que modifiques código de tu práctica, deberás repetir los pasos 3 y 4.

Entrada

[No es necesario preocuparse de este formato] Un evento por línea, más una línea adicional para marcar el final. Por cada evento, primero aparecerán el día, mes y año de la fecha, separados por un espacio en blanco. A continuación, el carácter ‘|’. Después de ese carácter, la descripción del evento. Para marcar el final, la última línea contendrá únicamente el carácter 0.

Salida

[No es necesario preocuparse de este formato] Los eventos ordenados cronológicamente, uno por línea, según se describe en la especificación del método aCadena de la clase Calendario.

Public test cases
  • Input

    15 2 2024 | Reunión con departamento de ventas
    1 8 2023 | Comienzo vacaciones de verano
    0
    
    

    Output

    martes 1 de agosto de 2023:Comienzo vacaciones de verano
    jueves 15 de febrero de 2024:Reunión con departamento de ventas
    
    
  • Information
    Author
    Víctor M. Sánchez-Cartagena
    Language
    Spanish
    Official solutions
    C++
    User solutions
    C++