Ir ao contido principal
AV
  • Inicio
  • Calendario
  • Máis
Galego ‎(gl)‎
English ‎(en)‎ Español - Internacional ‎(es)‎ Galego ‎(gl)‎
Neste momento está usando o acceso para convidados
Acceder
AV
Inicio Calendario
Expandir todo Contraer todo
  1. Taboleiro
  2. DI - 2DAM - 2526
  3. Unidade 02
  4. UD02A06 - Cajero automático

UD02A06 - Cajero automático

Requisitos do completado
Abertas: domingo, 16 de novembro de 2025, 12:00 AM

Enunciado de la tarea: “Cajero automático”

El objetivo de esta tarea es desarrollar una aplicación de escritorio en JavaFX que simule el funcionamiento básico de un cajero automático de un banco ficticio llamado “Banco DAMDI”.

La aplicación debe permitir al usuario identificarse con su tarjeta y PIN, consultar su saldo, ingresar dinero, retirar dinero y ver un resumen de la última transacción.

Además de la parte funcional, se exige una buena organización del código en clases y archivos separados, así como el uso de estilos CSS para dar una apariencia coherente y sobria al cajero.

1. Requisitos de estructura del proyecto

El proyecto debe estar organizado en varias clases, cada una en su propio archivo .java:

  1. UD02T05_CajeroAutomatico
    • Clase principal que extiende Application.
    • Contiene la pantalla de login (Pantalla 1).
    • Gestiona el Stage principal y los cambios entre pantallas (inicio, consulta saldo, operación, transacción).
  2. Banco
    • Clase que permite gestionar la lógica del banco.
    • Contiene la “base de datos” de clientes (un array de objetos Cliente).
    • Métodos principales:
      • boolean login(String tarjeta, String pin)
      • void logout()
      • Cliente getClienteActual()
      • double getSaldoActual()
      • void ingresar(double cantidad)
      • boolean retirar(double cantidad)
  3. Cliente
    • Clase modelo que representa a un cliente del banco.
    • Atributos mínimos: tarjeta, pin, nombre, saldo.
    • Incluye constructores, getters y setters necesarios.
  4. PantallaInicio (Pantalla 2)
    • Clase que construye la pantalla principal tras el login correcto.
    • Recibe una referencia a UD02T05_CajeroAutomatico y a Banco.
    • Muestra un mensaje de bienvenida en una “pantalla de terminal” y los botones:
      • “Ingresar dinero”
      • “Retirar dinero”
      • “Consultar saldo”
      • “Salir”
  5. PantallaConsultaSaldo (Pantalla 3)
    • Clase que muestra el saldo actual del cliente en una “pantalla de terminal”.
    • Tiene un botón “Volver” que regresa al login (Pantalla 1).
  6. PantallaOperacion (Pantalla 4)
    • Se utiliza tanto para ingresar como para retirar dinero.
    • Se le indicará si la operación es ingreso o retirada.
    • Muestra saldo actual, un mensaje de “Inserte cantidad a ingresar/retirar”, un campo para introducir la cantidad y los botones “Aceptar” y “Cancelar”.
    • El mensaje mostrará “Inserte cantidad a ingresar” o “Inserte cantidad a retirar” en función del tipo de operación.
  7. PantallaTransaccion (Pantalla 5)
    • Muestra el saldo actual tras la operación y la cantidad ingresada/retirada.
    • Tiene un botón “Volver” que lleva de nuevo a la pantalla de inicio (Pantalla 2).
  8. EstilosCajero
    • Clase que contiene todos los estilos CSS en forma de cadenas estáticas.
    • El resto de clases debe usar exclusivamente estas constantes en sus llamadas a setStyle(...).
    • No se permiten literales CSS “sueltos” repartidos por el código.

2. Requisitos funcionales por pantalla

2.1 Pantalla 1 – Login (UD02T05_CajeroAutomatico)

  • Label título: “Banco DAMDI”.
  • Label: “Número de tarjeta” + TextField para introducir el número.
    • Solo acepta caracteres numéricos (se deben filtrar otros caracteres).
  • Label: “PIN (4 dígitos)” + PasswordField.
    • Solo acepta números.
    • Longitud máxima: 4 caracteres.
  • Botón “Aceptar”: se comprueba si las credenciales coinciden con la base de datos (usando un array de Cliente):
    • Si las credenciales son correctas:
      • Se muestra la Pantalla 2 (inicio).
    • Si los datos son incorrectos:
      • Se muestra un Alert de error con el mensaje “Número de tarjeta o PIN no válidos”.

2.2 Pantalla 2 – Inicio (PantallaInicio)

  • TextArea con estética de “pantalla de terminal” donde se muestre:
    • “Bienvenido (nombre del cliente)”.
  • Botones:
    • “Ingresar dinero” → lleva a Pantalla 4 (operación) en modo ingresar.
    • “Retirar dinero” → lleva a Pantalla 4 (operación) en modo retirar.
    • “Consultar saldo” → lleva a Pantalla 3.
    • “Salir” → cierra la sesión (llamando a logout()) y regresa a Pantalla 1 (login).

2.3 Pantalla 3 – Consulta saldo (PantallaConsultaSaldo)

  • TextArea con formato de terminal que muestre:
    • “Su saldo actual es XXXX €” (formateado con 2 decimales).
  • Botón “Volver”.
    • Al pulsarlo, se vuelve a la Pantalla 1 (login), tal como indica el enunciado.

2.4 Pantalla 4 – Ingresar / Retirar (PantallaOperacion)

  • TextArea de terminal con:
    • “Su saldo actual es XXXX €”.
  • Label con texto:
    • “Inserte cantidad a ingresar:” o
    • “Inserte cantidad a retirar:”

    en función del tipo de operación (ingreso/retirada).

  • TextField para introducir la cantidad:
    • Solo admite números con 2 cifras decimales.
    • Se debe validar que la cantidad sea mayor que 0.
  • Botones:
    • “Cancelar” → vuelve a Pantalla 2 (inicio).
    • “Aceptar”:
      • Si el campo está vacío o la cantidad ≤ 0:
        • Mostrar Alert de advertencia (“Cantidad no válida”).
      • Si es un ingreso:
        • Llamar a banco.ingresar(cantidad).
        • Saltar a Pantalla 5 (transacción), indicando la cantidad y que es ingreso.
      • Si es una retirada:
        • Llamar a banco.retirar(cantidad):
          • Si devuelve false: mostrar Alert (“Fondos insuficientes”).
          • Si devuelve true: ir a Pantalla 5, indicando cantidad y que es retirada.

2.5 Pantalla 5 – Transacción (PantallaTransaccion)

  • TextArea de terminal que muestre:
    • “Su saldo actual es XXXX €”
    • “Se ingresó XXXX €” o “Se retiró XXXX €” según el caso.
  • Botón “Volver”:
    • Devuelve a Pantalla 2 (inicio).

3. Requisitos de estilo (CSS / apariencia)

  • El estilo de los diferentes elementos se encuentra definido en la clase EstilosCajero.java.
  • No se permite escribir cadenas CSS directamente en las otras clases; solo deben usarse referencias del tipo:
    • root.setStyle(EstilosCajero.FONDO_APP);
    • boton.setStyle(EstilosCajero.BOTON_PRIMARIO_NORMAL);

4. Requisitos de programación

  • Cada clase debe ir en su propio archivo .java.
  • El nombre de la clase debe coincidir con el nombre del archivo.
  • Se deben respetar las buenas prácticas de programación:
    • Métodos cortos y claros.
    • Uso de comentarios cuando sea necesario para explicar partes clave.
  • El código debe compilar y ejecutarse sin errores, y el flujo entre pantallas debe respetar lo indicado en este enunciado.


Pantallas:

Pantalla 1 – Login (UD02T05_CajeroAutomatico) 

Pantalla 2 – Inicio (PantallaInicio)


Pantalla 3 – Consulta saldo (PantallaConsultaSaldo) 


 

Pantalla 4 – Ingresar / Retirar (PantallaOperacion)

 

Pantalla 5 – Transacción (PantallaTransaccion)

 

  • UD02T05_CajeroAutomatico_plantilla.rar UD02T05_CajeroAutomatico_plantilla.rar
    1 de decembro de 2025, 12:56 PM
Neste momento está usando o acceso para convidados (Acceder)
Resumo da retención de datos
Políticas
Obter a apli móbil
Fornecido por Moodle