1
resposta

[Projeto] solução projeto

Resolvi adicionar ao projeto a opção de adicionar produtos
Produtos

private String nome;
    private double preco;


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

    public String getNome() {
        return nome;
    }

    public double getPreco() {
        return preco;
    }

    @Override
    public String toString() {
        return "Produto: "+getNome()+" | Preço: "+getPreco();
    }

Cartao

   private double saldo=1000;

    public double getSaldo() {
        return saldo;
    }

    public void cobra(double valor){
        if (valor < 0){
            System.out.println("erro, o valor digita é inferior a 0");
        } else if (valor > saldo) {
            System.out.println("erro, saldo insuficiente");
        }else{
            System.out.println("compra realizada");
            this.saldo=saldo-valor;
        }
    }

Main

String acoes= """
                o que deseja fazer?
                1- cadastrar produto
                2- realizar venda
                3- sair
                """;
        int escolha=0;

        Scanner scan=new Scanner(System.in);
        Cartao cartao=new Cartao();

        Produtos p1=new Produtos("pendrive 32Gb",50);
        Produtos p2=new Produtos("pendrive 16gb",25);
        Produtos p3=new Produtos("teclado",100);

        ArrayList<Produtos> produtos=new ArrayList<>();

        produtos.add(0,p1);
        produtos.add(1,p2);
        produtos.add(2,p3);


        System.out.println("bem vindo ");
        while (escolha != 3 ){
            System.out.println(acoes);
            escolha=scan.nextInt();

            if(escolha < 0 || escolha > 3){
                System.out.println("erro, digite novamente: ");
                escolha=scan.nextInt();
            }
        switch (escolha){
            case 1:
                System.out.print("digite o nome do produto: ");
                String nome=scan.next();
                System.out.print("digite o preço do produto: ");
                double preco=scan.nextDouble();
                Produtos p4=new Produtos(nome,preco);
                produtos.add(p4);
                break;
            case 2:

                System.out.println("seu saldo é de: "+cartao.getSaldo());
                for (int i = 0; i < produtos.size(); i++) {
                    System.out.println(i+" - "+produtos.get(i));
                }
                System.out.println("adicionar qual produto? ");
                int compra= scan.nextInt();
                while (compra < 0 || compra > produtos.size()){
                    System.out.println("produto invalido: ");
                     compra= scan.nextInt();
                }
                cartao.cobra(produtos.get(compra).getPreco());
                break;
            case 3:
                System.out.println("volte sempre");
            }

        }
1 resposta

Bom dia! Como está?

A sua solução ficou ótima, Jordan!

Notei que você utilizou o conceito de orientação a objetos para estruturar seu sistema de vendas, aplicou de forma eficaz o uso de listas para armazenar dinamicamente os produtos e compreendeu a importância do encapsulamento com métodos e atributos privados para garantir segurança e organização no código.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Alguns materiais estão em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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