Created
August 17, 2019 17:20
-
-
Save bergpb/70a3380e1462d8d3784a7a1ea5f30555 to your computer and use it in GitHub Desktop.
Exercício da Disciplina de Técnicas de Programação - Aula 05
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| from datetime import datetime as dt | |
| class Pessoa: | |
| def __init__(self, nome, cpf, data_nascimento): | |
| self.nome = nome | |
| self.cpf = cpf | |
| self.data_nascimento = data_nascimento | |
| class Funcionario(Pessoa): | |
| def __init__(self, nome, cpf, data_nascimento, data_admissao, salario, lotacao): | |
| super().__init__(nome, cpf, data_nascimento) | |
| self.data_admissão = data_admissao | |
| self.salario = salario | |
| self.lotacao = lotacao | |
| def calcula_salario_mensal(self): | |
| data_hoje = dt.now() | |
| anos_trabalhados = int(abs((data_hoje - data_admissao).days / 365)) | |
| salario_mensal = self.salario + (self.salario * anos_trabalhados) / 100 | |
| return salario_mensal | |
| # representação da classe | |
| def __repr__(self): | |
| return 'Nome: {}, CPF: {}, Salário: {}'.format(self.nome, self.cpf, self.salario) | |
| class Supervisor(Funcionario): | |
| def __init__(self, nome, cpf, data_nascimento, data_admissao, salario, lotacao, comissao): | |
| super().__init__(nome, cpf, data_nascimento, data_admissao, salario, lotacao) | |
| self.comissao = comissao | |
| # sobrescrita do metodo calcula_salario_mensal da classe funcionario | |
| def calcula_salario_mensal(self): | |
| return super().calcula_salario_mensal() + self.comissao | |
| # representação da classe | |
| def __str__(self): | |
| return 'Nome: {}, CPF: {}, Salário: {}, Comissão: {}'.format(self.nome, self.cpf, self.salario, self.comissao) | |
| data_nascimento = dt.strptime('2000-01-01', '%Y-%m-%d') | |
| data_admissao =dt.strptime('2005-01-01', '%Y-%m-%d') | |
| funcionario = Funcionario('Josh', '793.253.125-92', data_nascimento, data_admissao, 2000, 'Setor 1') | |
| supervisor = Supervisor('Nicole', '589.365.182-21', data_nascimento, data_admissao, 2000, 'Setor 1', 500) | |
| print('---Funcionario---') | |
| print(funcionario) | |
| print('Salário mensal: {}'.format(funcionario.calcula_salario_mensal())) | |
| print('---Supervisora---') | |
| print(supervisor) | |
| print('Salário mensal: {}'.format(supervisor.calcula_salario_mensal())) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment