Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #27704

Data Structure

Newsgroups comp.lang.java.programmer
Date 2014-03-09 10:13 -0700
Message-ID <7366a5dd-ee0e-4b07-8664-45e58b399515@googlegroups.com> (permalink)
Subject Data Structure
From Michael Pablo <skypabloboy@gmail.com>

Show all headers | View raw


Hello Community!

I would like some help with this code:


import java.io.IOException;
import java.util.*;

public class LS_Nao_Ordenada 
{
    
    //Definindo Classe que representará cada elemento da lista
    
    private static class PRODUTO
    {
        public int numProd;
        public String nomeProd;
        public char tipoDeProduto;
        public float percentuaisImposto;              
        public float precoProd;        
        public PRODUTO proxProd;
    }
    
    public static void main(String args[]) throws IOException
    {
        Scanner entrada = new Scanner(System.in);
        
        /*a lista está vazia, logo o objeto inicio têm o valor null
        o objeto inicio conterá o endereço do primeiro elemento da lista*/
        PRODUTO inicioPROD = null;
        /*o objeto fim conterá o endereço do último elemnteo da lista*/
        PRODUTO fimPROD = null;
        // o objeto auxPROD é um objeto auxiliar
        PRODUTO auxPROD;
        // o objeto anteriorPROD é um objeto auxiliar
        PRODUTO anteriorPROD;
        
        //Variavel com o total do produto
        float totalPRODIMP = 0.0f;
        // Consulta de produtos
        String consultaPROD = "";
        // apresentando menu de opções
        int op, numero, achou;
        
        do
        {
            System.out.println("\nMenu opções\n");
            System.out.println("1 - Cadastrar produto no inicio da fila");
            System.out.println("2 - Cadastrar produto no fim da fila");
            System.out.println("3 - Consultar o preço de um produto");
            System.out.println("4 - Excluir produto");
            System.out.println("5 - Esvazia Lista");
            System.out.println("6 - Sair");
            System.out.println("Digite sua opção: ");
            op = entrada.nextInt();
            
            if (op < 1 || op > 6)
            {
                System.out.println("Opção inválida!!!");
            }
                     
            if (op == 1)
            {
                PRODUTO novoPROD = new PRODUTO();
                
                Random generatorPRO = new Random();
                
                novoPROD.numProd = generatorPRO.nextInt();
                /*
                System.out.println("Digite o nome do Produto: ");
                 = entrada.nextLine();
                */
                        
                System.out.println("Digite o tipo de produto a ser inserido no inicio da fila: ");
                novoPROD.tipoDeProduto = (char)System.in.read();
                
                System.out.println("Digite o preço do produto a ser inserido: ");
                novoPROD.precoProd = entrada.nextFloat();               
                
                System.out.println("Digite o imposto do produto inserido: ");
                novoPROD.percentuaisImposto = entrada.nextFloat();
                
                if (inicioPROD == null)
                {
                    // a lista estava vazia e o elemento inserido será o primeiro e o último
                    inicioPROD = novoPROD;
                    fimPROD = novoPROD;
                    novoPROD.proxProd = null;                     
                }
                else
                {
                    /*a lista já contém elementos
                    e o novo elemento será inserido no início da lista*/
                    //aponta para o inicio da lista como proximo ex: elemento 2 prox <--- elemento 1.
                    novoPROD.proxProd = inicioPROD;
                    //"Ponteiro" para novo elemento no inicio da lista
                    inicioPROD = novoPROD;
                }
                
                System.out.println("Tipo de produto e imposto inserido no inicio da lista!!!");
            }
            
            if (op == 2)
            {
                PRODUTO novoPROD = new PRODUTO();
                
                Random generatorPRO = new Random();
                
                novoPROD.numProd = generatorPRO.nextInt();
                
                System.out.println("Digite o nome do Produto: ");
                novoPROD.nomeProd = entrada.nextLine();
                
                System.out.println("Digite o tipo de produto a ser inserido no inicio da fila: ");
                novoPROD.tipoDeProduto = (char)System.in.read();
                
                System.out.println("Digite o preço do produto a ser inserido: ");
                novoPROD.precoProd = entrada.nextFloat();               
                
                System.out.println("Digite o imposto do produto inserido: ");
                novoPROD.percentuaisImposto = entrada.nextFloat();
                
                
                if (inicioPROD == null)
                {
                    /*A lista estava vazia e o elemento inserido será o primeiro
                    e o último*/
                    inicioPROD = novoPROD;
                    fimPROD = novoPROD;
                    novoPROD.proxProd = null;
                }
                else
                {
                    /*a lista já contém elementos e o novo elemento será inserido
                     no fim da lista*/
                    //Armazena o cadastro para nova lista(proximo)
                    fimPROD.proxProd = novoPROD;
                    //"Ponteiro" para ultimo elemento.
                    fimPROD = novoPROD;
                    fimPROD.proxProd  = null;
                }
                System.out.println("Cadastro inserido no fim da lista!!!");
            }
            
            if (op == 3)
            {
                System.out.println("Digite o produto a ser consultado: ");
                consultaPROD = entrada.nextLine();
                
                if (inicioPROD == null)
                {
                    System.out.println("Lista de cadastro vazia!!!");
                }
                else
                {
                    /*A lista contém elementos e estes serão mostrados do início
                    ao fim*/
                    auxPROD = inicioPROD;
                    while (auxPROD != null) 
                    {
                        if (auxPROD.nomeProd.equals(consultaPROD))
                        {
                            
                            totalPRODIMP = (auxPROD.percentuaisImposto * auxPROD.precoProd) + auxPROD.precoProd;                            
                            auxPROD.proxProd = null;
                            auxPROD = auxPROD.proxProd;
                        }
                        else
                        {
                            auxPROD = auxPROD.proxProd;
                        }
                        
                    }
                    System.out.println("Nome do Produto:"+ auxPROD.nomeProd);
                    System.out.println("O valor do produto foi de R$"+ totalPRODIMP);
                }
            }
            
            if (op == 4)
            {
                if (inicioPROD == null)
                {
                    /* a lista está vazia*/
                    System.out.println("Lista vazia!!");
                }
                else
                {
                    /* a lista contém elementos e o elemento a ser removido deve
                    ser digitado*/
                    
                    System.out.println("\nDigite o produto a ser removido: ");
                    consultaPROD = entrada.nextLine();
                    
                    // todas as ocorrências da lista, iguais ao número digitado,
                    //serão removidas
                    auxPROD = inicioPROD;
                    anteriorPROD = null;
                    achou = 0;
                    
                    while (auxPROD != null)
                    {
                        if (auxPROD.nomeProd.equals(consultaPROD))
                        {
                            /* o número digitado foi encontrado na lista e será
                            removido*/
                            achou = achou + 1;
                            if (auxPROD == inicioPROD)
                            {
                                /*o número a ser removido é o primeiro da lista*/
                                inicioPROD = auxPROD.proxProd;
                                auxPROD = inicioPROD;
                            }
                            else 
                                if (auxPROD == fimPROD)
                                {
                                    /*o número a ser removido é o último da lista*/
                                    anteriorPROD.proxProd = null;
                                    fimPROD = anteriorPROD;
                                    auxPROD = null;                                                  
                                }
                                else
                                {
                                    /* o número a ser removido está no meio da lista*/
                                    anteriorPROD.proxProd = auxPROD.proxProd;
                                    auxPROD = auxPROD.proxProd;
                                }
                        }
                        else
                        {
                            anteriorPROD = auxPROD;
                            auxPROD = auxPROD.proxProd;
                        }
                    }
                    if (achou == 0)
                    {                                                                        
                        System.out.println("Produto não encontrado");
                    }
                    else
                        if (achou == 1)
                        {
                            System.out.println("Produto removido 1 vez");
                        }
                        else
                        {
                            System.out.println ("Produto removido "+achou+ " vezes");
                        }
                }
            }
     
            if (op == 5)
            {
                if (inicioPROD == null)
                {
                    /*a lista está vazia*/
                    System.out.println("Lista vazia");
                }
                else
                {
                    /* a lista será esvaziada*/
                    inicioPROD = null;
                    System.out.println("Lista esvaziada!!!");
                }                    
            }
        }
        while (op != 6);
    }
}
            
 

The use of this code is merely demonstrative and academic, as everybody can see it is not too organized. 

I hope to get some help with this problem :)

The problems is with the nextLine(); and posteriorly with pointers.

Regard,

Michael

Back to comp.lang.java.programmer | Previous | Next — Next in thread | Find similar | Unroll thread


Thread

Data Structure Michael Pablo <skypabloboy@gmail.com> - 2014-03-09 10:13 -0700
  Re: Data Structure markspace <markspace@nospam.nospam> - 2014-03-09 15:33 -0700
  Re: Data Structure Jeff Higgins <jeff@invalid.invalid> - 2014-03-09 23:45 -0400

csiph-web