import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("qual limite da sua conta");
double limite = sc.nextDouble();
double saldo = limite;
System.out.println("digite 1 pra inicar uma compra: ");
int n = sc.nextInt();
CartaoDeCredito cartaoDeCredito = new CartaoDeCredito(limite,saldo);
List<Produto> compra = new ArrayList<>();
while (n !=0 && cartaoDeCredito.getSaldo() > 0) {
System.out.println("Qual a descrição do produto: ");
sc.nextLine();
String nome = sc.nextLine();
System.out.println("Qual valor do intem");
double valor = sc.nextDouble();
cartaoDeCredito.Lanca(valor);
if(valor < cartaoDeCredito.getSaldo()){
System.out.println("compra realizada");
Produto produto = new Produto(nome,valor);
compra.add(produto);
System.out.println("deseja continuar aperte 1 deseja parar aperte 0");
n = sc.nextInt();
}else{
System.out.println("----------------------------------");
System.out.println("Saldo insuficiente");
n = 0;
}
}
System.out.println("-----------------------------------");
System.out.println("compras realizadas");
compra.sort(Comparator.comparing(Produto::getValor));
for (Produto prod: compra) {
System.out.println(prod);
}
System.out.println("-----------------------------------");
System.out.println("Saldo do cartão " + cartaoDeCredito.getSaldo());
;
sc.close();
}
}
import java.util.List;
public class CartaoDeCredito {
private double limite;
private double saldo;
public CartaoDeCredito(double limite, double saldo) {
this.limite = limite;
this.saldo = this.limite;
}
public double getLimite() {
return limite;
}
public double getSaldo() {
return saldo;
}
public void Lanca(double compra){
if(saldo > compra)
saldo -= compra;
else{
}
}
}
public class Produto implements Comparable<Produto> {
private String descricao;
private double valor;
public Produto(String descricao, double valor) {
this.descricao = descricao;
this.valor = valor;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public double getValor() {
return valor;
}
public void setValor(double valor) {
this.valor = valor;
}
@Override
public String toString(){
return this.descricao +" - " + " Valor: $" + this.valor ;
}
@Override
public int compareTo(Produto outroProduto) {
return getDescricao().compareTo(outroProduto.getDescricao());
}
}