UD02 · Práctica evaluable
Enunciado
Sección titulada «Enunciado»Vamos a desarrollar el programa que gestiona la venta de entradas del Auditorio Municipal de Martos. Durante la temporada de invierno se celebran estos eventos:
| Evento | Fecha | Platea | Butacas | Anfiteatro | Descuento anticipado |
|---|---|---|---|---|---|
| Las criadas | 20/11/2026 | 17 € | 20 € | 13 € | 5 % |
| II Concierto de Otoño | 28/11/2026 | 12 € | 15 € | 8 € | 7 % |
| Concierto de Jazz | 06/12/2026 | 20 € | 25 € | 15 € | 3 % |
El auditorio tiene 540 localidades: 200 de platea, 200 de butacas y 140 de anfiteatro.
El menú
Sección titulada «El menú»1. Vender entradas para un evento2. Consultar el estado de un evento3. Menú de administrador 3.1. Consultar los ingresos totales por evento 3.2. Consultar las monedas restantes para el cambio 3.3. Apagar el softwareEl programa solo se puede apagar desde el menú de administrador, que además pide usuario y contraseña.
Requisitos
Sección titulada «Requisitos»Venta de entradas
Sección titulada «Venta de entradas»- Las entradas no son numeradas.
- Un comprador solo puede comprar entradas de un tipo en cada compra.
- Cada entrada lleva un código único para evitar falsificaciones. El sistema para generarlo os lo inventáis vosotros, pero tiene que combinar de alguna forma el evento, su fecha, el tipo de entrada, el número de entradas y la fecha de compra.
- Si se compran con 7 días o más de antelación, se aplica el descuento por venta anticipada del evento.
La factura
Sección titulada «La factura»Las entradas se muestran una a una: se imprime una, se pulsa Enter y
aparece la siguiente. Cada una debe incluir:
- El número de entrada que se está imprimiendo, arriba (
Entrada 2 de 4). - Fecha y lugar del evento.
- Tipo de entrada: platea, butacas o anfiteatro.
- Los datos de vuestra empresa distribuidora y el código único generado.
- Una imagen del evento en ASCII.
- El precio de la entrada con el 10 % de IVA aplicado, sin el descuento.
- Si hay descuento por venta anticipada, en la línea siguiente.
- El total de esa entrada.
Al terminar de mostrarlas todas, se enseña el total de la compra, se pide con cuánto dinero se paga (solo efectivo) y, si hay que devolver cambio, se calcula con el menor número posible de monedas y billetes.
Consultar el estado de un evento
Sección titulada «Consultar el estado de un evento»Al elegir un evento debe mostrarse:
- Entradas vendidas de cada tipo.
- Entradas libres de cada tipo.
- Días que faltan para el evento, indicando si todavía se está en periodo de descuento por venta anticipada.
Necesitáis calcular días entre fechas. Se hace con el paquete java.time:
import java.time.LocalDate;import java.time.temporal.ChronoUnit;
LocalDate hoy = LocalDate.now();LocalDate evento = LocalDate.of(2026, 11, 20);
long diasQueFaltan = ChronoUnit.DAYS.between(hoy, evento);boolean hayDescuento = diasQueFaltan >= 7;Tenéis el anexo Fechas y horas en Java en la teoría de la unidad.
Entrega
Sección titulada «Entrega»Se entrega por Classroom:
- El código fuente (
.java), que debe ejecutarse sin errores. - Un manual de usuario en PDF: qué hace el programa, cómo se usa cada opción del menú y capturas de las pantallas principales.
- Un vídeo corto (2-3 minutos) enseñando el programa funcionando: una venta con descuento, una sin él, y una consulta de estado.
Defensa oral
Sección titulada «Defensa oral»Criterios de corrección
Sección titulada «Criterios de corrección»| Criterio | Peso |
|---|---|
| El menú funciona y el programa no se rompe ante datos raros | 20 % |
| Venta de entradas: control de aforo, precios, IVA y descuento anticipado | 25 % |
| Factura: formato, código único, imagen ASCII y cálculo del cambio | 20 % |
| Consulta de estado y menú de administrador | 10 % |
| Manual de usuario y vídeo | 5 % |
| Defensa oral | 20 % |
© 2026 Carlos Barroso · Contenido bajo CC BY-NC-SA 4.0

