Criando agenda de contatos em java!

Olá pessoal!
Estou aqui, porque preciso de ajuda sou iniciante na linguagem Java e meu professor me pediu para fazer uma agenda de contatos, só que não estou conseguindo, não sei como devo fazer, então eu fiz um pouco e nao sei se esta certo. O exercicio deve ler todos os dados de uma pessoa e armazena-la, podendo depois, sem fechar o programa, pesquisá-los por ex: Digite o nome: Fulano sobrenome, data de nascimento, tel, etc. Para pesquisar posso obter somente o nome ou o telefone e por ai vai, mas se eu digitar Fulano na pesquisa ele deverá mostrar os dados do Fulano. Só que não estou conseguindo fazer e não tenho ideias de como fazer!! O código não está terminado e está com varios problemas.
Aqui está o que eu fiz:

[/quote][quote]
[code] public class Principal {
public static void cont(String nomenclatura[]) {
System.out.printf("Digite o nome: ");
nomenclatura[0] = Keyboard.readString();
System.out.printf("Digite o Sobrenome: ");
nomenclatura[1] = Keyboard.readString();
System.out.printf("Digite a data de nascimento: ");
nomenclatura[2] = Keyboard.readString();
System.out.printf("Digite o endereço: ");
nomenclatura[3] = Keyboard.readString();
System.out.printf("Digite o bairro: ");
nomenclatura[4] = Keyboard.readString();
System.out.printf("Digite o numero: ");
nomenclatura[5] = Keyboard.readString();
int numero = Integer.parseInt(nomenclatura[5]);
System.out.printf("Digite o complemento: ");
nomenclatura[6] = Keyboard.readString();
System.out.printf("Digite o estado: ");
nomenclatura[7] = Keyboard.readString();
System.out.printf("Digite a cidade: ");
nomenclatura[8] = Keyboard.readString();
System.out.printf("Digite o CEP: ");
nomenclatura[9] = Keyboard.readString();
int cep = Integer.parseInt(nomenclatura[9]);
System.out.printf("Digite o EMAIL: ");
nomenclatura[10] = Keyboard.readString();
System.out.printf("Digite o telefone celular: ");
nomenclatura[11] = Keyboard.readString();
int tel_cel = Integer.parseInt(nomenclatura[11]);
System.out.printf("Digite o telefone residencial: ");
nomenclatura[12] = Keyboard.readString();
int tel_resi = Integer.parseInt(nomenclatura[12]);
System.out.printf("Digite o telefone de trabalho: ");
nomenclatura[13] = Keyboard.readString();
int tel_trab = Integer.parseInt(nomenclatura[13]);
}// fim void

public static void main(String[] args) {
	// TODO Auto-generated method stub
	Contato contato;
	contato = new Contato();
	String nomenclatura[] = new String[14];
	int i;
	for (i = 0; i < 2; i++) {
		cont(nomenclatura);
	}
	if (i >= 2) {
		System.out.println("Deseja adicionar outro contato? S/N: ");
		char agenda = Keyboard.readChar();
		switch (agenda) {
		case 's':
			cont(nomenclatura);
			break;
		case 'n':
			System.out.println();
			break;
		default:
			System.out.println("Voce digitou errado");
			break;
		}// fim switch
	}// fim if
	System.out.println("O que voce deseja fazer: ");
	System.out.println("1 - Incluir Contato");
	System.out.println("2 - Pesquisar Contato");
	System.out.println("3 - Sair");
	System.out.printf("Opcao desejada: ");
	char opcao = Keyboard.readChar();
	switch (opcao) {
	case '1':
		cont(nomenclatura);
		break;
	case '2':
		System.out.println("Pesquisar por:");
		System.out.println("1 - Nome");
		System.out.println("2 - Sobrenome");
		System.out.println("3 - Cidade");
		System.out.println("4 - Telefone celular");
		System.out.println("5 - Telefone residencial");
		System.out.println("6 - Telefone de trabalho");
		System.out.printf("Opcao desejada: ");
		String pesq = Keyboard.readString();
		switch (pesq) {
		case "1":
			System.out.printf("Digite o nome: ");
			String nome = Keyboard.readString();
			if (nome.equals(nomenclatura[0])){
				System.out.println(nome);
			}
			break;
		}// fim switch
		break;
	case '3':
		System.out.println("Voce encerrou o programa!");
		break;
	default:
		System.out.println("Opcao invalida");
		break;
	}
	System.out.println(nomenclatura);

}// fim main

}// fim class[/code][/quote]

Obrigado, aguardo respostas e a ajuda de vocês!!
Até mais!

Você poderia usar uma lista para cadastrar os dados, isso tornaria facilitaria muitos as coisas.
Usando o conceito de orientação a objetos, você poderia criar uma classe só com o nome, sobrenome, endereco, telefone, etc…

Para criar uma lista você pode fazer assim:

List<Agenda> agendaContatos = new ArrayList<Agenda>();

em seguida poderia adicionar os dados na lista assim:

agendaContatos.add(Obejto do tipo Agenda);

O método de pesquisa pode ser feito assim:

agendaContatos.contains(O que deseja pesquisar); 

ela irá retonar true caso exista, e false caso o contrário.

De uma olhada em Lists e Orientação a Objetos. Irá facilitar muito as coisas!

muuito Obrigado amigo! É que meu professor não mostrou e não ensinou nenhum desses comandos ai que você citou, olhei na internet vários tópicos de java com linguagem que eu desconheço e que o professor nao ensinou. Vou tentar fazer novamente. Então eu devo criar uma classe e colocar nela somente os dados do contato? Não é necessário usar um vetor ou algo assim?

A lista é como se fosse um vetor, porém ela não tem tamanho fixo.
Ela aumenta e diminui conforme você coloca ou retira
elementos dela.

Aconselho ler as apostilas de desenvolvimento orientado a objeto e a de algoritmos e estruturas de dados da caellum.

Irá te ajudar.

Obrigado!
Vocês poderiam me indicar tutoriais na internet? Se possível mandar o link. Obrigaado!

Ainda aguardo mais respostas!
Até mais!

Baixa de java e orientação a objetos e a de algoritmos e estrutura de dados

Por favor, evite dar destaque ao óbvio em seus títulos de tópico, como [Duvida], (Ajuuda), [Socorro] ou [Urgente]. Especialmente para soar como um apelo.

Por favor, evite dar destaque ao óbvio em seus títulos de tópico, como [Duvida], (Ajuuda), [Socorro] ou [Urgente]. Especialmente para soar como um apelo.