Olá pessoal. Bom estar entre vocês, mesmo não sabendo quase nada de JAVA…
Então… Estou fazendo um curso técnico em Informática, e meu professor me pediu para fazer um programa que se resume nisso:
"Programa para cadastro de pessoas.
O primeiro passo será criar a classe ?Pessoa?. Essa classe deve ter 4 atributos: nome, rg, telefone e email. Além disso, essa classe deve ter um método imprimirDados que imprimirá na tela todos os dados da pessoa (nome, rg, telefone e email). Criada a classe ?Pessoa? vamos criar nossa classe principal do sistema de cadastro. Essa classe terá, além do método main, uma lista de pessoas que iniciará vazia. O programa entrará em um laço que exibirá as seguintes opções para o usuário:
1 - para criar uma nova pessoa;
2 - para exibir os nomes de todas as pessoas cadastradas;
3 - para consultar os dados de uma pessoa;
4 - para excluir uma pessoa.
Se o usuário escolher:
A opção 1, o sistema deve instanciar uma nova pessoa, solicitar seus dados atribuindo os valores informados aos respectivos atributos e inserir a nova pessoa à lista de pessoas.
A opção 2, o sistema deve exibir os nomes de todas as pessoas cadastradas.
A opção 3, o sistema deve solicitar o nome da pessoa a ser consultada. Informado o nome, o sistema deve localizar essa pessoa na lista e exibir na tela todos seus dados.
A opção 4, o sistema deve solicitar a digitação do nome da pessoa a ser excluída, localizar essa pessoa e excluí-la da lista de pessoas."
Eis o que fiz:
[quote]package cadastro;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
public class Cadastro {
public static void main(String[] args) {
ArrayList lista=new ArrayList();
Pessoa p=new Pessoa();//instanciando o objeto
Scanner ler=new Scanner(System.in);
lista.add(ler);
String recebe = null;
int opcao;
int numCadastro=0, proxima = 1, num = 0;
do{
System.out.println("Digite:");
System.out.println(" 1 - Criar Nova pessoa");
System.out.println(" 2 - Exibir pessoas cadastradas");
System.out.println(" 3 - Consultar dados de uma pessoa");
System.out.println(" 4 - Excluir pessoa");
System.out.println(" Outro número para encerrar");
opcao = ler.nextInt();
if (opcao==1){
System.out.println("Digite um nome: ");
p.nome=ler.nextLine();
System.out.println("Informe a Identidade: ");
p.rg= ler.nextInt();
System.out.println("Informe o telefone: ");
p.telefone= ler.nextInt();
System.out.println("Insira o e-mail: ");
p.email= ler.nextLine();
System.out.println("---------------------------------------");
System.out.println("Cadastro criado com Sucesso. Numero: "+numCadastro);
System.out.printf("---------------------------------------");
lista.add(p);
proxima++;
} else if (opcao == 2) {
for(int i=0; i<lista.size();i++){
recebe +="nome: "+lista.get(i)+ "\n";
}
}else if (opcao == 3) {
Iterator it= lista.iterator();
while(it.hasNext()){
p= (Pessoa)it.next();
System.out.println("Nome: "+p.imprimirDados);
}
}else if(opcao==4){
String nome=("Digite o nome que deseja excluir:");
lista.remove(p.nome);
}
}while(opcao >=1 && opcao <=4);
}
private static Pessoa localizarPessoa(ArrayList lista, int numCadastro) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}[/quote]
Fiz também uma classe "Pessoa":
[quote]package cadastro;
public class Pessoa {
String nome, email;
double rg;
int telefone;
String imprimirDados;
public void imprimirDados(){
System.out.println("Nome: "+this.nome);
System.out.println("Identidade: "+this.rg);
System.out.println("Telefone: "+this.telefone);
System.out.println("E-mail: "+this.email);
}
}
[/quote]
O problema é que na hora da execução, não consigo passar dos dois primeiros itens pra cadastro, eles estão aparecendo juntos.
Antes eu até consegui e deu um erro, estava até planejando consertar o erro com o try, mas ele nem chega até lá mais.
[color=red]Alguém pode me dar uma luz…e se possivel ver se tem mais algum erro?[/color]