Erros para estanciar vetor, classe mais e while

Estou terminando um trabalho de faculdade para amanhã e sou bem iniciante em Java. Ele está apresentando alguns erros e não estou sabendo como instanciar meu vetor(deixei como estava por último) e também entender qual o erro apresentando laço (while), no fechamento da classe principal. Se alguém puder me ajudar, já fiz várias tentativas, mas não estou conseguindo resolver. Como está com erro, não sei se tem mais problemas, pois não tive como testar, mas a princípio são esses. Desde já, muito obrigada.

Enunciado do trabalho:
Faça um programa java para criar um cadastro de funcionários. Solicite ao usuário o número de funcionários da empresa, para dimensionar os vetores. Exiba um menu com as seguintes opções: 1- CADASTRAR FUNCIONÁRIO 2- CONSULTAR FUNCIONÁRIO 3- LISTAR TODOS FUNCIONÁRIOS 4- LISTAR SOMENTE FUNCIONÁRIOS ATIVOS
5- LISTAR FUNCIONÁRIOS EM ORDEM DE IDADE CRESCENTE 10-SAIR

  • O cadastro de funcionários deve conter as seguintes informações:
    NOME IDADE SITUAÇÃO (ativo/ inativo)
    *As listas devem exibir sempre todas as informações do funcionário.

    //Classe Funcionário:

    import java.util.Arrays;

    public class Funcionarios {

      private String nome;
      private int idade;
      private String situacao;
      private int quantidade[];
      
      public Funcionarios() {
      	
      }
      
      @Override
      public String toString() {
      	return "Funcionarios [quantidade=" + Arrays.toString(quantidade) + "]";
      }
      
      public Funcionarios(String nome, int idade, String situacao){
      		this.nome=nome;
      		this.idade=idade;
      		this.situacao=situacao;
      }
    
      public void setNome(String nome){
      		this.nome = nome;
      }
      
      public void setIdade(int idade){
      		this.idade = idade;
      }
      
      public void setSituacao(String situacao){
      		this.situacao = situacao;
      }
    
      public String getNome(){
      		return nome.toUpperCase();
      }
      
      public int getIdade(){
      		return idade;
      }
      	
      public String getSituacao(){
      		return situacao.toUpperCase();
      }
    

    }

    //Classe Menu:

      import java.util.ArrayList;
      import java.util.Comparator;
      import java.util.List;
      import java.util.stream.Collectors;
    
      public class Menu{
      		
      	private List<Funcionarios> listaF = new ArrayList<>();
      	
      	
      	public Menu() {
      		
      	}
      	
      	public Menu(List<Funcionarios> listaF){
      		this.listaF=listaF;
      	}
    
      	public void addFuncionario(String nome, int idade, String situacao){
      		Funcionarios f = new Funcionarios(nome, idade, situacao);
      		listaF.add(f);
      	}
      	public void addFunc(Funcionarios f){
      		listaF.add(f);
      	}
    
      	public void consultar(String nome){
      		for(int i = 0; i< listaF.size(); i++){
      			if(listaF.get(i).getNome().equalsIgnoreCase(nome)){
      				System.out.println("Nome: "+listaF.get(i).getNome());
      				System.out.println("Idade: "+listaF.get(i).getIdade());
      				System.out.println("Situacao: "+listaF.get(i).getSituacao());
      			}
      		}
      	}
      	public void consulta(Menu listagem){
      		listaF.get(0);
      	}
    
      	public void listaCompleta(){
      		if(listaF != null){
      			for(int i = 0; i< listaF.size(); i++){
      				System.out.println("Nome: "+listaF.get(i).getNome());
      				System.out.println("Idade: "+listaF.get(i).getIdade());
      				System.out.println("Situacao: "+listaF.get(i).getSituacao());
      			}
      		}else{
      			System.out.println("Banco de dados vazio, necessário cadastrar funcionários");
      		}
      	}
    
      	public void listaAtivos(){
      		for(int i = 0; i< listaF.size(); i++){
      			if(listaF.get(i).getSituacao().equalsIgnoreCase("ativo")){
      				System.out.println("Nome: "+listaF.get(i).getNome());
      				System.out.println("Idade: "+listaF.get(i).getIdade());
      				System.out.println("Situacao: "+listaF.get(i).getSituacao());
      			}
      		}
      	}
    
      	public void listaPorIdades(){
      		List<Funcionarios> listaPorIdade = listaF.stream()
      			    .sorted(Comparator.comparing(Funcionarios::getIdade))
      			    .collect(Collectors.toList());
      		for(int i = 0; i< listaPorIdade.size(); i++){
      			System.out.println("Nome: " + listaPorIdade.get(i).getNome());
      			System.out.println("Idade: " + listaPorIdade.get(i).getIdade());
      			System.out.println("Situacao: " + listaPorIdade.get(i).getSituacao());
      		}
      	}
      }
    

    //Classe Principal:

    import java.util.Scanner;

    public class SistemaProva {

      public static void main(String[] args) {
      	// TODO Auto-generated method stub
    
      	Scanner ler = new Scanner(System.in);
      	Menu m = new Menu();
      					
      	String nome;
      	int idade;
      	String situacao;
      	int op;
      	
      	System.out.println("Bem-Vindo(a) ao Sistema");
      	do{
      		System.out.println("\n\tMenu\n\n");
      		System.out.println("Digite a opção desejada:\n1: 1-Cadastrar Funcionário\n2: 2-Consultar Funcionário\n3: 3-Listagem Completa de Funcionários\n4: 4-Listagem de Funcionários Ativos\n5: 5-Listagem de Funcionários por Idade\n0: 10-Sair\n");
      		op=ler.nextInt();
    
      	if(op==1){
      		//int quantidade;
      			System.out.println("Quantos funcionários tem na empresa?");
      			int quantidade[] = new int[quantidade];
      			//quantidade[quantidade] = quantidade;
      			for (int i = 0; i < quantidade.length; i++) {
      				System.out.println("\n\tCadastrar Funcionário:\n");
      				System.out.println("Nome: ");
      				try{
      					nome=ler.next();
      					System.out.println("Idade: ");
      					idade=ler.nextInt();
      					System.out.println("Situacao(Ativo ou Inativo): ");
      					situacao=ler.next();
      					m.addFuncionario(nome, idade, situacao);
      				}catch(Exception e){
      					System.out.println("Erro encontrado! Refaça!");
      					}
      				}
      			}
    
    
      	if(op==2){
      		System.out.println("\n\tConsultar Funcionário:\n");
      		System.out.println("Qual o nome do funcionário que deseja consultar? ");
      		try{
      		nome=ler.next();
      		m.consultar(nome);
      		}catch(Exception e){
      			System.out.println("Erro encontrado! Refaça ou primeiro cadastre funcionários!");
      	}
      			
      	if(op==3){
      		System.out.println("\n\tListagem Completa de Funcionário:\n");
      		m.listaCompleta();
      	}
    
      	if(op==4){
      		System.out.println("\n\tListagem de Funcionários Ativos:\n");
      		m.listaAtivos();
      	}
    
      	if(op==5){
      		System.out.println("\n\tListagem de Funcionário por Idade:\n");
      		m.listaPorIdades();
      	}
    
      	if(op==10){
      		System.out.printf("\nEncerrando Sistema!");
      	}
      					
      	}while(op!=0);
      						
      	ler.close();
      }
    

    }

Ola,
Aqui você não criou a variável para receber o numero de funcionários que o usuário digitou e usa-lo para instanciar o vetor.

System.out.println("Quantos funcionários tem na empresa?"); final int qtd = ler.nextInt(); final int quantidade[] = new int[qtd];

Aqui voce nao fechou o catch

try {
  nome = ler.next();
   m.consultar(nome);
} catch (final Exception e) {
    System.out.println("Erro encontrado! Refaça ou primeiro cadastre funcionários!");
}

Segue class completa

import java.util.Scanner;

public class SistemaProva {

	public static void main(final String[] args) {
		// TODO Auto-generated method stub

		final Scanner ler = new Scanner(System.in);
		final Menu m = new Menu();

		String nome;
		int idade;
		String situacao;
		int op;

		System.out.println("Bem-Vindo(a) ao Sistema");

		do {
			System.out.println("\n\tMenu\n\n");
			System.out.println(
					"Digite a opção desejada:\n1: 1-Cadastrar Funcionário\n2: 2-Consultar Funcionário\n3: 3-Listagem Completa de Funcionários\n4: 4-Listagem de Funcionários Ativos\n5: 5-Listagem de Funcionários por Idade\n0: 10-Sair\n");
			op = ler.nextInt();

			if (op == 1) {
				// int quantidade;
				System.out.println("Quantos funcionários tem na empresa?");
				final int qtd = ler.nextInt();
				final int quantidade[] = new int[qtd];
				// quantidade[quantidade] = quantidade;
				for (int i = 0; i < quantidade.length; i++) {
					System.out.println("\n\tCadastrar Funcionário:\n");
					System.out.println("Nome: ");
					try {
						nome = ler.next();
						System.out.println("Idade: ");
						idade = ler.nextInt();
						System.out.println("Situacao(Ativo ou Inativo): ");
						situacao = ler.next();
						m.addFuncionario(nome, idade, situacao);
					} catch (final Exception e) {
						System.out.println("Erro encontrado! Refaça!");
					}
				}
			}

			if (op == 2) {
				System.out.println("\n\tConsultar Funcionário:\n");
				System.out.println("Qual o nome do funcionário que deseja consultar? ");
				try {
					nome = ler.next();
					m.consultar(nome);
				} catch (final Exception e) {
					System.out.println("Erro encontrado! Refaça ou primeiro cadastre funcionários!");
				}
			}

			if (op == 3) {
				System.out.println("\n\tListagem Completa de Funcionário:\n");
				m.listaCompleta();
			}

			if (op == 4) {
				System.out.println("\n\tListagem de Funcionários Ativos:\n");
				m.listaAtivos();
			}

			if (op == 5) {
				System.out.println("\n\tListagem de Funcionário por Idade:\n");
				m.listaPorIdades();
			}

			if (op == 10) {
				System.out.printf("\nEncerrando Sistema!");
			}

		} while (op != 0);

		ler.close();
	}
}

Sugestões de melhoria:

  1. em cada ler.nextInt(); faça uma validação pois se o usuario digitar algo errado daquilo que se espera, vai ser lançada uma stack.
  2. utilize case.
  3. separe tudo oque esta dentro dos if’s em metodos.