Menu
Coddy logo textTech

Récapitulatif - Rôles des employés

Fait partie de la section Object Oriented Programming du Journey Lua de Coddy — leçon 42 sur 70.

challenge icon

Défi

Facile

Construisons un système de bonus de paie qui démontre comment différents types d'employés peuvent partager la même interface tout en calculant les bonus différemment !

Vous allez créer une petite hiérarchie d'employés répartie sur quatre fichiers :

  • Employee.lua : Votre classe de base représentant un employé générique. Le constructeur :new(name, salary) doit stocker à la fois le nom de l'employé et son salaire. Incluez une méthode :calculateBonus() qui retourne 10 % du salaire (le bonus par défaut pour les employés réguliers), et une méthode :getName() pour récupérer le nom.
  • Manager.lua : Une classe enfant qui hérite de Employee. Les managers travaillent dur et sont récompensés — surchargez :calculateBonus() pour retourner 20 % de leur salaire au lieu des 10 % par défaut.
  • Intern.lua : Une autre classe enfant héritant de Employee. Les stagiaires reçoivent un bonus fixe de 50 quel que soit leur salaire — surchargez :calculateBonus() pour toujours retourner ce montant.
  • main.lua : Rassemblez tout ! Lisez trois entrées pour les noms des employés et trois entrées pour leurs salaires. Créez un Manager, un Intern, et un Employee régulier. Stockez les trois dans une table, puis bouclez dessus et affichez le nom de chaque personne suivi de son bonus calculé.

Vous recevrez six entrées :

  1. Le nom du Manager
  2. Le salaire du Manager
  3. Le nom de l'Intern
  4. Le salaire de l'Intern
  5. Le nom de l'employé régulier
  6. Le salaire de l'employé régulier

Pour chaque employé de votre collection (dans l'ordre : Manager, Intern, Employee), affichez son nom et son bonus dans ce format :

{name}: {bonus}

Par exemple, si les entrées sont Alice, 5000, Bob, 2000, Carol, et 3000, la sortie devrait être :

Alice: 1000
Bob: 50
Carol: 300

Remarquez comment le même appel à :calculateBonus() produit des résultats différents selon le type de chaque employé — c'est le polymorphisme à l'œuvre ! Le Manager obtient 20 % de 5000, l'Intern obtient un montant fixe de 50, et l'Employee régulier obtient 10 % de 3000.

Essayez vous-même

-- main.lua : Rassembler tous les éléments

local Employee = require('Employee')
local Manager = require('Manager')
local Intern = require('Intern')

-- Lire les entrées
local managerName = io.read()
local managerSalary = tonumber(io.read())
local internName = io.read()
local internSalary = tonumber(io.read())
local employeeName = io.read()
local employeeSalary = tonumber(io.read())

-- TODO : Créer un Manager, un Intern et un Employee régulier

-- TODO : Stocker les trois dans un tableau (dans l'ordre : Manager, Intern, Employee)

-- TODO : Parcourir le tableau et afficher le nom et le bonus de chaque personne
-- Format : {name}: {bonus}

Toutes les leçons de Object Oriented Programming