Poligno 1 Denunciar post Postado Junho 21, 2016 Eai galera tudo certo,estou com o seguinte problema na classe Interface,depois de ele entrar no switch a primeira vez ele fica repedindo o loop while mas depois da primeira vez ele parece estar pulando o switch,ele vai do "marcador1" direto para o "marcador 2" a baixo segue o programa com todas as classes. Main: package uni4;public class Uni4 { public static void main(String[] args) { Interface itf = new Interface(); itf.menu(); /*ListaDePessoas l = new ListaDePessoas(10); Aluno a1 = new Aluno(); l.IncluirPessoa(a1);*/ }} Interface: package uni4;import java.util.Scanner;public class Interface { Scanner scan = new Scanner(System.in); ListaDePessoas l = new ListaDePessoas(10); Prof pro1 = new Prof(); Aluno a1 = new Aluno(); Funcionario fun1= new Funcionario(); public void menu(){ System.out.println("Digite a opcao desejada"); this.printMenu(); int op=scan.nextInt(); while(op!=0){ System.out.println("marcador1"); switch(op){ case 1:{l.IncluirPessoa(a1);break;} case 2:{l.IncluirPessoa(pro1);break;} case 3:{l.IncluirPessoa(fun1);break;} case 4:{l.ProcuraPessoa(scan.nextLine());break;} case 5:{l.ProcuraPessoa(scan.nextLine());break;} } System.out.println("marcador 2"); System.out.println("Se desejar mais alguma coisa digite a opção correspondente,se não digite zero"); op=scan.nextInt(); System.out.println(op); } } public void printMenu(){ System.out.println("1 - adicionar aluno"); System.out.println("2 - adicionar professor"); System.out.println("3 - adicionar outro funcionario"); System.out.println("4 - procurar pessoa por nome"); System.out.println("5 - mostrar o numero de pessoas cadastradas"); System.out.println("0 - terminar"); }} Pessoa ListaDePessoas package uni4;import java.util.Scanner;public class ListaDePessoas extends Pessoa { Scanner scan = new Scanner(System.in); protected Pessoa[] array; public ListaDePessoas(int indice){ array=new Pessoa[indice]; } public void IncluirPessoa(Pessoa p){ int cont=0; for(int i=0;i<array.length;i++){ if(array==null){ //System.out.println(i); array=p; System.out.println("Digite o nome da pessoa"); array.setNome(scan.nextLine()); System.out.println("\n"); System.out.println("Digite o endereço da pessoa"); array.setEndereco(scan.nextLine()); System.out.println("\n"); System.out.println("Digite a idade"); array.setIdade(scan.nextInt()); } else cont++; break; } if(cont==array.length) System.out.println("O vetor já está cheio!"); } /*Método para procurar pessoas pelo nome*/ public Pessoa ProcuraPessoa(String nome){ int aux=0; for(int i=0;i<array.length;i++){ if(nome.equalsIgnoreCase(array.nome)){ System.out.println(nome+" está na posição "+i+" da lista"); //printar a classe e os outros dados do aluno-----------------------------------AQUI String var=array.getClass().getName(); String vet[]=var.split("\\W+"); System.out.println("Ele é um "+vet[vet.length-1]); //--------------------ESSA LINHA É CABREIRA aux =i; break; } else{ return null; } } return array[aux]; } /*Método que retorna o objeto presente no índice X*/ public Pessoa get(int indice){ if(array[indice]!=null) return array[indice]; else return null; } /*Método que retorna a quantidade de pessoas*/ public int quantidade(){ int cont=0; for(int i=0;i<array.length;i++){ if(array!=null) cont++; else break; } return cont; } /*//Método que procura a pessoa pelo curso que ela está relacionada (aluno ou professor) public ListaDePessoas pessoasDoCurso(String nomeDoCurso){ Pessoa[] ListaDePessoas = new Pessoa[100]; for(int i=0;i<ListaDePessoas.length;i++){ for(int j=0;j<ListaDePessoas.length;j++){ if(nomeDoCurso.equalsIgnoreCase(array[j].getCurso())){ //------ ERRO AQUI ListaDePessoas=array[j]; } break; } } return ListaDePessoas; }*/} Pessoa package uni4;abstract class Pessoa { /* Está classe possuiu apenas os dados básicos de uma pessoa*/ protected String nome; protected String endereco; protected int idade; public void setNome(String nome) { this.nome = nome; } public void setEndereco(String endereco) { this.endereco = endereco; } public void setIdade(int idade) { this.idade = idade; } public String getNome() { return nome; } public String getEndereco() { return endereco; } public int getIdade() { return idade; }} ListaDePessoas package uni4;import java.util.Scanner;public class ListaDePessoas extends Pessoa { Scanner scan = new Scanner(System.in); protected Pessoa[] array; public ListaDePessoas(int indice){ array=new Pessoa[indice]; } public void IncluirPessoa(Pessoa p){ int cont=0; for(int i=0;i<array.length;i++){ if(array==null){ //System.out.println(i); array=p; System.out.println("Digite o nome da pessoa"); array.setNome(scan.nextLine()); System.out.println("\n"); System.out.println("Digite o endereço da pessoa"); array.setEndereco(scan.nextLine()); System.out.println("\n"); System.out.println("Digite a idade"); array.setIdade(scan.nextInt()); } else cont++; break; } if(cont==array.length) System.out.println("O vetor já está cheio!"); } /*Método para procurar pessoas pelo nome*/ public Pessoa ProcuraPessoa(String nome){ int aux=0; for(int i=0;i<array.length;i++){ if(nome.equalsIgnoreCase(array.nome)){ System.out.println(nome+" está na posição "+i+" da lista"); //printar a classe e os outros dados do aluno-----------------------------------AQUI String var=array.getClass().getName(); String vet[]=var.split("\\W+"); System.out.println("Ele é um "+vet[vet.length-1]); //--------------------ESSA LINHA É CABREIRA aux =i; break; } else{ return null; } } return array[aux]; } /*Método que retorna o objeto presente no índice X*/ public Pessoa get(int indice){ if(array[indice]!=null) return array[indice]; else return null; } /*Método que retorna a quantidade de pessoas*/ public int quantidade(){ int cont=0; for(int i=0;i<array.length;i++){ if(array!=null) cont++; else break; } return cont; } /*//Método que procura a pessoa pelo curso que ela está relacionada (aluno ou professor) public ListaDePessoas pessoasDoCurso(String nomeDoCurso){ Pessoa[] ListaDePessoas = new Pessoa[100]; for(int i=0;i<ListaDePessoas.length;i++){ for(int j=0;j<ListaDePessoas.length;j++){ if(nomeDoCurso.equalsIgnoreCase(array[j].getCurso())){ //------ ERRO AQUI ListaDePessoas=array[j]; } break; } } return ListaDePessoas; }*/} Funcionario package uni4;public class Funcionario extends Pessoa { protected boolean presenca; /*Atributo que diz se o funcionario veio trabalhar*/ protected double salario; /*Atributo que recebe o valor salarial*/ public Funcionario(){} /*Construtor normal*/ public Funcionario(String nome,int idade){ /*Construtor Personalizado*/ this.nome=nome; this.idade=idade; } public void setPresenca(boolean presenca) { this.presenca = presenca; } /*é um 'get' da presença*/public boolean isPresenca() { return presenca; } /*Método para calcular o salário*/ public double CalcSalario(double s,double hr){ double aux=s*hr; this.salario=aux; return this.salario; }} Prof package uni4;public class Prof extends Funcionario { private String curso; //Curso em que o professor da aula private double ch; //carga horaria private double salario; public Prof(){} public Prof(String n,int id){ super.idade=id; super.nome=n; } public void setCurso(String curso) { this.curso = curso; } public void setCh(double ch) { this.ch = ch; } public String getCurso() { return curso; } public double getCh() { return ch; } public void setSalario(double salario) { System.out.println("Digite quanto o professor recebe por hora"); this.salario = salario; } public double getSalario() { return this.salario; }} Aluno package uni4;public class Aluno extends Pessoa{ private String curso; /*O curso que o aluno estuda*/ private int numMat; /*O numero da matrícula do aluno*/ public Aluno(){} /*Construtor personalizado*/ public Aluno(String n,int idade){ this.nome=n; this.idade=idade; } /*Getters e Seters dos atributos*/ /* public void setNome(String nome) { this.nome = nome; } public void setIdade(int idade) { this.idade = idade; }*/ public void setCurso(String curso) { this.curso = curso; } /*public String getNome() { return nome; } public int getIdade() { return idade; }*/ public String getCurso() { return curso; }} Se alguém puder me ajudar por favor,realmente n faço ideia do que fazer e já perdi umas boas horinhas empacado aqui,agradeço desde já Compartilhar este post Link para o post Compartilhar em outros sites
Poligno 1 Denunciar post Postado Junho 21, 2016 ATUALIZANDO: Achei o erro parcialmente galera,esta na classe ListaDePessoas no metodo incluirPessoa() , o break estava no lugar errado,porém agr dps que eu faço uma operação (de incluir um objeto na lista) na segunda tentativa de fazer o msm ele n le o nome ;s acho que é algo relacionado ao buffer. Compartilhar este post Link para o post Compartilhar em outros sites