En este post sobre Java vamos a resolver un ejercicio para simular una venta (en donde se registran productos) y al final mostrar el ticket de venta. Lo que haremos será dar al usuario la opción para agregar, quitar o aumentar la cantidad de productos.
Cuando el usuario lo requiera, se podrá imprimir el ticket por pantalla, imprimiendo además de la lista de productos, el total.
Clase producto
Para simplificar las cosas haremos una clase que represente al producto de la vida real. Más adelante vamos a crear una lista del mismo para realizar todas las operaciones.
Como ves cada producto tiene precio, cantidad y descripción además de sus respectivos getters y setters. Una cosa importante que notar es el método getSubtotal
que devuelve el subtotal; esto es, multiplicar la cantidad por el precio.
Lista de productos
Ahora que ya tenemos la clase Producto
podemos crear un ArrayList de ese tipo para poder administrar la lista fácilmente.
No voy a detallar todas las operaciones de los productos, pues me parece que se explican por sí mismas:
Como puedes ver todos los métodos reciben el ArrayList de los productos; esto es para realizar operaciones sobre la lista de productos que el usuario tiene.
Funciones extras
En algunos puntos el usuario introduce ciertos valores que deben ser solicitados por consola. Para ello he creado algunas funciones que solicitan el valor:
Por ejemplo una de esas funciones se encarga de armar el producto solicitando los datos al usuario por consola.
Imprimir ticket en consola
El método que imprime el total y los productos comprados es el siguiente:
Simplemente hace un foreach y usa printf para alinear el texto. Aquí estamos usando el método getSubtotal
del producto para mostrarlo en la tabla y para así también calcular el total final.
Menú principal
Todas las operaciones de productos (aumentar cantidad, eliminar, agregar) se manejan a través de un simple menú que está dentro de un ciclo while.
Dentro del ciclo, además de solicitar al usuario lo que desea hacer, se imprimen los productos que el usuario ya tiene en su lista:
Las opciones, como puedes ver, son:
- Agregar producto
- Cambiar cantidad
- Quitar producto
- Mostrar ticket y terminar venta
- Salir
Poniendo todo junto
El código completo para simular una compra agregando y modificando productos además de imprimir el ticket queda como se ve a continuación:
Yo lo he ejecutado para probar y se ve así:
Si quieres tú también puedes probarlo en este enlace.