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

Programa de Compras

Aplicação de Compras

Consegui colocar na lógica de adição de produto, para caso o limite seja 0, o loop que pede produto é pare, e mostre as compras. Já que sem limite pode mais adicionar produtos:

package ProgramaCompras;

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

public class Compras implements Comparable<Compras>{
    Double limite;
    String descricao;
    Double valor;
    int opcao;
    String valorString = "";

    public String getDescricao() {
        return descricao;
    }
    public Double getValor() {
        return valor;
    }
    public Double getLimite() {
        return limite;
    }
    public Compras(String descricao, Double valor) {
        this.descricao = descricao;
        this.valor = valor;
    }
    public Compras() {
    }
    Scanner sc = new Scanner(System.in);
    ArrayList<Compras> listaCompras = new ArrayList<>();

    public void capturarLimite(){
        System.out.println("Digite o limite do cartão de crédito: ");
        limite = sc.nextDouble();
        sc.nextLine();

        System.out.println("Limite do cartão: " + limite);
    }
    public void telaCompra(){
        capturarLimite();
        do {
            System.out.println("Digite a descrição da compra: ");
            descricao = sc.nextLine();

            System.out.println("Digite o valor da compra: ");
            valor = sc.nextDouble();
            sc.nextLine();

            if(limite<valor){
                System.out.println("Limite Insuficiente. Não foi possível adicionar o produto.\n");
                break;
            }
            else {
                limite-=valor;
                valorString = String.valueOf(valor);
                listaCompras.add(new Compras(descricao, valor));
                System.out.println("Compra realizada.");

                if(limite==0.0){
                    System.out.println("Limite Zerado!!");
                    break;
                }
                System.out.println("Limite disponível: " + limite);
            }
            Collections.sort(listaCompras);
            System.out.println("Digite 0 para sair ou 1 para continuar.");
            opcao = sc.nextInt();
            sc.nextLine();
        } while(opcao==1);
        mostrarCompras();
    }
    public void mostrarCompras(){
            System.out.println("************************");
            System.out.println("COMPRAS REALIZADAS: ");
            System.out.println();
            for (Compras mostragem : listaCompras){
                System.out.println(mostragem);
            }
            System.out.println();
            System.out.println("************************");
            System.out.println();
            System.out.println("Limite Disponível no cartão: " + limite);
    }
    @Override
    public int compareTo(Compras o) {
        return this.getValor().compareTo(o.getValor());
    }
    @Override
    public String toString() {
        return getDescricao() + " - R$" + getValor();
    }
}

print programa

Consegui utilizar nesse programa diversos conceitos aprendidos no curso, como a aplicação da orientação a objetos, listas, foreach, ordenação de dados, e loops.

1 resposta
solução!

Oi, Paulo! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Você estruturou muito bem a lógica da sua aplicação de compras, principalmente ao considerar o caso de limite igual a zero para encerrar o loop. A forma como usou a classe Compras com Comparable e o método toString() deixou a visualização mais clara e organizada, além de demonstrar um bom domínio da estrutura de listas e ordenação.

Uma dica interessante para o futuro é usar o método printf() para formatar os valores monetários com duas casas decimais. Isso deixa a saída mais amigável para quem utiliza o sistema:


System.out.printf("Limite disponível: R$ %.2f\n", limite);

Esse comando printf formata o número com duas casas após o ponto decimal, ideal para valores monetários.

Alura

Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!