Exercícios 23 - Classe ListaFuncionarios 23.1 Implemente a classe ListaFuncionarios para armazenar informações de vários funcionários (vendedores e gerentes). Atributos Um array de objetos da classe Funcionario. A quantidade de elementos armazenados no array de funcionarios - (int) Construtor Recebe como argumento a quantidade máxima de funcionários que poderão ser armazenados no array. O construtor deve criar o array e atribuir zero ao atributo que representa a quantidade de funcionários armazenados no array. Métodos inclui Entrada: Um funcionário (Funcionario) Retorno: Nenhum Descrição: Armazena o funcionário fornecido como argumento na primeira posição disponível do array. O funcionário só deve ser armazenado se todas as posições não estiverem preenchidas. Caso o array já esteja completo o funcionário não será armazenado. tamanho Entrada: Nenhuma Retorno: A quantidade de funcionários armazenados no array. obtem Entrada: Um índice do array Retorno: O funcionário armazenado no índice passado como argumento. Caso o índice seja inválido deve ser retornado uma referência nula (null) exibeSalarios Entrada: Nenhuma Retorno: Nenhum Descrição: Exibe o nome e o salario final de cada funcionário armazenado no array. reajustaSalarioBase Entrada: percentual de reajuste Retorno: Nenhum Descrição: Reajusta o salário base de todos os funcionários armazenados no array. calcTotalFolha Entrada: Nenhuma Retorno: A soma do salário final de todos os funcionários armazenados no array. 23.2 Escreva um programa para criar um objeto da classe ListaFuncionario capaz de armazenar até 10 funcionários. A seguir ler uma quantidade indeterminada de inteiros que representam códigos de uma operação conforme os itens do cardápio abaixo. O programa deve executar a operação escolhida. 0.Fim 1.Inclui vendedor 2.Inclui Gerente 3.Exibe todos os funcionários Inclui vendedor A inclusão do vendedor deve ser executada através da chamada ao método estático especificado abaixo (implementar o método na classe que representa o exercício). incluiVendedor Entrada: Uma lista de funcionários Retorno: Nenhum Descrição: Faz a leitura do nome do vendedor, seu salário base e respectivo valor das vendas. Cria um objeto da classe Vendedor e faz a inclusão na lista de funcionários passada como argumento. Inclui gerente A inclusão do gerente deve ser executada através da chamada ao método estático especificado abaixo (implementar o método na classe que representa o exercício). incluiGerente Entrada: Uma lista de funcionários Retorno: Nenhum Descrição: Faz a leitura do nome do gerente, seu salário base e respectiva quantidade de horas extras. Cria um objeto da classe Gerente e faz a inclusão na lista de funcionários passada como argumento. Exibe todos os funcionários Chama o método exibeSalarios da classe ListaFuncionarios para exibir o salário base de todos os funcionários informados. 23.3 Acrescente ao programa anterior os seguintes itens: 4.Exibe total da folha 5.Reajusta salário base Exibe total da folha Chama o método calcTotalFolha da classe ListaFuncionarios para obter a soma dos salários dos funcionários exibindo-a na tela. Reajusta salário base Faz a leitura do percentual de reajuste que será fornecido a todos os funcionários. Aplica o percentual a todos os funcionários através da chamada ao método reajustaSalarioBase 23.4 Acrescente ao programa anterior os seguintes itens: 6.Exibe estatística 7.Altera percentual de comissão dos vendedores Exibe estatística Imprime a quantidade de vendedores e gerentes armazenados na lista de funcionários. A impressão deve ser executada através da chamada ao método estático especificado abaixo (implementar o método na classe que representa o exercício). exibeEstatisticas Entrada: Uma lista de funcionários Retorno: Nenhum Descrição: Exibe a quantidade de vendedores e gerentes existentes na lista de funcionários passada como argumento. Para verificar se o funcionário armazenado na lista é um vendedor ou gerente utilize instanceof que permite verificar se uma referência é uma instância de uma determinada classe. if (func instanceof Vendedor) ...... Altera percentual de comissão dos vendedores Faz uma chamada ao método estático especificado abaixo (implementar o método na classe que representa o exercício). alteraPercComissao Entrada: Uma lista de funcionários Retorno: Nenhum Descrição: Faz a leitura do novo percentual de comissão oferecido aos vendedores. Altera o percentual de comissão de todos os funcionários que são vendedores (dica: utilize instanceof).