Olá!
Alguém estaria interessado em ajudar um pobre iniciante em Java, fazendo o projeto final da disciplina dele? Posso mandar a especificação completa do mesmo. Tem q ficar pronto em 2 semanas!!!
Senão, me ajudem a saber porque o método validaCodigo não funciona corretamente?
import java.util.Scanner;
import java.util.Vector;
public class Hospital {
public static void main(String[] args) {
Scanner ler = new Scanner (System.in);
Vector vetor = new Vector();
Integer opc;
do{
System.out.println("Digite a opção:\n1 Cadastrar\n2 Alterar\n0 Sair");
opc = ler.nextInt();
if(opc==1)
vetor = cadastraArea();
if(opc==2)
alteraArea(vetor);
}while(opc!=0);
}
public static Vector cadastraArea(){
Scanner ler = new Scanner(System.in);
Integer codigo, opcao;
String nome, descricao;
Vector vetorArea = new Vector();
do{
Area area = new Area();
System.out.println("Digite o código da área: ");
codigo = validaCodigo(vetorArea);
area.setCodigo(codigo);
System.out.println("Digite o nome da área de código " + codigo + ": ");
nome = validaNome(vetorArea);
area.setNome(nome);
System.out.println("Digite uma descrição para " + nome + ": ");
descricao = validaDescricao(vetorArea);
area.setDescricao(descricao);
vetorArea.add(area);
System.out.println("Deseja cadastrar mais uma área? 1- Sim 2- Não");
opcao = ler.nextInt();
}while(opcao==1);
return vetorArea;
}
public static void alteraArea(Vector vt){
Scanner ler = new Scanner (System.in);
Integer opcao, codArea;
String novoNome;
System.out.println ("O que deseja alterar? 1- Nome 2- Descrição");
opcao = ler.nextInt();
switch(opcao){
case 1:{
System.out.println("Digite o código da área que deseja alterar: ");
codArea = ler.nextInt();
ler.nextLine();
for (int aux=0; aux<vt.size(); aux++){
Area areas = (Area) vt.get(aux);
if(areas.getCodigo() == codArea){
System.out.println ("Area: " + areas.getNome());
System.out.println ("Descrição: " + areas.getDescricao());
System.out.println ("Digite o novo nome: ");
novoNome = ler.nextLine();
areas.setNome(novoNome);
vt.add(areas);
break;
}
}
}
}
}
public static Integer validaCodigo(Vector vtArea){
Scanner ler = new Scanner (System.in);
Integer cod = ler.nextInt();
for (int aux=0; aux<vtArea.size(); aux++){
Area areas = (Area) vtArea.get(aux);
while(cod == areas.getCodigo()){
System.out.println("Este código já existe. Escolha outro: ");
cod = ler.nextInt();
}
}
return cod;
}
public static String validaNome(Vector vtArea){
Scanner ler = new Scanner (System.in);
String nom = ler.nextLine();
for (int aux=0; aux<vtArea.size(); aux++){
Area areas = (Area) vtArea.get(aux);
while(nom.equalsIgnoreCase(areas.getNome())){
System.out.println("Inválido. Digite novamente: ");
nom = ler.nextLine();
}
}
return nom;
}
public static String validaDescricao(Vector vtArea){
Scanner ler = new Scanner (System.in);
String descr = ler.nextLine();
return descr;
}
}
public class Area {
private Integer codigo;
private String nome, descricao;
public void setCodigo(Integer codigo) {
this.codigo = codigo;
}
public void setNome(String nome) {
this.nome = nome;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public String getNome() {
return nome;
}
public Integer getCodigo() {
return codigo;
}
public String getDescricao() {
return descricao;
}
}
Obrigado! 