Récapitulatif - Paie du personnel
Fait partie de la section Programmation orientée objet du Journey R de Coddy. Leçon 16 sur 57.
Défi
MoyenConstruisez une gestion de paie sur trois fichiers. La fonction générique pay() est fournie dans Employee.R.
Employee.R:new_employee(name, salary, ..., class = character());pay.employee()correspond au salaire divisé par 12 ;format.employee()renvoieAda: 5000.00avecpay()formaté avec deux décimales ; etmanager_cost(staff), la paie mensuelle totale de toutes les personnes qui héritent demanager.Manager.R:new_manager(name, salary, bonus)avec le champ supplémentairebonus;pay.manager()ajoute un douzième de la prime à la paie de l’employé avecNextMethod();format.manager()ajoute(manager)après le texte de l’employé avecNextMethod().Intern.R:new_intern(name, salary);pay.intern()correspond à la moitié de la paie de l’employé, en utilisantNextMethod(). Les stagiaires conservent le format de l’employé.
Le code fourni lit les lignes employee Bo 36000, manager Ada 60000 12000 ou intern Cy 24000, affiche le format de chaque personne, puis le total des managers.
Votre code doit être placé dans Employee.R, Manager.R et Intern.R. main.R contient le code d’entrée/sortie fourni et ne peut pas être modifié.
Essayez vous-même
source("Employee.R")
source("Manager.R")
source("Intern.R")
# Code d'entrée/sortie fourni : le garder tel quel
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 = "")
Toutes les leçons de Programmation orientée objet
1Bases de S3
Travailler avec les fichiersListes avec une classeFonctions constructricesMéthodes print et formatValidateurs et fonctions utilitairesRécapitulatif - Températures4Encapsulation dans R
Les fermetures comme objetsLes environnements comme objetsFonctions d’accèsProtéger l’étatRécapitulatif - Parcmètre2S3 : génériques et méthodes
Génériques et UseMethodMéthodes par défautMéthodes pour les génériques de baseNotions de base sur NextMethodRécapitulatif - Aires des formes5Classes S4
Définir des classes S4Slots et accèsVérifications de validitéMéthodes showRécapitulatif - Catalogue de produits8Classes de référence
Définition des classes de référenceMéthodes et mises à jour des champsSémantique de copieHéritage et callSuperRécapitulatif - File d’attente des tâches11Projet : gestion de bibliothèque
Livres et membresEmprunter des livres3Héritage S3
Vecteurs de classesOrdre de recherche des méthodesÉtendre avec NextMethodVérifier avec inherits()Récapitulatif - Paie du personnelEntraînez-vous par vous-même : Compilateur R en ligne