Ejercicios Unidad 4: Estructuras de Datos Dinámicas (Avanzados)
Resultados de Aprendizaje
Este boletín trabaja el siguiente RA del módulo de Programación:
- RA6 — Aplica colecciones dinámicas para resolver problemas complejos con lógica de negocio, gestión de múltiples listas y visualización de datos.
Objetivo
Aplicar los conocimientos sobre ArrayList y estructuras de datos dinámicas para resolver problemas complejos que requieren gestión de múltiples colecciones, visualización de datos y lógica de negocio.
Actividad 1: Gestor de Deuda de Clientes
Enunciado: Vamos a implementar un sistema sencillo para gestionar las deudas de los clientes de una empresa. La información se almacenará en dos listas paralelas:
ArrayList<String> clientes: Almacena los nombres.ArrayList<Double> deudas: Almacena la cantidad (en euros) que debe cada cliente.
Menú Principal:
El programa mostrará un menú repetitivo con las siguientes opciones (recogerá un charcomo opción):
- Añadir cliente (A): Pide nombre y deuda inicial. Si el cliente ya existe, muestra un error.
- Eliminar cliente (E): Pide el nombre y, si existe, lo borra de ambas listas.
- Consultar listado (D): Muestra una tabla con todos los clientes y sus deudas, y el total global de deuda acumulada.
- Consultar saldo cliente (C): Pide un nombre y muestra cuánto debe esa persona específica.
- Modificar deuda (M): Pide un nombre y la nueva cantidad. Actualiza el valor en la lista de deudas.
- Salir (S): Muestra un mensaje de despedida y vacía ambas listas antes de terminar (simulando una limpieza de memoria).
Salida por Pantalla Esperada (Opción D - Listado):
Requisitos Técnicos:
- Debes usar
ArrayList. - Las listas deben mantenerse sincronizadas (el índice 0 de
clientescorresponde al índice 0 dedeudas). - Controla que las listas no estén vacías antes de intentar eliminar o consultar.
- Modulariza el código
Actividad 2: El Climograma Internacional
Enunciado: Debes desarrollar un programa que genere un climograma (gráfico de temperaturas) a partir de los datos meteorológicos de una ciudad.
Datos de entrada:
- Un
ArrayList<Integer>con las temperaturas medias mensuales:[12, 14, 13, 15, 17, 21, 24, 26, 22, 17, 15, 14]. - Una matriz de
String[][]con los nombres de los meses en tres idiomas (Español, English, Valencià).- Fila 0: Español ("Enero", "Febrero"...)
- Fila 1: Inglés ("January", "February"...)
- Fila 2: Francés ("Gener", "Febrer"...)
Funcionamiento:
- El programa pedirá al usuario en qué idioma desea ver el gráfico (1. Español, 2. English, 3. Valencià).
-
Mostrará los datos de la forma siguiente:
Representación Horizontal: * Muestra el nombre completo del mes (en el idioma elegido). * A su derecha, dibuja una barra de asteriscos
*proporcional a la temperatura (1 asterisco = 1 grado). * Muestra el valor numérico al final.
Salida por Pantalla Esperada (Ejemplo en Español):
Requisitos Técnicos:
- Usa
ArrayListpara las temperaturas. - Usa una matriz
String[][]para los idiomas. - Modulariza el código.