package br.com.xandyxdev.principal;
import br.com.xandyxdev.modelos.Card;
import br.com.xandyxdev.modelos.Produtos;
import java.util.*;
public class Principal {
public static void main(String[] args) {
Scanner leitor = new Scanner(System.in);
System.out.println("Digite o limite do cartão: ");
Card card = new Card(leitor.nextDouble());
int saidaEntrada = 1;
List<Produtos> produtos1 = new LinkedList<>();
while (saidaEntrada != 0 && saidaEntrada == 1) {
System.out.println("Digite o nome do produto: ");
String itemComprado = leitor.nextLine();
System.out.println("Digite o valor do produto: ");
double valorItem = leitor.nextDouble();
Produtos produto = new Produtos(itemComprado, valorItem);
card.realizarCompra(valorItem, produto, produtos1);
System.out.println("\nSe deseja realizar outra compra digite 1 se deseja sair digite 0");
saidaEntrada = leitor.nextInt();
}
if (produtos1.size() == 0) {
System.out.println("Nenhuma compra realizada!");
} else {
System.out.println("*****************");
System.out.println("COMPRAS REALIZADAS\n");
Collections.sort(produtos1, Comparator.comparingDouble(Produtos::getValorProduto));
for (Produtos produto : produtos1) {
System.out.println(produto.getNomeProduto() + " - R$" + produto.getValorProduto());
}
System.out.println("\n*****************");
System.out.println("\nSaldo disponivel: R$" + card.getLimiteCartao());
}
}
}
package br.com.xandyxdev.modelos;
import java.util.List;
public class Card {
private double limiteCartao;
public Card(double limiteCartao) {
this.limiteCartao = limiteCartao;
}
public double getLimiteCartao() {
return limiteCartao;
}
public boolean realizarCompra(double valorItem, Produtos item, List lista) {
if (valorItem > this.limiteCartao) {
System.out.println("Saldo insuficiente\n");
System.out.println("Saldo disponivel : R$" + limiteCartao);
return false;
} else {
lista.add(item);
this.limiteCartao -= valorItem;
return true;
}
}
}
package br.com.xandyxdev.modelos;
public class Produtos {
private String nomeProduto;
private double valorProduto;
public Produtos(String nomeProduto, double valorProduto) {
this.nomeProduto = nomeProduto;
this.valorProduto = valorProduto;
}
public String getNomeProduto() {
return nomeProduto;
}
public double getValorProduto() {
return valorProduto;
}
}