Ir para conteúdo
Fórum Script Brasil
  • 0

mostrar dados do vetor?


tiaguito enes

Pergunta

Olá usuários do script brasil, sou novo novo por aqui, e estou começando aprender JAVA. :rolleyes:

Queria saber se alguém pode me ajudar?Desde já , obrigado;

Bom estou fazendo um programa de Locadora de Automoveis, onde eu tenho que mostrar os carros que estão disponiveis para serem locados e os não disponíveis, efetuar uma locação e uma devoulução de carros. O programa tem um banco de dados, e esse banco me da as opções de:

Inserir carros;Procurar Carros;Retirar Carros;

A parte de inserir carros eu já fiz, só o que não consigo é mostrar os carros que eu inseri no banco, já tentei de tudo e não consegui, ou seja não consigo mostrar na classe principal os dados do vetor, e sem mostrar os carros que eu inseri no banco não tem como dar a opção pro usuário(func) locar ou deslocar um carro.

Deêm uma olhada nos códigos:

o programa tem 3(três) classes:

  • Locadora.class;(classe principal)onde irei mostrar os dados do vetor)
  • Banco.Class;(onde os dados estao)
  • Carros;(gets and sets)

Código do Banco de dados do programa:

Banco.Class;


public class Banco{

    private static Carro[] pessoas;
    private static int indice=-1;


    public static String insereCarro(Carro carro){

        System.out.println(carro);
                
        if(Banco.indice<0)
        pessoas=new Carro[3];

        if(Banco.indice<(Banco.pessoas.length-1)){

            Banco.indice++;
            Banco.pessoas[indice]=carro;        
            return "INSERIDO!";    

            //RETURN ele para a execução e volta

        }//FECHA O IF


        else
            return "CHEIO!";

    }//FECHA O METODO PRINCIPAL    

    
    public static String procuraCarro(String nome){
        if(Banco.indice<0)
            return "VAZIO!";
        else{

            int i=0;

            while(i<=Banco.indice){
                if(nome.equals(Banco.pessoas[i].getNome()))
                    return Banco.pessoas[i].toString();
            else
                i++;

            }//fecha o while
                
        
            return "não ENCONTRADO!";

        }//fecha o else
    }//FECHA O METODO PRINCIPAL

    
    public static String retiraCarro(String nome){
        
        if(Banco.indice<0)
            return "VAZIO!";

        else{
            int i=0;

            while(i<=Banco.indice){
                if(nome.equals(Banco.pessoas[i].getNome()))
                    break;
                else
                    i++;
            }//fecha o while
                    
            if(i>Banco.indice)
                return "não ENCONTRADO!";
        
            else if(i==Banco.indice)
            
                Banco.pessoas[i]=null;

                else{

                    while(i<Banco.indice){
                        Banco.pessoas[i]=Banco.pessoas[i+1];
                    i++;

                    }//fecha o while
                }//fecha o else

            Banco.indice--;
            return "RETIRADO DO BANCO COM SUCESSO!";
        
        }//fecha o else

    }//FECHA O METODO PRINCIPAL

}//fecha a classe
Código da classe Carros.java (gets and sets):
Carros.java

public class Carro{

    public String nome;
    public String marca;
    public String placa;
    public String ano;
    public String valoralug;
    public String chasis;

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

    }


    public void setMarca(String marca){
         this.marca=marca;

    }
    public void setPlaca(String placa){
         this.placa=placa;

    }
    public void setAno(String ano){
         this.ano=ano;

    }
    public void setValoralug(String valoralug){
         this.valoralug=valoralug;

    }
    public void setChasis(String chasis){
         this.chasis=chasis;

    }



    public String getNome(){
     return nome;
   
    }

    public String getMarca(){
     return marca;
   
    }

    public String getPlaca(){
     return placa;
   
    }
    public String getAno(){
     return ano;
   
    }
    public String getValoralug(){
     return valoralug;
   
    }
    public String getChasis(){
     return chasis;
   
    }


    public String toString(){


        System.out.printf("\n\t%s\n",">>>>>>>>>>>Dados do novo carro que voce inseriu no banco:<<<<<<<<");

        return String.format("\n\t%s%s\n\t%s%s\n\t%s%s\n\t%s%s\n\t%s%s\n\t%s%s",
        "NOME do carro: ",
        this.getNome(),
        "marca do carro: ",
        this.getMarca(),
        "Placa do carro: ",
        this.getPlaca(),
        "ano do carro: ",
        this.getAno(),
        "VAlor do aluguel do carro: ",
        this.getValoralug(),

        "chasis do carro: ",
        this.getChasis());

    }//fecha o toString
}//fecha a classe carro
E finalmente a classe principal:LOCADORA.class; OBS.:Código inacabado.
Locadora.class;


import java.util.Scanner;//importa o scanner
import java.lang.String;



