Estou fazendo este programinha de cadastros, mas não sei como implementar o ALTERAR no case 4, alguem poderia me ajudar?
[code]import corejava.;
import java.util.ArrayList;
import java.io.;
public class Principal
{ public static void main (String[] args)
{
//ArrayList listaDePessoas = new ArrayList(10);
//ArrayList listaDeEscolas = new ArrayList(10);
ArrayList<Pessoa> listaDePessoas = null;
ArrayList<Escola> listaDeEscolas = null;
String nome;
//double valorDia, valorMes;
String turno;
int qtdSemanal, resposta, qtdAula;
//int numDias, resposta;
boolean achou;
Pessoa umaPessoa = null;
Escola umaEscola = null;
try
{ ObjectInputStream in = new ObjectInputStream
(new FileInputStream("dados.dat"));
listaDePessoas = (ArrayList<Pessoa>)in.readObject();
listaDeEscolas = (ArrayList<Escola>)in.readObject();
Pessoa.setContador(((Integer)in.readObject()).intValue());
Escola.setContador(((Integer)in.readObject()).intValue());
in.close();
}
catch(FileNotFoundException e) // nao encontrou o arquivo
{ listaDeEscolas = new ArrayList<Escola>(10);
listaDePessoas = new ArrayList<Pessoa>(10);
}
catch(IOException e) // erro no disco
{ e.printStackTrace();
System.exit(2);
}
catch(ClassNotFoundException e) // nao encontrou a classe
{ e.printStackTrace();
System.exit(3);
}
boolean continua = true;
while (continua)
{ System.out.println('\n' + "O que você deseja fazer?");
System.out.println('\n' + "1. Cadastrar");
System.out.println("2. Remover");
System.out.println("3. Listar");
System.out.println("4. Alterar");
System.out.println("5. Sair");
int opcao = Console1.readInt('\n' + "Digite um número entre 1 e 4:");
switch (opcao)
{ case 1:
{
System.out.println('\n' + "1. Escola");
System.out.println("2. Pessoa");
opcao = Console1.readInt('\n' + "Digite um número entre 1 e 2:");
nome = Console1.readLine('\n' + "Digite o nome: ");
if (opcao == 1)
{ umaEscola = new Escola(nome);
listaDeEscolas.add(umaEscola);
System.out.println('\n' + "Escola cadastrado com sucesso!");
}
else
{
achou = false;
resposta = Console1.readInt('\n' + "Digite o número da Escola:");
for (int i = 0; i < listaDeEscolas.size(); i++)
{ umaEscola = listaDeEscolas.get(i);
if (resposta == umaEscola.getNumero())
{ achou = true;
break;
}
}
if (!achou)
{ umaEscola = null;
System.out.println('\n' + "Escola Inexistente!");
}
System.out.println('\n' + "1. Aluno");
System.out.println("2. Professor");
opcao = Console1.readInt('\n' + "Digite um número entre 1 e 2:");
if (opcao == 1)
{ qtdAula = Console1.readInt('\n' + "Digite a qtd. Horas Aulas: ");
turno = Console1.readLine('\n' + "Digite o turno(diurno, vespertino ou noturno): ");
umaPessoa = new Aluno(nome,turno,qtdAula,umaEscola);
}
else
{ qtdSemanal = Console1.readInt('\n' + "Digite quantos dias trabalhados na semana: ");
qtdAula = Console1.readInt('\n' + "Digite quantas horas por dia: ");
umaPessoa = new Professor(nome, qtdSemanal, qtdAula, umaEscola);
}
listaDePessoas.add(umaPessoa);
System.out.println('\n' + "Pessoa cadastrada com sucesso!");
}
break;
}
case 2:
{
System.out.println('\n' + "1. Escola");
System.out.println("2. Pessoa");
opcao = Console1.readInt('\n' + "Digite um número entre 1 e 2:");
resposta = Console1.readInt('\n' + "Digite o número que você deseja remover: ");
achou = false;
int x;
if(opcao == 1)
{
for (x = 0; x < listaDeEscolas.size(); x++)
{ umaEscola = listaDeEscolas.get(x);
if (resposta == umaEscola.getNumero())
{ achou = true;
break;
}
}
if (achou)
{ achou = false;
for (int i = 0; i < listaDePessoas.size(); i++)
{ umaPessoa = listaDePessoas.get(i);
if (umaPessoa.getEscola() != null)
{
if (resposta == umaPessoa.getEscola().getNumero())
{ achou = true;
}
}
}
if (achou)
{ System.out.println('\n' + "Escola sendo utilizada!");
}
else
{ listaDeEscolas.remove(x);
System.out.println('\n' + "Escola removida com sucesso!");
}
}
else
{ System.out.println('\n' + "Escola não encontrada!");
}
}
else
{ int i;
for (i = 0; i < listaDePessoas.size(); i++)
{ umaPessoa = listaDePessoas.get(i);
if (resposta == umaPessoa.getNumero())
{ achou = true;
break;
}
}
if (achou)
{ listaDePessoas.remove(i);
System.out.println('\n' + "Pessoa removida com sucesso!");
}
else
{ System.out.println('\n' + "Pessoa não encontrado!");
}
}
break;
}
case 3:
{
if (listaDeEscolas.isEmpty())
{
System.out.println('\n' + "Não há Escolas na lista.");
}
else
{ System.out.println("");
System.out.println('\n' + "Lista de Escolas");
for (int i = 0; i < listaDeEscolas.size(); i++)
{ umaEscola = listaDeEscolas.get(i);
System.out.println ("Numero = " + umaEscola.getNumero() +
" Nome = " + umaEscola.getNome());
}
}
if (listaDePessoas.isEmpty())
{
System.out.println('\n' + "Não há pessoas na lista.");
}
else
{ System.out.println("");
System.out.println('\n' + "Lista de Pessoas");
for (int i = 0; i < listaDePessoas.size(); i++)
{ umaPessoa = listaDePessoas.get(i);
/* if(umEmpregado instanceof EmpregadoDiarista)
{ System.out.println ("Empregado Diarista");
}
else
{ System.out.println ("Empregado Mensalista");
} */
System.out.println ("Numero = " + umaPessoa.getNumero() +
" Nome = " + umaPessoa.getNome()+
" Qtd. Horas = " + umaPessoa.gerarCargaHoraria());
if (umaPessoa.getEscola() != null)
{
System.out.println ("Escola = " + umaPessoa.getEscola().getNome());
}
}
}
break;
}
case 4:
????????????????????
}
break;
}
case 5:
String respSalvar = Console1.readLine('\n' + "Deseja salvar as alterações? (s/n) ");
if (respSalvar.equals("s"))
{ try // o compilador exige pois ao escrever no disco tem grande chance de dar erro
{ // ou entao propague o erro
ObjectOutputStream out = new ObjectOutputStream
(new FileOutputStream("dados.dat"));
out.writeObject(listaDeEscolas); // serializou o objeto
out.writeObject(listaDePessoas); // serializou o objeto
out.writeObject(new Integer (Escola.getContador())); //serializou a variavel de classe
out.writeObject(new Integer (Pessoa.getContador())); //serializou a variavel de classe
out.close(); // Integer porque contador é tipo primitivo e estamos gravando objetos
}
catch(FileNotFoundException e)
{ e.printStackTrace();
System.exit(1);
}
catch(IOException e) //nao pode inverter os catch porque FileNotFoundException estende IOException
{ e.printStackTrace();
System.exit(2);
}
}
else
{ System.out.println("Os dados nao foram salvos!");
}
continua = false;
break;
default:
System.out.println('\n' + "Opção inválida!");
}
}
}
}
[/code]