0
respostas

[Projeto] Projeto final

Não Consegui deixar por ordem de valor... Ficaria agradecido se me desse alguma dica

package br.com.compras.loja;

public class Compra  {
    private String nomeProduto;
    private double valorProduto;
    private double cartao;

    public void setNomeProduto(String nomeProduto) {
        this.nomeProduto = nomeProduto;
    }

    public void setValorProduto(double valorProduto) {
        this.valorProduto = valorProduto;
    }

    public void setCartao(double cartao) {
        this.cartao = cartao;
    }

    public String getNomeProduto() {
        return nomeProduto;
    }

    public double getProduto() {
        return valorProduto;
    }

    public double getCartao() {
        return cartao;
    }

    public void calculo() {
        if (valorProduto > cartao) {
            System.out.println("Saldo insuficiente ");
        } else {
            cartao = cartao - valorProduto;
            System.out.println(nomeProduto + " " + valorProduto);
            System.out.println("Saldo do cartao: " + cartao);
        }
    }



    @Override
    public String toString() {
        return this.getNomeProduto();
    }


}

import br.com.compras.loja.Compra;

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

public class Principal {
    public static void main(String[] args) {
        var compra = new Compra();

        Scanner sc = new Scanner(System.in);

        ArrayList<String> listaProdutos = new ArrayList<>();

        int opcao;

        double totalCompra = 0;

        do {
            System.out.println("1 - Limite");
            System.out.println("2 - Fazer compras ");
            System.out.println("0 - sair ");

            opcao = sc.nextInt();

            switch (opcao) {
                case 1:
                    System.out.println("Digite o limite do cartõo: ");
                    double valorCartao = sc.nextDouble();
                    compra.setCartao(valorCartao);
                    break;


                case 2:
                    if(compra.getCartao() > 0){
                        System.out.println("Digite a descrição da compra: ");
                        String descricao = sc.next();
                        compra.setNomeProduto(descricao);

                        System.out.println("Digite o valor da Compra: ");
                        double comp = sc.nextDouble();
                        compra.setValorProduto(comp);
                        compra.calculo();
                        listaProdutos.add(compra.getNomeProduto() + "\nValor da comppra: " + compra.getProduto());
                        totalCompra += compra.getProduto();

                    }else {
                        System.out.println("Definir o limite primeiro...");
                    }
                    break;


                case 0:
                    Collections.sort(listaProdutos);

                    for (String item : listaProdutos) {
                        System.out.println("Descricão da compra: " + item );
                    }

                    System.out.println("\nValor total da Compra: "+ totalCompra);

                    System.out.println("\nSaindo. . .");
                    break;

                default:
                    System.out.println("Opçao invalida");

            }
        }while (opcao != 0);

        sc.close();


    }
}