0
respostas

[Sugestão] Resolução do Desafio - por thiago bernardes

Pessoal eu fiz isso completamente sozinho então podem haver maneiras mais simples de solucionar o desafio:



public class Compras implements Comparable<Compras>{
    private String nomeItem;
    private double valor;

    public Compras(String nomeItem, double valor){
        this.nomeItem = nomeItem;
        this. valor = valor;
    }

    public String getNomeItem() {
        return nomeItem;
    }

    public void setNomeItem(String nomeItem) {
        this.nomeItem = nomeItem;
    }

    public double getValor() {
        return valor;
    }

    public void setValor(double valor) {
        this.valor = valor;
    }

    @Override
    public int compareTo(Compras outracompra){
        return this.nomeItem.compareTo(outracompra.getNomeItem());
    }

    @Override
    public String toString(){
        return "Nome: "+this.getNomeItem() + " || Preço: " + this.getValor();
    }
}
import java.util.ArrayList;
import java.util.List;

public class CartaoCredito {
    private double limite;
  
    private List<Compras> compras;
    

    public CartaoCredito(double limite,  List<Compras> compras){
        this.limite = limite;
        this.compras = compras;
       
       
    }

    public double getLimite() {
        return limite;
    }

 

    public List<Compras> getCompras() {
        return compras;
    }

   

    public boolean lancaCompra(Compras compras){
        if ( this.limite >= compras.getValor()){
            this.limite -= compras.getValor();
            this.compras.add(compras);
            return true;
        }else{
            return false;
        }
        
    }

    @Override
    public String toString(){
        return this.compras.toString() + " || Limite : " + String.format("%2f",this.limite) ;
               
    }
}

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

public class App {
    public static void main(String[] args) throws Exception {
        Scanner scanner  = new Scanner(System.in);
        
        System.out.println("\n******APLICATIVO DE COMPRAS****\n");
        System.out.println("Digite o Limite do seu cartão: ");
        String limiteTxt = scanner.nextLine().replace(",", ".");
        double limite = Double.parseDouble(limiteTxt);

        List<Compras> compras = new ArrayList<>();
        CartaoCredito cartao = new CartaoCredito(limite, compras);

        while (true) {
            System.out.println("Digite 1 para comprar ou 2 para sair: ");
            int controle = scanner.nextInt();
            scanner.nextLine();
            switch (controle) {
                case 1:
                    System.out.println("Digite o nome do item que deseja comprar: ");
                    String nomeItem = scanner.nextLine().strip();
                    System.out.println("Digite o preço do item que deseja comprar: ");
                    String precoTxt = scanner.nextLine().strip().replace(",", ".");
                    double valor = Double.parseDouble(precoTxt);
                    Compras itemcomprado = new Compras(nomeItem, valor);
                    
                    if (cartao.lancaCompra(itemcomprado)){
                        System.out.println("Compra realizada");
                        System.out.println(cartao);
                       
                    }else{
                        System.out.println("Saldo insuficiente");
                        compras.remove(itemcomprado);
                    }
                    break;
                case 2:
                    System.out.println("Saindo do Programa...");
                    System.out.println(cartao); 
                    System.exit(controle);   
                default:
                
                    break;
            }
        }
    }
}