public class Locadora{
    public static int indice=-1;
    public static void main(String [] args){

    String nome=null;
      String marca=null;
        String placa=null;
        String ano=null;
        String valoralug=null;
       String chasis=null;

    int escolha=0;

    Scanner input=new Scanner(System.in);//cria um scanner para receber o caracte do teclado
    Scanner input1=new Scanner(System.in);
    Scanner input2=new Scanner(System.in);

        while(escolha!=8){

            System.out.printf("\n%s\n\n","<<<MENU INICIAL>>>");
            System.out.printf("\n%s\n\n","<<<|W|E|L|C|O|M|E|>>>");
    

            System.out.printf("\n\t%s\n","[1]Inserir carros NA lista carros disponiveis");
            System.out.printf("\n\t%s\n","[2]CARROS DISPONIVEIS PARA SEREM LOCADOS");
            System.out.printf("\n\t%s\n","[3]CARROS não DISPONÍVES QUE ESTAO LOCADOS");
            System.out.printf("\n\t%s\n","[4]EFETUAR LOCACAO");
            System.out.printf("\n\t%s\n","[5]EFETUAR DEVOLUCAO");
            System.out.printf("\n\t%s\n","[6]PESQUISAR CARRO");
            System.out.printf("\n\t%s\n","[7]RETIRAR CARRO");
            System.out.printf("\n\t%s\n","[8]SAIR DO PROGRAMA");
            System.out.printf("\n\t%s\n","ESCOLHA UMA OPCAO DO MENU E DIGITE: ");
            escolha=input.nextInt();


            if(escolha==1){

                
                System.out.printf("\n\t%s\n","OPCAO Inserir carros");
    
                System.out.printf("\n\t%s\n","DIGITE O NOME/MODELO DO CARRO:");
                nome=input1.nextLine();

                System.out.printf("\n\t%s\n","DIGITE A MARCA DO CARRO:");
                marca=input1.nextLine();

                System.out.printf("\n\t%s\n","DIGITE O NUMERO DA PLACA DO CARRO:");
                placa=input1.nextLine();

                System.out.printf("\n\t%s\n","DIGITE O ANO DE FABRICACAO DO CARRO:");
                ano=input1.nextLine();

                System.out.printf("\n\t%s\n","DIGITE O VALOR DO ALUGUEL DO CARRO:");
                valoralug=input1.nextLine();


                System.out.printf("\n\t%s\n","DIGITE O NUMERO DO CHASIS DO CARRO:");
                chasis=input1.nextLine();

                Carro carro=new Carro();
                carro.setNome(nome);
                carro.setMarca(marca);    
                carro.setPlaca(placa);  
                carro.setAno(ano);  
                carro.setValoralug(valoralug);  
                carro.setChasis(chasis);  

            //System.out.println(carro.toString());
                
                System.out.printf("\n\t\t\t\t\n\t\t\t");
                System.out.println(Banco.insereCarro(carro));

            }//fecha o if 1



            if(escolha==2){

//parte do programa para mostrar os dados do vetor que está na classe banco
                if(pessoas[0] == null){
                    System.out.printf("\n\n\t\t\t\t%s\n\n","não há PESSOAS CADASTRADAS");
                }
                if(pessoas[0] != null){
                    System.out.printf("\n\t\t\t\t\t%s\n","OS DADOS CADASTRADOS são:");
                        for(int i=0; i<pessoas.length; i++){
                            if(pessoas[i] != null){
                                System.out.printf(Banco.pessoas[i].toString());

                            }
                        }
                }
                       
            }//fecha o if 2

            if(escolha==6){

                System.out.printf("\n\t\t\t%S","PESQUISAR CARRO NO BANCO!!");

                System.out.printf("\n\t%s","Digite o nome que voce deseja procurar:");

                Scanner c=new Scanner(System.in);
                nome=c.nextLine();
                System.out.printf("\n\t\t\t\t\n\t\t\t");
                System.out.println(Banco.procuraCarro(nome));

            }//fecha o if 6

            if(escolha==7){
                System.out.printf("\n\t\t\t%S","RETIRAR CARRO DO BANCO!!");


                System.out.printf("\n\t%s","Digite o nome do carro que voce deseja apagar:");
                Scanner b=new Scanner(System.in);
                nome=b.nextLine();
                System.out.printf("\n\t\t\t\t\n\t\t\t");
                System.out.println(Banco.retiraCarro(nome));
    
            }//fecha o if






        }//FECHA O WHILE do menu
    }//fecha o metodo principal
}//FECHA A CLASSE locadora
Código para que seria para mostrar os dados na classe principal mais que da erro
if(pessoas[0] == null){
                    System.out.printf("\n\n\t\t\t\t%s\n\n","não há PESSOAS CADASTRADAS");
                }
                if(pessoas[0] != null){
                    System.out.printf("\n\t\t\t\t\t%s\n","OS DADOS CADASTRADOS são:");
                        for(int i=0; i<pessoas.length; i++){
                            if(pessoas[i] != null){
                                System.out.printf(Banco.pessoas[i].toString());

                            }
                        }
                }

Queria saber se o erro está no codigo acima, ou em outra classe???

Agradeço desde já.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Sugestões:

Em Locadora.java, onde você cria um menu, é preferível usar um 'switch':

