Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Poligno

Programa parece estar 'pulando' uma parte do código.

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.