Sigue estos pasos para resolver el proyecto. Cada // TODO: es un paso.
Archivo: Producto.java
- Crea atributos: id, nombre, precio, stock
- Constructor que reciba los 4 parámetros
- Getters: getId(), getNombre(), getPrecio(), getStock()
- Método: tieneStock(cantidad) - retorna true si hay stock
- Método: restarStock(cantidad) - reduce el stock
- Método: getInfo() - retorna "id | nombre | precio€ | stock"
Test: Crea 3 productos y prueba los métodos
Archivo: Carrito.java
- Atributos: items (ArrayList), cantidades (ArrayList)
- Constructor vacío
- Método: agregarProducto(Producto, cantidad)
- Valida que cantidad > 0
- Valida que producto tenga stock
- Agrega a items y cantidades
- Método: verCarrito() - imprime todos los items
- Método: calcularSubtotal() - suma (precio × cantidad) de cada item
- Método: estaVacio() - retorna true si no hay items
- Método: eliminarProducto(int index) - quita un producto
Test: Agrega productos, muestra carrito, calcula subtotal
Archivo: Tienda.java
- Atributos: productos (ArrayList), carrito (Carrito)
- Constructor: inicializa ArrayList
- Método: cargarInventario()
- Crea 5 productos de ejemplo
- Los agrega al ArrayList
- Método: mostrarCatalogo() - imprime todos los productos
- Método: buscarProducto(nombre) - retorna Producto o null
- Método: agregarAlCarrito(nombre, cantidad)
- Busca el producto
- Valida que exista
- Agrega al carrito
- Actualiza stock
- Método: generarFactura(descuento)
- Calcula subtotal
- Aplica descuento
- Calcula IVA (21%)
- Imprime factura completa
- Guarda en archivo "factura_XXX.txt"
Test: Carga inventario, muestra catálogo, agrega al carrito, genera factura
Archivo: Main.java
- Crea Tienda y carga inventario
- Menú principal con opciones:
-
- Ver catálogo
-
- Agregar al carrito
-
- Ver carrito
-
- Eliminar del carrito
-
- Comprar (con descuento)
-
- Salir
-
- While loop que no termina hasta elegir opción 6
- Switch para cada opción
- Try-catch para validar entrada
- Manejo de Scanner y nextLine()
- Producto creada y funcional
- Carrito creada y funcional
- Tienda creada y funcional
- Main con menú completo
- Generación de facturas
- Validación de errores
- Archivos generados correctamente
- Programa sin crashes
- Sigue el orden (Producto → Carrito → Tienda → Main)
- Prueba cada clase antes de pasar a la siguiente
- Los TODO están en orden, no los saltes
- Compara con
resuelto/si te atascas - Lee los comentarios de cada archivo
¡Cuando termines, habrás creado un sistema profesional! 🚀