Skip to content

Repository files navigation

📝 RestaurantePedidos - Pasos para Resolver

Sigue estos pasos para resolver el proyecto. Cada // TODO: es un paso.


🎯 Paso 1: Clase Plato

Archivo: Plato.java

  • Crea atributos: id, nombre, categoria, precio
  • Constructor que reciba los 4 parámetros
  • Getters: getId(), getNombre(), getCategoria(), getPrecio()
  • Método: getInfo() - retorna "1 | Ensalada | Entrantes | 8.50€"

Test: Crea 3 platos diferentes y prueba


🎯 Paso 2: Clase Pedido

Archivo: Pedido.java

  • Atributos: id, items (ArrayList), cantidades (ArrayList), estado (String)
  • Constructor que reciba id
    • Inicializa ArrayList
    • Estado por defecto: "pendiente"
  • Método: agregarItem(Plato, cantidad)
    • Valida cantidad > 0
    • Agrega a items y cantidades
  • Método: verPedido() - imprime todos los items
  • Método: calcularSubtotal() - suma (precio × cantidad)
  • Método: cambiarEstado(nuevoEstado)
    • Opciones: "pendiente", "en_prep", "listo"
  • Método: eliminarItem(int index)
  • Método: estaVacio() - retorna true si no hay items

Test: Crea un pedido, agrega items, calcula subtotal


🎯 Paso 3: Clase Restaurante

Archivo: Restaurante.java

  • Atributos: menu (ArrayList), pedidos (ArrayList), contadorPedidos (int)
  • Constructor: inicializa ArrayList y contador
  • Método: cargarMenu()
    • Crea 8-10 platos de ejemplo
    • Distribuye en categorías: Entrantes, Platos, Bebidas, Postres
    • Agrega a ArrayList
  • Método: mostrarMenu() - imprime todos
  • Método: mostrarPorCategoria(categoria)
    • Filtra y muestra solo de esa categoría
  • Método: buscarPlato(nombre) - retorna Plato o null
  • Método: crearPedido() - retorna nuevo Pedido
  • Método: agregarAlPedido(Pedido actual, nombre, cantidad)
    • Busca plato
    • Valida que existe
    • Agrega al pedido
  • Método: confirmarPedido(Pedido)
    • Valida que no esté vacío
    • Agrega a ArrayList de pedidos
    • Incrementa contador
    • Retorna ID del pedido
  • Método: mostrarPedidosPendientes() - filtra por estado
  • Método: cambiarEstadoPedido(idPedido, nuevoEstado)
    • Busca el pedido por ID
    • Cambia estado
  • Método: generarCuenta(idPedido, porcentajePropina)
    • Busca pedido
    • Calcula subtotal
    • Calcula propina: subtotal × propina / 100
    • Imprime cuenta
    • Guarda en archivo "venta_XXX.txt"
    • Cambia estado a "listo"

Test: Carga menú, crea pedido, agrega items, confirma, genera cuenta


🎯 Paso 4: Clase Main

Archivo: Main.java

  • Crea Restaurante y carga menú
  • Variable: pedidoActual = null
  • Menú principal con opciones:
      1. Ver menú
      1. Ver por categoría
      1. Nuevo pedido
      1. Agregar al pedido actual
      1. Ver pedido actual
      1. Eliminar del pedido
      1. Confirmar pedido
      1. Ver pedidos pendientes
      1. Generar cuenta
      1. Cambiar estado pedido
      1. Salir
  • While loop que no termina hasta opción 11
  • Switch para cada opción
  • Try-catch para validar entrada
  • Manejo de Scanner y nextLine()

✅ Checklist Final

  • Plato creada y funcional
  • Pedido creada y funcional
  • Restaurante creada y funcional
  • Main con menú completo (11 opciones)
  • Generación de cuentas
  • Validación de errores
  • Archivos generados correctamente
  • Programa sin crashes
  • Cambio de estado funcional

💡 Tips

  1. Sigue el orden (Plato → Pedido → Restaurante → Main)
  2. Prueba cada clase antes de pasar a la siguiente
  3. Los TODO están en orden, no los saltes
  4. Compara con resuelto/ si te atascas
  5. Lee los comentarios de cada archivo
  6. Prueba cambiar estado de pedidos

¡Cuando termines, habrás creado un sistema profesional de restaurante! 🚀

About

Proyecto consolidado: rama main (final) y rama base (fase inicial)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages