Clase Main
import com.app.compras.interaccion.App;
public class Main {
public static void main(String[] args) {
App app = new App();
app.mostrarVentas();
}
}
Clase App
package com.app.compras.interaccion;
import com.app.compras.modelos.Compra;
import com.app.compras.modelos.Producto;
import com.app.compras.modelos.Targeta;
import java.util.Comparator;
import java.util.Scanner;
import java.util.List;
public class App {
Compra compra = new Compra();
Targeta targeta = new Targeta();
public void mostrarVentas() {
System.out.println("Ingrese el valor límite de la targeta: ");
targeta.descuentoSaldoTargeta(new Scanner(System.in).nextInt());
int respuesta;
do {
var producto = new Producto();
System.out.println("Escriba la descripción de la compra: ");
producto.setNombre(new Scanner(System.in).nextLine());
System.out.println("Escriba el precio: ");
producto.setPrecio(new Scanner(System.in).nextInt());
System.out.println("Escriba la cantidad: ");
producto.setCantidad(new Scanner(System.in).nextInt());
if ((targeta.getSaldotargeta() - producto.getCantidad() * producto.getPrecio()) < 0) {
System.out.println("La compra excede el saldo de la cuenta");
break;
}
compra.addProducto(producto);
targeta.descuentoSaldoTargeta(-producto.getCantidad() * producto.getPrecio());
System.out.println("Compra exitosa");
System.out.println("***********************");
System.out.println("Escriba 0 para salir y 1 para continuar ");
} while (targeta.getSaldotargeta() > 0 && new Scanner(System.in).nextInt() == 1);
// Resumen de la venta
System.out.println("***********************");
compra.getProductoCoprado().sort(Comparator.comparing(Producto::getPrecio));
System.out.println("El resumen de las ventas es: " + compra.getProductoCoprado());
System.out.println("************************");
System.out.println("El total de la compra es: "+ compra.getTotalCompra());
System.out.println("El saldo de la targeta es: " + targeta.getSaldotargeta());
}
}
Clase Producto
package com.app.compras.modelos;
public class Producto {
private String nombre;
private int precio;
private int cantidad;
// metodos set y get omitidos
@Override
public String toString() {
return "Producto: "+ getNombre() + " \n " +
"Precio: " + getPrecio() + " \n " +
"Cantidad: " + getCantidad() + " \n "+
"Sub total: " + getPrecio()*getCantidad();
}
}
Clase Compra
package com.app.compras.modelos;
import java.util.ArrayList;
import java.util.List;
public class Compra {
private int totalCompra;
private List<Producto> productoCoprado = new ArrayList<>();
public List<Producto> getProductoCoprado() {
return productoCoprado;
}
public void addProducto(Producto producto) {
this.productoCoprado.add(producto);
totalCompra += producto.getPrecio()* producto.getCantidad();
}
public int getTotalCompra() {
return totalCompra;
}
}
Clase Tarjeta
package com.app.compras.modelos;
public class Targeta {
private int saldotargeta;
public int getSaldotargeta(){
return saldotargeta;
}
public void descuentoSaldoTargeta(int valor){
saldotargeta += valor;
}
}