Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Desafio Final

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class AplicacaoCompras {
    private double limiteCartao;
    private double saldoDisponivel;
    private List<Compra> compras;

    public AplicacaoCompras(double limiteCartao) {
        this.limiteCartao = limiteCartao;
        this.saldoDisponivel = limiteCartao;
        this.compras = new ArrayList<>();
    }

    public void iniciar(Scanner scanner) {
        int opcao;
        do {
            System.out.print("Digite a descrição da compra: ");
            String descricao = scanner.next();
            System.out.print("Digite o valor da compra: ");
            double valor = scanner.nextDouble();

            if (valor <= saldoDisponivel) {
                realizarCompra(descricao, valor);
                saldoDisponivel -= valor;
            } else {
                System.out.println("Saldo insuficiente!");
            }

            System.out.print("Digite 0 para sair ou 1 para continuar: ");
            opcao = scanner.nextInt();
        } while (opcao != 0);

        exibirComprasOrdenadas();
        System.out.println("Saldo do cartão: " + saldoDisponivel);
    }

    private void realizarCompra(String descricao, double valor) {
        Compra novaCompra = new Compra(descricao, valor);
        compras.add(novaCompra);
        System.out.println("Compra realizada!");
    }

    private void exibirComprasOrdenadas() {
        if (!compras.isEmpty()) {
            Collections.sort(compras);
            System.out.println("COMPRAS REALIZADAS:");
            for (Compra compra : compras) {
                System.out.println(compra.getDescricao() + " - " + compra.getValor());
            }
        } else {
            System.out.println("Nenhuma compra realizada.");
        }
    }
}
public class Compra implements Comparable<Compra> {
    private String descricao;
    private double valor;

    public Compra(String descricao, double valor) {
        this.descricao = descricao;
        this.valor = valor;
    }

    public String getDescricao() {
        return descricao;
    }

    public double getValor() {
        return valor;
    }

    @Override
    public int compareTo(Compra outraCompra) {
        return Double.compare(this.valor, outraCompra.getValor());
    }
}
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Digite o limite do cartão: ");
        double limiteCartao = scanner.nextDouble();

        AplicacaoCompras aplicacao = new AplicacaoCompras(limiteCartao);
        aplicacao.iniciar(scanner);

        scanner.close();
    }
}
1 resposta
solução!

Oii, Samil, tudo bem?

Obrigada por compartilhar o seu código aqui no fórum! :)

Se alguma dúvida surgir, estamos disponíveis.

Abraços e bons estudos!