1
resposta

Projeto final do desafio - Java: trabalhando com listas e coleções de dados

Realizei o código da minha forma, antes de ver as aulas ou qualquer outra coisa, fiz apenas um teste e parece tá tudo certo. Inicialmente criei apenas o algoritmo que rodasse, posteriormente, fui lapidando, acrecentando o que vi necessário com base no exercício modelo. Achei bem legal ter feito dessa forma e não pareceu tão complexo por ter feito por partes: esqueleto, orientação a objetos, lista e ordenação.

public class Compras {
    private String descricao;
    private double valor;

    public Compras(){

    }

    public Compras(String descricao, double valor){
        this.descricao = descricao;
        this.valor = valor;
    }
    public String getDescricao(){
        return descricao;
    }

    public double getValor(){
        return valor;
    }

    @Override
    public String toString() {
        return descricao + " - " + valor;
    }
}

void main() {
    System.out.println("Digite o limite do cartão:");
    Scanner input = new Scanner(System.in);
    double limite = input.nextDouble();
    input.nextLine();

    int resposta = 0;
    List<Compras> compras = new ArrayList<>();

    do{
        System.out.println("Digite a descrição da compra:");
        String descricao = input.nextLine();
        System.out.println("Digite o valor da compra:");
        double valor =  input.nextDouble();
        if(limite <= valor){
            System.out.println("Saldo insuficiente!");
            break;
        }else{
            limite -= valor;
            System.out.println("Compra realizada!");
            compras.add(new Compras(descricao, valor));
        }
        System.out.println("Digite 0 para sair ou 1 para continuar");
        resposta = input.nextInt();
        input.nextLine();
    }while(resposta != 0);

    compras.sort(Comparator.comparing(Compras::getValor));
    System.out.println("****************************************\nCOMPRAS REALIZADAS:\n");
    for(Compras compra : compras){
        System.out.println(compra);
    }
    //System.out.println(compras);
    System.out.println("\n****************************************");
    System.out.printf("\nSaldo do cartão: %.1f\n", limite);
}
1 resposta

Oi, Eduardo! Como vai?

Agradeço por compartilhar.

Gostei da sua abordagem de construir o projeto por partes, importante notar como você organizou bem o processo começando pelo esqueleto e evoluindo para orientação a objetos, listas e ordenação, o que mostra clareza no raciocínio e domínio gradual dos conceitos do curso. Isso deixou o código mais legível e alinhado com a proposta da atividade.

Continue explorando esse método de desenvolvimento incremental, ele ajuda muito na organização e na manutenção do código.

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