Para cada exercício abaixo crie um arquivo Python distinto e poste nesta tarefa
Modele um funcionário. Ele deve ter o nome do funcionário, o departamento onde trabalha, seu salário, a data de entrada no banco e seu RG. Defina alguns métodos de acordo com sua necessidade. Além deles, defina um método recebe_aumento que aumenta o salário do funcionário de acordo com o parâmetro passado como argumento. Crie também um método calcula_ganho_anual, que não recebe parâmetro algum, devolvendo o valor do salário multiplicado por 13.]
Modele um funcionário. Ele deve ter o nome do funcionário, o departamento onde trabalha, seu salário, a data de entrada no banco e seu RG. Defina alguns métodos de acordo com sua necessidade. Além deles, defina um método recebe_aumento que aumenta o salário do funcionário de acordo com o parâmetro passado como argumento. Crie também um método calcula_ganho_anual, que não recebe parâmetro algum, devolvendo o valor do salário multiplicado por 13.]
Passo 1
O enunciado pede para modelar um funcionário usando programação orientada a objetos em Python. Os conteúdos envolvem definição de classe, atributos de instância, métodos de instância, e operações sobre atributos (como atualizar salário e calcular ganho anual).
Passo 2
Definimos a classe
Implementamos o método
Implementamos o método , conforme especificado.
Funcionario
com um método construtor __init__
que recebe e armazena os atributos obrigatórios: nome, departamento, salário, data de entrada e RG.Implementamos o método
\(recebe\_aumento\)(self, valor)
que recebe um valor e o adiciona ao atributo salario
. Assim conseguimos atualizar o salário do funcionário.Implementamos o método
\(calcula\_ganho\_anual\)(self)
que não recebe parâmetros e retorna o salário multiplicado por
Passo 3
Para facilitar uso e depuração, adicionamos um método
\(exibir_dados\)(self)
que formata e imprime os principais dados do funcionário.Resposta
Crie um arquivo chamado
funcionario.py
com o seguinte conteúdo:class Funcionario:
def __init__(self, nome, departamento, salario, \(data\_entrada\), rg):
"""
Inicializa um objeto Funcionario.
:param nome: str, nome completo do funcionário
:param departamento: str, nome do departamento
:param salario: float, salário mensal
:param \(data\_entrada\): str, data de entrada (formato dd/mm/aaaa)
:param rg: str, número do RG
"""
self.nome \(=\) nome
self.departamento \(=\) departamento
self.salario \(=\) float(salario)
self.\(data\_entrada = data\_entrada\)
self.rg \(=\) rg
def \(recebe\_aumento\)(self, valor):
"""
Aplica um aumento ao salário do funcionário.
:param valor: float, valor do aumento a ser adicionado ao salário
"""
if valor < \(0\):
raise ValueError("O valor do aumento deve ser não-negativo.")
self.salario \(+=\) valor
def \(calcula\_ganho\_anual\)(self):
"""
Calcula o ganho anual considerando \(13\) salários.
:return: float, salário mensal vezes \(13\)
"""
return self.salario * \(13\)
def \(exibir\_dados\)(self):
"""
Exibe os dados do funcionário de forma legível.
"""
print(f"Nome: {self.nome}")
print(f"Departamento: {self.departamento}")
print(f"Salário atual: R$ {self.salario:.\(2\)f}")
print(f"Data de entrada: {self.\(data\_entrada\)}")
print(f"RG: {self.rg}")
# Exemplo de uso:
if __name__ \(==\) "__main__":
f \(=\) Funcionario("Ana Silva", "Recursos Humanos", \(3500.00\), "\(15\)/\(03\)/\(2018\)", "\(12.345\).\(678\)-\(9\)")
f.\(exibir\_dados\)()
f.\(recebe\_aumento\)(\(500.00\))
print("\nApós aumento:")
f.\(exibir\_dados\)()
print(f"\nGanho anual: R$ {f.\(calcula\_ganho\_anual\)():.\(2\)f}")