Examen Progra 1
Examen Progra 1
Desarrollar un programa en C++ para realizar un seguimiento eficiente de las tareas de una agenda personal. El
programa ha de gestionar la creación de nuevas tareas y su guardado en la agenda, la carga de tareas desde un
archivo externo a la agenda, a búsqueda y visualización de tareas por ID y la generación de informes de tareas
pendientes por categoría. Además, será necesario presentar un menú principal que incluya las opciones
anteriormente mencionadas. Para el correcto funcionamiento del programa se crearán los siguientes tipos de
datos:
Un tipo de dato estructurado Tarea que almacene la siguiente información de una tarea:
• ID de la tarea
• Fecha de vencimiento de la tarea
• Descripción de la tarea
• Estado de la tarea (Completa-0, Incompleta-1)
• Categoría de la tarea (Trabajo-0, Familia-1, Hobbies-2, Hogar-3, Social-4)
Será necesario crear los tipos enumerados Estado y Categoría. No será necesario crear un tipo de datos para
almacenar la fecha (aunque sí se permite). Será necesario implementar las siguientes funciones y procedimientos:
menu [0.5 puntos]: muestra un menú que permite al usuario elegir una opción de entre las siguientes:
buscaTarea [0.75 puntos]: dados una agenda y un ID de tarea, devuelve la posición de la tarea en la lista o -1 si no
se encuentra.
informeTareasPendientesCategoria [1.5 puntos]: genera un archivo "informe.txt" con los datos de las tareas
pendientes. Se le peguntará al usuario por consola la categoría de las tareas de las cuales se desea generar el
informe.
- SALIDA CONSOLA:
0.TRABAJO
1.FAMILIA
2.HOBBIES
3.HOGAR
4.SOCIAL
Escoge una categoría: 2
Generando archivo...
...archivo generado correctamente!
muestraInfoTarea [1 punto]: muestra por consola la información de una tarea determinada con el siguiente
formato:
Introduce el ID de la tarea: 32
ID: 32
Fecha de vencimiento: 4/9/2023
Categoría: Hobbies
Descripción: Practicar pintura
Estado: Pendiente
tareaPendienteCategoria [0.5 puntos]: función que, dados una tarea y una categoría, devuelve true si la categoría
proporcionada coincide con la categoría de la tarea proporcionada y si, además, la tarea está pendiente y devuelve
false en caso contrario.
categoriaToString [0.5 puntos]: función que dada una categoría devuelve su representación como cadena de
caracteres. Ejemplo: Para la categoría TRABAJO devuelve la cadena “Trabajo”.
agregarTarea [1.25 puntos]: solicita al usuario información para agregar una nueva tarea a la agenda, con el
siguiente formato:
Detalles de corrección: Además de las puntuaciones descritas anteriormente, se destinarán 2.5 puntos a la
evaluación de la correcta definición y uso de los tipos de datos especificados en el enunciado y a otros aspectos
del programa: función main, prototipos, orden, comentarios, eficiencia y legibilidad del código, etc. Recuerda que
no se permite el uso de variables globales. Se valorará positivamente la corrección del diseño, la eficiencia del
código y la ausencia de código repetido.
Instrucciones: El examen final se realizará con Proctorio a través de una tarea de Canvas creada a tal efecto. No
se puede abrir ningún programa distinto a la aplicación de escritorio Visual Studio Community. Tampoco se podrá
hacer NINGUNA consulta en Internet. Vuestra pantalla será grabada en todo momento y cualquier actividad
sospechosa será analizada en detalle.
En la tarea de Canvas se puede encontrar el archivo tareas.txt que se puede emplear para probar el código.
Además, encontrarás un archivo llamado plantilla.cpp que contiene una plantilla de código a partir de la cual
realizar el examen. Durante el examen no se permitirá el uso de material de apoyo en ningún formato (electrónico
o papel). El uso del teléfono móvil o similar supondrá la expulsión del examen y un suspenso directo. Es necesario
añadir al inicio del archivo .cpp un comentario con el nombre completo, el DNI del estudiante y el puesto de
laboratorio.
Para entregar el examen, se entregará el archivo .cpp que contenga todo el código del examen en la tarea
designada. Se recomienda comprobar con la profesora o profesor que el archivo se ha entregado correctamente
antes de abandonar el laboratorio.