Bom dia amigos estou começando a aprender java faz 1 mês mais ou menos e tenho um programa que meu professor pediu pra fazer ele é mais ou menos assim: Cadastrar professor e excluir professor o metodo para cadastar eu fiz mas o de excluir não estou conseguindo alguém pederia me ajudar.
importjavax.swing.JOptionPane;publicclassIniciarProfessor{privatestaticVectorvetor=newVector();publicstaticvoidmain(Stringargs[]){intcodPrf;Stringcont=null;StringnmProf=null;ProfessorprogProf=newProfessor();while(cont!="100"){StringOpcs=JOptionPane.showInputDialog(null,"Escolha o que você deseja fazer:\n \n 1- Cadastrar Professor \n"+" 2- Excluir Professor \n ","Opções",JOptionPane.YES_NO_CANCEL_OPTION);inta=Integer.parseInt(Opcs);if(a==1){StringNomeProf=JOptionPane.showInputDialog(null,"Digite o "+"Nome:","Cadastro",JOptionPane.QUESTION_MESSAGE);nmProf=NomeProf;StringCodProf=JOptionPane.showInputDialog(null,"Digite o "+"Código:","Cadastro",JOptionPane.QUESTION_MESSAGE);intcode=Integer.parseInt(CodProf);codPrf=code;JOptionPane.showMessageDialog(null,"O Cadastro foi concluido com sucesso!");}elseif(a==2){}// Tela que pede se deseja continuar ou nãoStringSair=JOptionPane.showInputDialog(null,"Deseja Continuar:\n[1] SIM\n[2] NÂO \n","Deseja Continuar",JOptionPane.PLAIN_MESSAGE);doublesaida=Integer.parseInt(Sair);if(saida==2)// Se for igual a 2 o programa finaliza{cont="100";}}}}
Não sei se entendi muito bem, mas vamos lá. Acho que o método InserirProfessor não deveria está na classe Professor, no lugar deste método vc poderia coloca o construtor da classe (e.g public Professor(int codiProf , String nmProf)), depois vc faz os gets e os sets da classe(opcional). Já na classe IniciarProfessor quando o usuário escolher para inserir vc adiciona uma nova instância de Professor ao Vector(eu acho q foi por isso q vc colocou no código), tendo como indice o código do professor. Quando o usuário quiser deletar ele simplesmente escolhe o código do professor e deleta do Vector. Creio eu que não precise colocar inserir,deletar,editar na classe Professor, esses métodos vc poderia colocar, se vc quisesse, dentro de uma outra classe que gerenciaria os seus eventos, mas isso é outra história, neste caso vc estaria usando o modelo de projeto baseado no padrão MVC.
ACho que uma solução semelhante a esta funcionaria…mas voce pode separar em mais classes para um melhor entendimento…
Qualquer coisa me manda um email dai eu te explico melhor
M
marcosbrandaoPJ
Soh mais um detalhe IC3MAN:
Cada um temum jeito de escrever código, mas é preferivel usar o padrão do java, que a maioria do pessoal usa. Isso pode facilitar bastante o entendimento do codigo:
Nome de classe Inicia com Letra maiúscula(MinhaClasse).
Nome de metodo inicia com letra minuscula(meuMetodo).
nome de variaveis inicia com letras minúsculas(minhaVariavel).
Nome de constantes com letras maiusculas(MINHA_CONSTANTE).
Se você usar este padrao, vai ser mais facil de entender o seu codigo e o codigo dos outros tbm.
M
marx_paynerPJ
Eu faria isso (código abaixo), pode até nao ser a melhor solucao, mas prefiro assim(Obs: os erros nao foram tratados). Utilizei alguns trechos do teu código.
publicclassProfessor{privateintcodProf;privateStringnomeProf;/** *Instancia uma nova classe com determinado código e nome *@param codProf- inteiro representando o código do professor *@param nomeProf- string representando o nome do professor */publicProfessor(intcodProf,StringnomeProf){this.codProf=codProf;this.nomeProf=nomeProf;}/** *Modifica o código do professor *@param codProf- inteiro representando o código do professor */publicvoidsetCodProf(intcodProf){this.codProf=codProf;}/** *Modifica o nome do professor *@param codProf- string representando o nome do professor */publicvoidsetNomeProf(StringnomeProf){this.nomeProf=nomeProf;}/** *Retorna o código do professor *return um inteiro representando o código do professor */publicintgetCodProf(){returnthis.codProf;}/** *Retorna o nome do professor *return uma String representando o nome do professor */publicStringgetNomeProf(){returnthis.nomeProf;}/** *Concatena e retorna os atributos do professor *return uma String concatenada com os atributos do professor */publicStringtoString(){return"Código do professor: "+this.codProf+"\nNome do Professor : "+this.nomeProf;}}
importjavax.swing.JOptionPane;publicclassIniciarProfessor{publicstaticvoidmain(Stringargs[]){TratamentoEventosProfessorteProfessor=newTratamentoEventosProfessor();Stringcont=null;while(cont!="100"){StringOpcs=JOptionPane.showInputDialog(null,"Escolha o que você deseja fazer:\n \n 1- Cadastrar Professor \n"+" 2- Excluir Professor \n ","Opções",JOptionPane.YES_NO_CANCEL_OPTION);inta=Integer.parseInt(Opcs);if(a==1){StringnomeProf=JOptionPane.showInputDialog(null,"Digite o "+"Nome:","Cadastro",JOptionPane.QUESTION_MESSAGE);StringcodProf=JOptionPane.showInputDialog(null,"Digite o "+"Código:","Cadastro",JOptionPane.QUESTION_MESSAGE);teProfessor.inserir(newProfessor(Integer.parseInt(codProf),nomeProf));JOptionPane.showMessageDialog(null,"O Cadastro foi concluido com sucesso!");}elseif(a==2){StringcodProf=JOptionPane.showInputDialog(null,"Digite o "+"Código:","Excluir",JOptionPane.QUESTION_MESSAGE);if(teProfessor.excluir(Integer.parseInt(codProf)))JOptionPane.showMessageDialog(null,"Opereção realizada com sucesso!");elseJOptionPane.showMessageDialog(null,"Erro!");}// Tela que pede se deseja continuar ou nãoStringSair=JOptionPane.showInputDialog(null,"Deseja Continuar:\n[1] SIM\n[2] NÂO \n","Deseja Continuar",JOptionPane.PLAIN_MESSAGE);doublesaida=Integer.parseInt(Sair);if(saida==2)// Se for igual a 2 o programa finaliza{cont="100";}}}}