Poo

Faça um programa em Java para manter um cadastro de produtos e suas
respectivas vendas. O aplicativo deve apresentar também alguns relatórios
de controle para o usuário.
Porém ao consultar o item 2, quando cadastramos por exemplo 2 produto se busco pelo nome ele demonstra 2 produtos ao invés de somente aquele do nome digitado pelo usuário.

Se puderem me ajudar fico grata =D

PROGRAMA

package programas;

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

import classes.Produto;

public class Programa {

    public static void main(String[] args) {

        Scanner in = new Scanner (System.in);

        int opcao;

        List<Produto> produtos = new ArrayList<>();

        
        

        do{

            System.out.println("\n**\nMENU\n**\n");

            System.out.println("1 - Incluir produto");

            System.out.println("2 - Consultar produto");

            System.out.println("3 - Listagem de produtos");

            System.out.println("4 - Vendas pro período - detalhado");

            System.out.println("5 - Realizar venda");

            System.out.println("0 - Sair");

            System.out.print("Opção: ");

            opcao = in.nextInt();

            in.nextLine();            

                                  
        

            switch (opcao){

                case 1:  

                Produto produ = new Produto();

                System.out.print("Digite o codigo do produto: ");

                produ.setCodigo(in.nextLine());

                System.out.print("Digite o nome do produto: ");

                produ.setNome(in.nextLine());

                System.out.print("Digite o valor do produto: ");

                produ.setValor(in.nextLine());

        

                System.out.print("Digite a quantidade: ");

                produ.setQtdEstoque(in.nextLine());

                produtos.add(produ);

                System.out.println("Produto Cadastrado com sucesso.");

                break;

                case 2:

                

                System.out.print("Digite o nome do produto: ");

                String nome =  (in.nextLine());

      

                for (Produto produto :produtos ) {

                    if(produto.getNome() == nome){

                    System.out.println();

                    System.out.println("Codigo: " + produto.getCodigo());

                    System.out.println("Nome : " + produto.getNome());

                    System.out.println("Valor: " + produto.getValor());

                    System.out.println("Quantidade: " + produto.getQtdEstoque());

      

                    }else{

                        System.out.println("Produto não encontrado.");

                  

                    }           

                        

                }

                case 3:

                if (produtos.isEmpty()) {

                    System.out.println("Nenhum produto a exibir.");

                

                }   

                

                for (Produto produt : produtos) {

                    System.out.println();

                    System.out.println("Código: " + produt.getCodigo());

                    System.out.println("Nome: " + produt.getNome());

                    System.out.println("Valor: " + produt.getValor());

                    System.out.println("Quantidade: " + produt.getQtdEstoque());

                }   

                break; 

                    case 4:

                    case 5:

               

                case 0:

                System.out.println("Fim do programa.");

                break;

              default:

                System.out.println("opção inválida!");

                break;    

            }

                                

        }

        while (opcao != -1);

        in.close();

    }

}

Strings em Java devem ser comparadas com o método equals (ou equalsIgnoreCase), não com == ;

Troque:

if(produto.getNome() == nome){

Por

if(produto.getNome().equalsIgnoreCase(nome)){

Ou por:

if(nome.equalsIgnoreCase(produto.getNome())){

E veja se resolve.

Abraço.

1 curtida

Não vai resolver completamente. Vai escrever os detalhes do produto encontrado mas também vai escrever "Produto não encontrado" por cada produto que exista na lista e não faça match com o nome escrito.
Não podes ter esse else dentro do for. Depois do for é que deves imprimir "Produto não encontrado" se não encontrou nenhum produto.

1 curtida

Obrigada!!

Agora o problema é na case 5 onde preciso realizar a venda, porém sei que deve ser como a parte de cadastro de produto, mais não dá certo, alguém pode me ajudar? meu código ficou assim:

#CODE

package programas;

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

import classes.Produto;

import classes.Venda;

public class Programa {

public static void main(String[] args) {

    Scanner in = new Scanner (System.in);

    int opcao;

    List<Produto> produtos = new ArrayList<>();

    
    

    do{

        System.out.println("\n**\nMENU\n**\n");

        System.out.println("1 - Incluir produto");

        System.out.println("2 - Consultar produto");

        System.out.println("3 - Listagem de produtos");

        System.out.println("4 - Vendas pro período - detalhado");

        System.out.println("5 - Realizar venda");

        System.out.println("0 - Sair");

        System.out.print("Opção: ");

        opcao = in.nextInt();

        in.nextLine();            

                              
    

        switch (opcao){

            case 1:  

            Produto produ = new Produto();

            System.out.print("Digite o codigo do produto: ");

            produ.setCodigo(in.nextLine());

            System.out.print("Digite o nome do produto: ");

            produ.setNome(in.nextLine());

            System.out.print("Digite o valor do produto: ");

            produ.setValor(in.nextLine());

    

            System.out.print("Digite a quantidade: ");

            produ.setQtdEstoque(in.nextLine());

            produtos.add(produ);

            System.out.println("Produto Cadastrado com sucesso.");

            break;

            case 2:

                            

            System.out.print("Digite o nome do produto: ");

            String nome =  (in.nextLine());

            

            Boolean encontrado = false;

            for (Produto produto :produtos ) {

                if(produto.getNome().equals(nome)){

                System.out.println();

                System.out.println("Codigo: " + produto.getCodigo());

                System.out.println("Nome : " + produto.getNome());

                System.out.println("Valor: " + produto.getValor());

                System.out.println("Quantidade: " + produto.getQtdEstoque());

                encontrado = true;

                }

            }

                  

            if(!encontrado) {

                System.out.println("Produto Não Encontrado!");            

            }

            

            break;

            case 3:

            

            System.out.println("\n**\nListagem de Produtos\n**\n");

            if (produtos.isEmpty()) {

                System.out.println("Nenhum produto a exibir.");

            

            }   

            

            for (Produto produt : produtos) {

                System.out.println();

                System.out.println("Código: " + produt.getCodigo());

                System.out.println("Nome: " + produt.getNome());

                System.out.println("Valor: " + produt.getValor());

                System.out.println("Quantidade: " + produt.getQtdEstoque());

            }   

            break; 

                case 4:

                //System.out.print("Digite o nome do produto: ");

                //String venda =  (in.nextLine());

                

                //Boolean encontra = false;

                //for (Venda venda : vendas ) {

                    //if(venda.getProdutoVendido().equals(venda)){

                    //System.out.println();

                    //System.out.println("Produto vendido: " + venda.getProdutoVendido());

                    //System.out.println("Data da venda : " + venda.getDataVenda());

                    //System.out.println("Quantidade: " + venda.getQtdVendido());

                    //System.out.println("Valor da unidade: " + venda.getValorUnitario());

                    //encontrado = true;

                    //}

               // }

                      

                //if(!encontra) {

                    //System.out.println("Produto Não Encontrado!");            

               // }

                

                break;

                case 5:

                Venda vendas = new Venda();

                System.out.print("Produto vendido: ");

                vendas.setProdutoVendido(in.nextLine());



                System.out.print("Data da venda: ");

                vendas.setDataVenda(in.nextLine());



                System.out.print("Quantidade do produto: ");

                vendas.setQtdVendido(in.nextInt());

                System.out.print("Quantidade do produto: ");

                vendas.setProduto(in.nextInt());



                break;

           

            case 0:

            System.out.println("Fim do programa.");

            break;

          default:

            System.out.println("opção inválida!");

            break;    

        }

                            

    }

    while (opcao != -1);

    in.close();

}

}