public class Tarjeta {
private int montoTarjeta;
public int getMontoTarjeta() {
return montoTarjeta;
}
public void setMontoTarjeta(int montoTarjeta) {
this.montoTarjeta = montoTarjeta;
}
}
public class Producto{
private String nombreDelProducto;
private int valorDelProducto;
public Producto(String nombreDelProducto, int valorDelProducto){
this.nombreDelProducto = nombreDelProducto;
this.valorDelProducto = valorDelProducto;
}
public String getNombreDelProducto() {
return nombreDelProducto;
}
public void setNombreDelProducto(String nombreDelProducto) {
this.nombreDelProducto = nombreDelProducto;
}
public int getValorDelProducto() {
return valorDelProducto;
}
public void setValorDelProducto(int valorDelProducto) {
this.valorDelProducto = valorDelProducto;
}
@Override
public String toString() {
return nombreDelProducto + " - $" + valorDelProducto;
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Tarjeta tarjeta = new Tarjeta();
ArrayList<Producto> listaDeProductos = new ArrayList<>();
int indice = 1;
//Solicitando datos en consola
Scanner teclado = new Scanner(System.in);
System.out.println("Digite el monto de la tarjeta");
int monto = teclado.nextInt();
tarjeta.setMontoTarjeta(monto);
System.out.println("Saldo: $" + tarjeta.getMontoTarjeta());
while (indice == 1){
while (indice == 1){
teclado.nextLine();
System.out.println("Nombre del producto");
String nombreDelProducto = teclado.nextLine();
System.out.println("Valor del producto");
int valorDelProducto = teclado.nextInt();
Producto producto = new Producto(nombreDelProducto, valorDelProducto);
listaDeProductos.add(producto);
System.out.println("Digite 1, para agregar otro producto, o 2 para totalizar compra");
indice = teclado.nextInt();
}
System.out.println("");
//Ordenar los productos de forma ascendente (valor)
Collections.sort(listaDeProductos, Comparator.comparingInt(Producto::getValorDelProducto));
//Mostrar todos los productos agregados
System.out.println("Productos agregados:");
for (Producto p : listaDeProductos){
System.out.println(p);
}
System.out.println("");
//Totalizar el valor de todos los productos
int totalProductos = 0;
for (Producto p : listaDeProductos){
totalProductos += p.getValorDelProducto();
}
System.out.println("Subtotal de los productos: $" + totalProductos);
if (tarjeta.getMontoTarjeta() >= totalProductos){
System.out.println("*********************************");
System.out.println("Saldo restante: $" + (tarjeta.getMontoTarjeta() - totalProductos));
System.out.println("Digite 1, para agregar más productos.");
System.out.println("Digite 2, para realizar compra.");
indice = teclado.nextInt();
if (indice != 1){
System.out.println("");
System.out.println("*********************************");
System.out.println("Total: $" + totalProductos);
System.out.println("Pago: $" + tarjeta.getMontoTarjeta());
System.out.println("Nuevo saldo: $" + (tarjeta.getMontoTarjeta() - totalProductos));
System.out.println("¡Transacción EXITOSA!");
System.out.println("¡Gracias por su compra!");
}
} else {
System.out.println("");
System.out.println("*********************************");
System.out.println("¡Saldo insuficiente!, hasta pronto.");
indice = 2;
}
}
}
}