Projeto Java - Faculdade

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! :grin:

Lança alguma exceção?

Qual é o erro?