Black November

ATÉ 50% OFF

TÁ ACABANDO!

0 dias

0 horas

0 min

0 seg

1
resposta

[Projeto] Sistema de compras

Classe de Cartao de credito

import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

public class CartaoDeCredito {
    private double limite;
    private List<Compras> compras=new ArrayList<>();
    private Compras compra;
    private double somaTotal;
    public double getSomaTotal() {
        return somaTotal=compras.stream()
                .mapToDouble(Compras::getPreco)
                .sum();
    }

public double getLimite() {
    return limite;
}

public void setLimite(double limite) {
    this.limite = limite;
}

public void getCompras() {
     compras.stream().sorted(Comparator.comparing(Compras::getPreco).reversed())
            .collect(Collectors.toList()).forEach(System.out::println);


    System.out.println("Valor total das compras: " + getSomaTotal());

}

public void setCompras(Compras compras) {
 this.compra=compras;

 if (compras.getPreco()<getLimite()){
  this.compras.add(compras) ;}
 else {
     System.out.println("Saldo insulficiente"+ " \n\nLimite Atual: "+(getLimite()-getSomaTotal()));
 }


}}

                                                          

Classe de compras

  public class Compras {
private String nome;
private double preco;

public Compras() {
}

public Compras(String nome, double preco) {
    this.nome = nome;
    this.preco = preco;
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public double getPreco() {
    return preco;
}

public void setPreco(double preco) {
    this.preco = preco;
}

@Override
public String toString() {
    return  nome + '\'' +
            "  preco=" + preco ;
}}

Classe principal

import java.util.Scanner;

public class Principal {
public static void main(String[] args) {
    Scanner entrada=new Scanner(System.in);

    CartaoDeCredito cartao1=new CartaoDeCredito();
  
    System.out.println("Digite o limite do cartão");
    double limite= entrada.nextDouble();
    cartao1.setLimite(limite);
   while(true){

       System.out.println("Deseja Fazer uma compra? Digite 1 para sim e 2 para não");
       int resposta=entrada.nextInt();
       entrada.nextLine();
       if (resposta==1){
           Compras compra=new Compras();
           System.out.println("qual o nome do produto");
           String nome =entrada.nextLine();
           compra.setNome(nome);
           System.out.println("Qual o valor do produto");
           double preco=entrada.nextDouble();
           entrada.nextLine();

           compra.setPreco(preco);
           cartao1.setCompras(compra);
           System.out.println("Compra Realizada");
       }   else if (resposta == 2) {
        System.out.println("Finalizando...");
                 break;
    } else {
        System.out.println("Opção inválida. Digite 1 ou 2.");
    }

   }


}

}
`

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Oi, Nadson! Como vai?

Você estruturou bem as classes e o uso de streams chamou atenção, principalmente na soma dos valores. Com o que você descreveu, a organização das compras ficou clara e o fluxo do programa está funcionando de forma consistente.

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