Menu
Coddy logo textTech

Récapitulatif - Note de l'étudiant

Fait partie de la section Programmation orientée objet du Journey Lua de Coddy. Leçon 18 sur 70.

challenge icon

Défi

Facile

Construisons une classe Student complète qui rassemble tout ce que tu as appris dans ce chapitre : les variables d’instance, les accesseurs, les mutateurs et les propriétés calculées, qui fonctionnent tous ensemble !

Tu organiseras ton code dans deux fichiers :

  • Student.lua : définis ta classe Student avec le modèle de prototype standard. Chaque étudiant doit stocker un name et un grade. Ta classe doit contenir :
    • Un constructeur :new(name, grade)
    • Un accesseur :getName() qui renvoie le nom de l’étudiant
    • Un accesseur :getGrade() qui renvoie la note actuelle
    • Un mutateur :setGrade(newGrade) qui met à jour la note
    • Une méthode :hasPassed(threshold) qui renvoie true si la note de l’étudiant est supérieure ou égale au seuil, et false dans le cas contraire
  • main.lua : importe ton module Student et démontre toutes les fonctionnalités en créant un étudiant, en vérifiant son statut, en mettant à jour sa note et en vérifiant les changements.

Tu recevras quatre entrées :

  1. Le nom de l’étudiant
  2. La note initiale
  3. Le seuil de réussite à vérifier
  4. La nouvelle note à définir

Dans ton fichier principal, crée un étudiant avec le nom et la note initiale fournis, puis affiche les éléments suivants sur des lignes séparées :

  1. Le nom de l’étudiant
  2. La note initiale de l’étudiant
  3. Si l’étudiant a réussi avec le seuil fourni (affiche true ou false)
  4. La note de l’étudiant après sa mise à jour avec la nouvelle note
  5. Si l’étudiant a réussi avec le même seuil après la mise à jour de sa note

Par exemple, si les entrées sont Emma, 55, 60 et 75, la sortie devrait être :

Emma
55
false
75
true

Emma avait initialement une note de 55, ce qui n’atteignait pas le seuil de réussite de 60. Après avoir mis sa note à jour à 75, elle réussit maintenant !

Essayez vous-même

-- Requiert le module Student
local Student = require('Student')

-- Lire les entrées
local name = io.read()
local initialGrade = tonumber(io.read())
local threshold = tonumber(io.read())
local newGrade = tonumber(io.read())

-- TODO: Créer un étudiant avec le nom et la note initiale donnés

-- TODO: Afficher le nom de l'étudiant en utilisant le getter

-- TODO: Afficher la note initiale de l'étudiant en utilisant le getter

-- TODO: Vérifier et afficher si l'étudiant a réussi avec le seuil donné

-- TODO: Mettre à jour la note de l'étudiant en utilisant le setter

-- TODO: Afficher la nouvelle note de l'étudiant

-- TODO: Vérifier et afficher si l'étudiant a réussi après la mise à jour de la note

Toutes les leçons de Programmation orientée objet

Entraînez-vous par vous-même : Compilateur Lua en ligne