Ajuda: programa de cadastro de funcionarios

Boa noite pessoal
sou novo aqui, tenhu pouca esperencia com o Java, tenhu uma trabalho da faculdade pra fazer
é um sistema de cadastro, que quarda as informações em vetores, e faze consulta por nome no vetor, pesso uma ajuda, obrigado.

[ CODE ]
import java.util.Scanner;
public class Princiapl {
public static void main(String[] args) {
int op;
int atual = 0;
String vfuncionario[]=new String[30];
String vcargo[]=new String[30];
String vendereco[]=new String[30];
String vmail[]=new String[30];
int vtelefone[]=new int[30];
int vcelular[]=new int[30];
int vmatricula[]=new int[30];
System.out.print("***** MENU *****");
System.out.print("[1] - Cadastro Funcionarios");
System.out.print("[2] - Consulta Funcionarios");
System.out.print("[3] - Sair do Sistema");
switch (op) {
case 1:
atual = cadastroFuncionarios(atual, vfuncionario, vcargo, vtelefone, vcelular, vmail, vendereco, vmatricula);
case 2 :
mostraDados(atual, vfuncionario, vcargo, vtelefone, vcelular, vmail, vendereco, vmatricula);
case 3 :
sair
}
public static int cadastroFuncionarios(int atual, String[]vfuncionario, String[]vcargo, int[]vtelefone, int[]vcelular, String[]vmail, String[]vendereco, int[]vmatricula){
for (int i=0 ;i<x; i++){
System.out.println(“cadastre o nome do Funcionario:”+(atual));
nome [i] = new Scanner(System.in).next();
System.out.println(“Cadastre o cargo:”+(atual));
vcargo [i] = new Scanner(System.in).next();
System.out.println(“Cadastre o telefone:”+(atual));
vtelefone [i] = new Scanner(System.in).nextInt();
System.out.println(“Cadastre o celular:”+(atual));
vcelular [i] = new Scanner(System.in).nextInt();
System.out.println(“Cadastre o E-mail:”+(atual));
vmail [i] = new Scanner(System.in).next();
System.out.println(“Cadastre o endereço:”+(atual));
vendereco [i] = new Scanner(System.in).next();
System.out.println(“Cadastre matricula:”+(atual));
vmatricula [i] = new Scanner(System.in).nextInt();
}
}
public static void mostraDados(int atual, String[]vfuncionario, String[]vcargo, int[]vtelefone, int[]vcelular, String[]vmail, String[]vendereco, int[]vmatricula){
String buscadenome;
System.out.println(“Digite o nome do cliente.”);
buscadenome = new Scanner(System.in).next();
boolean inesistente = true;
for (int i=0; i<x; i++){
if (buscadenome. equals (vfuncionario [atual])){
System.out.println(vfuncionario[i]);
System.out.println(vcargo [i]);
System.out.println(vtelefone [i]);
System.out.println(vcelular [i]);
System.out.println(vmail [i]);
System.out.println(vendereco [i]);
System.out.println(vmatricula [i]);
inesistente = false;
}
}
if (inesistente){
System.out.println(“Nome inexistente”);
}
}
[ / CODE ]

Seja mais especifico cara. Diga do que vc precisa, qual a sua dúvida?

Não adianta vc dizer qual o problema, diga sua dúvida, o q vc não consegue fazer para q possamos te ajudar.

[quote=jeroqueiroz]Seja mais especifico cara. Diga do que vc precisa, qual a sua dúvida?

Não adianta vc dizer qual o problema, diga sua dúvida, o q vc não consegue fazer para q possamos te ajudar.[/quote]

como falei, nao tenhu muita, esperencia com o java, com os comandos.
coloquei ele pra rodar, e ele ta dando alguns erros, mais nao sei como resolver
nao sei se é erro de logica ou do comandos

[quote=prego_prego][quote=jeroqueiroz]Seja mais especifico cara. Diga do que vc precisa, qual a sua dúvida?

Não adianta vc dizer qual o problema, diga sua dúvida, o q vc não consegue fazer para q possamos te ajudar.[/quote]

como falei, nao tenhu muita, esperencia com o java, com os comandos.
coloquei ele pra rodar, e ele ta dando alguns erros, mais nao sei como resolver
nao sei se é erro de logica ou do comandos[/quote]

  1. Edite seu post acima e coloque os códigos entre as tags [ CODE ] e [ / CODE ] (sem espaços), o pessoal vai te ajudar
  2. Qual erro está dando? Em geral o pessoal não gosta de depurar o programa.

ok? :smiley:

Estudar JAVA e POO.

As tags sao minusculas e sem espaço vc fez [ CODE ]. Retire os espaços antes dos colchetes, senao ele nao interpreta.

Eu não consegui visualizar onde vc inicializa a variável x. Vc também não está fazendo nenhum incremento nela, isso vira um loop infinito.

for (int i=0; i<x; i++)

Faça algo como

for (int i=0; i<20; i++)

Outro problema q eu percebi foi que vc está trabalhando com 7 vetores. Achei bem complicada a abordagem.Peço aos colegas que desculpem qualquer erro na codificação, foi feito meio nas pressas. Também estou no inicio dos estudos.

Fiz algo bem simplório pra ver se abre um pouco mais seus horizontes. Nesses casos, é bom usar Collections (um ArrayList para esse caso). Mas vamos tentar com arrays mesmo, pq a interface Colletctions é um assunto bem mais detalhado.

[code]
import java.util.Scanner;

public class Funcionario{
//criamos uma classe para seus funcionarios
private String nome;
private String cargo;
private String endereco;
private String email;
private String telefone;
private String celular;
private int matricula;

    //lembre-se de fazer todos os getters e setters

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

public static void main(String args[]){

int op;
    //declaramos um vetor que guardará 30 posições do tipo funcionário
   
Funcionario[] funcionarios = new Funcionario[30];
	
System.out.println("***** MENU *****"); 
System.out.println("[1] - Cadastro Funcionarios"); 
System.out.println("[2] - Consulta Funcionarios"); 
System.out.println("[3] - Sair do Sistema");
op=Integer.valueOf(new Scanner(System.in).next());

switch(op){
case 1: 
	cadastroFuncionarios(funcionarios); 
case 2: 
	mostraDados(funcionarios); 
case 3: 
	System.exit(0);
}

}
private static void cadastroFuncionarios(Funcionario[] funcionarios) {
for(int x=0;x<30;x++){
/*fazemos um laço contado e populamos o vetor com a entrada do teclado
* fiz como exemplo o nome, implemente para as demais propriedades;
*/
System.out.println(“Funcionário nº:”+x);
System.out.println("Nome: ");
//aqui instancia um novo Funcionario
funcionarios[x]=new Funcionario();

	funcionarios[x].setNome(new Scanner(System.in).next() );
            //incrementa o laço
	x++;
}

}
private static void mostraDados(Funcionario[] funcionarios) {

for(int x=0;x<30;x++){
	System.out.println("Nome: "+funcionarios[x].getNome());
            //agora vc pode pegar os dados anteriores com os getters.
}

}

}[/code]

rpz… tem uma serie de erros no seu programa…se for corrigir tenho q mudar quase todo o programa…
vou entao te dar uma dica como fazer…
vc só tera 2 metodos, um para cadastrar e outro para mostrar.
na classe vc declara todos os vetores e o indice e inicializa com zero (para que eles sejam global).
no metodo Cadastro, pode ser void, visto que vc só quer entrar com os valores, ai dentro desse metodo vc vai pedindo os dados e colocando no vetor na posição do indice, e lembre de incrementar o indice no final.
pronto, o metodo cadastro tá pronto.
no metodo Mostrar, pode ser void tb, vc apenas vai pedir o nome a ser pesquisado, depois disso vc faz um FOR (aquele x que vc tem no seu, eu n entendi.) percorendo do indice zero até vetorNome.length. e dentro desse for, vc faz um IF , testa se o nomePesuisar é igual com o do vetor, Se SIM, vc bota pra escrever todos od dados dos vetores daqele indice, e ainda dentro dese IF vc coloca a paalvra “return” para que ele saia dese metodo asism q encontrar.
e no final dese metodo (se ele xegou ao final é pq n tem o nome) vc manda escrever que não existe…

e no metodo main, vc faz o menu, xamando os metodos, o SEU menu apresenta erro, ele só sera executado uma vez.
o certo é vc colocar esse menu dentro de um do{ …}while()

vlw