while(escolha!=8){

            System.out.printf("\n%s\n\n","<<<MENU INICIAL>>>");
            System.out.printf("\n%s\n\n","<<<|W|E|L|C|O|M|E|>>>");


            System.out.printf("\n\t%s\n","[1]Inserir carros NA lista carros disponiveis");
            System.out.printf("\n\t%s\n","[2]CARROS DISPONIVEIS PARA SEREM LOCADOS");
            System.out.printf("\n\t%s\n","[3]CARROS não DISPONÍVES QUE ESTAO LOCADOS");
            System.out.printf("\n\t%s\n","[4]EFETUAR LOCACAO");
            System.out.printf("\n\t%s\n","[5]EFETUAR DEVOLUCAO");
            System.out.printf("\n\t%s\n","[6]PESQUISAR CARRO");
            System.out.printf("\n\t%s\n","[7]RETIRAR CARRO");
            System.out.printf("\n\t%s\n","[8]SAIR DO PROGRAMA");
            System.out.printf("\n\t%s\n","ESCOLHA UMA OPCAO DO MENU E DIGITE: ");
            escolha=input.nextInt();

                                                switch(escolha){
            case 1:

                System.out.printf("\n\t%s\n","OPCAO Inserir carros");

                System.out.printf("\n\t%s\n","DIGITE O NOME/MODELO DO CARRO:");
                nome=input1.nextLine();

                System.out.printf("\n\t%s\n","DIGITE A MARCA DO CARRO:");
                marca=input1.nextLine();

                System.out.printf("\n\t%s\n","DIGITE O NUMERO DA PLACA DO CARRO:");
                placa=input1.nextLine();

                System.out.printf("\n\t%s\n","DIGITE O ANO DE FABRICACAO DO CARRO:");
                ano=input1.nextLine();

                System.out.printf("\n\t%s\n","DIGITE O VALOR DO ALUGUEL DO CARRO:");
                valoralug=input1.nextLine();


                System.out.printf("\n\t%s\n","DIGITE O NUMERO DO CHASIS DO CARRO:");
                chasis=input1.nextLine();

                Carro carro=new Carro();
                carro.setNome(nome);
                carro.setMarca(marca);    
                carro.setPlaca(placa);  
                carro.setAno(ano);  
                carro.setValoralug(valoralug);  
                carro.setChasis(chasis);  

                //System.out.println(carro.toString());

                System.out.printf("\n\t\t\t\t\n\t\t\t");
                System.out.println(Banco.insereCarro(carro));

                            break;



            case 2:

//                parte do programa para mostrar os dados do vetor que está na classe banco
                if(pessoas[0] == null){
                    System.out.printf("\n\n\t\t\t\t%s\n\n","não há PESSOAS CADASTRADAS");
                }
                if(pessoas[0] != null){
                    System.out.printf("\n\t\t\t\t\t%s\n","OS DADOS CADASTRADOS são:");
                    for(int i=0; i<pessoas.length; i++){
                        if(pessoas[i] != null){
                            System.out.printf(Banco.pessoas[i].toString());

                        }
                    }
                }

            break;

            case 6:

                System.out.printf("\n\t\t\t%S","PESQUISAR CARRO NO BANCO!!");

                System.out.printf("\n\t%s","Digite o nome que voce deseja procurar:");

                Scanner c=new Scanner(System.in);
                nome=c.nextLine();
                System.out.printf("\n\t\t\t\t\n\t\t\t");
                System.out.println(Banco.procuraCarro(nome));

            break;

            case 7:
                System.out.printf("\n\t\t\t%S","RETIRAR CARRO DO BANCO!!");


                System.out.printf("\n\t%s","Digite o nome do carro que voce deseja apagar:");
                Scanner b=new Scanner(System.in);
                nome=b.nextLine();
                System.out.printf("\n\t\t\t\t\n\t\t\t");
                System.out.println(Banco.retiraCarro(nome));

            break;


                                                default:
                                                               System.out.println("Opção inválida!");
                                                break;



        }//FECHA O WHILE do menu
Agora, indo para seu problema: você declara o vetor 'pessoas' na classe Banco, mas a classe Locadora não enxerga esse vetor. Ou seja, você deve executar a verificação que você quer fazer criando um método em Banco. Crie um método 'void' em banco com os comandos de verificação adequados e na classe Locadora, na opção 2, invoque o método criado. Ou seja, em Banco digite:
public static void verificacao() {
        if(pessoas[0] == null){
            System.out.printf("\n\n\t\t\t\t%s\n\n","não há PESSOAS CADASTRADAS");
        }
        if(pessoas[0] != null){
            System.out.printf("\n\t\t\t\t\t%s\n","OS DADOS CADASTRADOS são:");
            for(int i=0; i<pessoas.length; i++){
                if(pessoas[i] != null){
                    System.out.printf(Banco.pessoas[i].toString());

                }
            }
        }
    }
E em Locadora, na opção 2 digite:
Banco.verificacao();

Tomara que isso resolva seu problema. Boa sorte!

Espero ter ajudado,

Marco Biscaro

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...