
Una máquina expendedora programada en Java es un programa que simula el funcionamiento de una máquina real, permitiendo a los usuarios seleccionar productos y realizar pagos. Se basa en recibir entradas del usuario, procesar la información y entregar un resultado, simulando la dispensación de un producto.
Aquí te explicamos paso a paso cómo construir una máquina expendedora básica en Java:
1. Definir los Productos: Primero, necesitamos representar los productos disponibles. Podemos usar una clase llamada `Producto` que contenga atributos como nombre, precio y cantidad disponible.
Must Read
Ejemplo:
class Producto {
String nombre;
double precio;
int cantidad;
}
2. Almacenar los Productos: Necesitamos una forma de guardar los productos. Un `ArrayList` o un `HashMap` son buenas opciones. Un `HashMap` podría usar códigos de producto (como A1, B2) como claves y los objetos `Producto` como valores.

Ejemplo:
HashMap<String, Producto> inventario = new HashMap<>();
3. Mostrar el Menú: El programa debe mostrar los productos disponibles al usuario. Itera sobre el `HashMap` y muestra el nombre y el precio de cada producto.

Ejemplo:
for (String codigo : inventario.keySet()) {
Producto producto = inventario.get(codigo);
System.out.println(codigo + ": " + producto.nombre + " - $" + producto.precio);
}
4. Recibir la Selección del Usuario: Usa la clase `Scanner` para recibir la entrada del usuario. El usuario debe ingresar el código del producto que desea.

Ejemplo:
Scanner scanner = new Scanner(System.in);
String codigoSeleccionado = scanner.nextLine();
5. Procesar la Selección: Busca el producto en el `HashMap` usando el código ingresado. Verifica si el producto existe y si hay suficiente cantidad disponible.

6. Recibir el Pago: Solicita al usuario que ingrese el dinero. Compara el dinero ingresado con el precio del producto.
7. Entregar el Producto y el Cambio: Si el pago es suficiente, disminuye la cantidad disponible del producto en el inventario y calcula el cambio a devolver.
8. Manejar Errores: Implementa manejo de errores para situaciones como: producto no encontrado, cantidad insuficiente, o pago insuficiente. Informa al usuario de forma clara.
Este es un ejemplo básico. Puedes expandir esta base agregando características como: métodos de pago más complejos (tarjeta de crédito), administración del inventario por parte del administrador, y una interfaz gráfica de usuario (GUI).