Main
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class main {
public static void main(String[] args) {
Scanner teclado=new Scanner(System.in);
String nombreProducto;
double valorProducto;
int opcionCompra=1;
ArrayList<Producto> listaProductoComprados=new ArrayList<>();
System.out.println("Escriba el limite de la tarjeta de Credito");
TCredito tarjetaCompra=new TCredito(teclado.nextDouble());
while (opcionCompra!=0){
System.out.println("Escriba el producto a comprar");
nombreProducto=teclado.next();
System.out.println("Escriba el valor del producto ");
valorProducto=teclado.nextDouble();
if(tarjetaCompra.realizarCompra(valorProducto)) {
listaProductoComprados.add(new Producto(nombreProducto, valorProducto));
System.out.println("Desea ralizar otra compra, presiones 1 de lo contraio 0");
opcionCompra= teclado.nextInt();
}else {
opcionCompra=0;
}
}
System.out.println("Resumen de Compras realizadas");
Collections.sort(listaProductoComprados);
// System.out.println(listaProductoComprados);
listaProductoComprados.forEach(System.out::println);
System.out.println("Saldo Disponible en tarjeta: "+tarjetaCompra.getSaldo());
teclado.close();
}
Clase Producto
public class Producto implements Comparable<Producto>{
private String nombreProducto;
private double valorProducto;
public Producto(String nombreProducto, double valorProducto) {
this.nombreProducto = nombreProducto;
this.valorProducto = valorProducto;
}
public String getNombreProducto() {
return nombreProducto;
}
public double getValorProducto() {
return valorProducto;
}
@Override
public String toString() {
return "Producto: "+getNombreProducto()+" - Valor: "+getValorProducto();
}
@Override
public int compareTo(Producto otroProducto) {
return Double.valueOf(this.getValorProducto()).compareTo(Double.valueOf(otroProducto.getValorProducto()));
}
}
Clase tarjeta
public class TCredito {
private double saldo;
public TCredito(double saldo){
this.saldo=saldo;
}
public double getSaldo() {
return saldo;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
public Boolean realizarCompra(double valorCompra){
if(this.saldo>=valorCompra){
this.saldo-=valorCompra;
return true;
}else {
System.out.println("Saldo Insuficiente, Compra no realizada");
return false;
}
}
}