Revisão - Folha de pagamento da equipe
Parte da seção Programação Orientada a Objetos do Journey de R da Coddy. Lição 16 de 57.
Desafio
MédioCrie uma folha de pagamento usando três arquivos. A função genérica pay() é fornecida em Employee.R.
Employee.R:new_employee(name, salary, ..., class = character());pay.employee()é o salário dividido por 12;format.employee()retornaAda: 5000.00compay()formatado para duas casas decimais; emanager_cost(staff), o pagamento mensal total de todas as pessoas que herdam demanager.Manager.R:new_manager(name, salary, bonus)com o campo extrabonus;pay.manager()adiciona um doze avos do bônus ao pagamento do funcionário comNextMethod();format.manager()adiciona(manager)após o texto do funcionário comNextMethod().Intern.R:new_intern(name, salary);pay.intern()corresponde à metade do pagamento do funcionário, usandoNextMethod(). Estagiários mantêm o formato do funcionário.
O código fornecido lê as linhas employee Bo 36000, manager Ada 60000 12000 ou intern Cy 24000, imprime o formato de cada pessoa e, em seguida, o total dos gerentes.
Seu código deve ficar em Employee.R, Manager.R e Intern.R. main.R contém o código fornecido de entrada/saída e não pode ser editado.
Experimente você mesmo
source("Employee.R")
source("Manager.R")
source("Intern.R")
# Código de entrada/saída fornecido: mantenha-o como está
input <- suppressWarnings(readLines(file("stdin")))
staff <- list()
for (line in input) {
p <- strsplit(line, " ")[[1]]
staff[[length(staff) + 1]] <- switch(p[1],
employee = new_employee(p[2], as.numeric(p[3])),
manager = new_manager(p[2], as.numeric(p[3]), as.numeric(p[4])),
intern = new_intern(p[2], as.numeric(p[3])))
}
for (x in staff) cat(format(x), "\n", sep = "")
cat(sprintf("managers cost %.2f per month", manager_cost(staff)), "\n", sep = "")
Todas as lições de Programação Orientada a Objetos
1Fundamentos do S3
Trabalhando com ArquivosListas com uma ClasseFunções ConstrutorasMétodos de Impressão e FormataçãoValidadores e AuxiliaresRevisão - Temperaturas4Encapsulamento em R
Closures como ObjetosAmbientes como ObjetosFunções de AcessoProtegendo o EstadoRecapitulação - Parquímetro2Genéricos e Métodos S3
Genéricos e UseMethodMétodos padrãoMétodos para genéricos baseFundamentos de NextMethodRevisão - Áreas de formas5Classes S4
Definindo classes S4Slots e acessoVerificações de validadeMétodos showRevisão - Catálogo de produtos8Classes de Referência
Definindo Classes de ReferênciaMétodos e Atualizações de CamposSemântica de CópiaHerança e callSuperRecapitulação — Fila de Tarefas11Projeto: Gerenciamento de Biblioteca
Livros e MembrosEmpréstimo de Livros3Herança S3
Vetores de classeOrdem de busca de métodosEstendendo com NextMethodVerificando com inherits()Revisão - Folha de pagamento da equipePratique por conta própria: Compilador de R online