Prévia do material em texto
UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Programação II - Lista de Exercícios – Classes e Herança 1. Crie duas classes: Funcionário e Gerente. a. Gerente deve ser classe filha de Funcionário b. Os atributos de Funcionário são: nome, CPF, salário e departamento c. A classe Funcionário tem o método bonificar(), que não recebe nenhum parâmetro, e acrescenta 10% ao salário dele d. A classe Gerente deve ter atributos adicionais de senha e número de funcionários gerenciados e. A classe Gerente tem dois métodos a mais i. O método autenticarSenha(senha), que apenas compara a senha do parâmetro com o valor do atributo senha, retornando True ou False. ii. O método bonificar(), que acrescenta ao gerente o valor de 15% ao seu salário. f. Crie objetos e teste suas classes 2. Crie a classe Emprestável com os atributos privados: título, nomePessoa, telefonePessoa e dataEmprestimo com seus getters e setters públicos. a. Crie a classe Livro e a classe CD, que herdem de Emprestável e tenham os atributos autor e artista, respectivamente, também privados com getters e setters públicos. b. Em uma lista, coloque pelo menos 3 itens emprestáveis diferentes de cada tipo, emprestados para pessoas diferentes. c. Percorra essa lista imprimindo o que foi emprestado para quem e quando, no seguinte formato: “O item X foi empresado para Y em Z”. d. Para utilizar o suporte a data, inclua no início do seu programa a linha “from datetime import *”. As datas devem ser digitadas no formato (hh,mm,ss), conforme o exemplo para 11h30: d = time(11,30,00). 3. Crie uma classe Funcionario com atributos privados nome, cpf e salário; e um construtor que deve receber como parâmetro nome e cpf. Todos os atributos devem ter métodos getters definidos. Crie métodos setters conforme você sentir necessidade. a. Crie uma classe TrabalhadorAssalariado e outra TrabalhadorHorista, ambas herdando de Funcionario. A classe TrabalhadorAssalariado possui o método definirSalario(salario) que recebe um valor como parâmetro e o atribui ao atributo salário. b. A classe TrabalhadorHorista possui os atributos privados valorHora e horasTrabalhadasMes, com seus respectivos getters e setters. Essa classe também possui o método calcularPagamento(), que ao ser invocado deve calcular o valor do salário e preencher este atributo. O salário é obtido multiplicando-se as horas trabalhadas no mês pelo valor da hora. Crie defesas que verifiquem se os atributos necessários para o cálculo do salário estão preenchidos. Se não estiverem emita aviso. c. Crie 3 instâncias de cada utilizando valores diferentes, coloque-os em uma lista e a percorra imprimindo os nomes dos funcionários com seus pagamentos do mês. 4. Escreva uma classe SetorPessoal que tenha como atributo uma lista que deverá guardar objetos da classe “Funcionário” construída no exercício 1 desta lista. Acrescente os seguintes métodos à classe SetorPessoal: a. Um método para adicionar funcionários na lista. O funcionário pode ser normal ou um gerente, criados como objetos. b. Um método para imprimir a folha de pagamento informando o nome dos funcionários e o seus respectivos salários, um por linha. c. Um método para retornar o valor total da folha de pagamento. d. Um método para retornar o nome do funcionário que recebe o maior salário. e. Modifique a classe funcionário para acrescentar o nome da sua função/cargo f. Inclua um método na classe SetorPessoal que possa receber como parâmetro o nome de uma determinada função/cargo e imprimir o nome de todas as pessoas que exercem essa função.