Menu
Coddy logo textTech

Riepilogo - Voto dello studente

Fa parte della sezione Programmazione orientata agli oggetti del percorso Lua di Coddy. Lezione 18 di 70.

challenge icon

Sfida

Facile

Costruiamo una classe Student completa che riunisca tutto ciò che hai imparato in questo capitolo: variabili di istanza, getter, setter e proprietà calcolate, tutti insieme!

Organizzerai il codice in due file:

  • Student.lua: definisci la tua classe Student con il consueto schema prototype. Ogni studente deve memorizzare un name e un grade. La tua classe deve avere:
    • Un costruttore :new(name, grade)
    • Un getter :getName() che restituisce il nome dello studente
    • Un getter :getGrade() che restituisce il voto corrente
    • Un setter :setGrade(newGrade) che aggiorna il voto
    • Un metodo :hasPassed(threshold) che restituisce true se il voto dello studente è maggiore o uguale alla soglia, false altrimenti
  • main.lua: importa il tuo modulo Student e dimostra tutte le funzionalità creando uno studente, verificandone lo stato, aggiornandone il voto e controllando le modifiche.

Riceverai quattro input:

  1. Il nome dello studente
  2. Il voto iniziale
  3. La soglia di sufficienza da verificare
  4. Il nuovo voto da impostare

Nel file principale, crea uno studente con il nome e il voto iniziale forniti, poi stampa quanto segue su righe separate:

  1. Il nome dello studente
  2. Il voto iniziale dello studente
  3. Se lo studente ha superato la soglia indicata (stampa true o false)
  4. Il voto dello studente dopo averlo aggiornato con il nuovo voto
  5. Se lo studente ha superato la stessa soglia dopo l'aggiornamento del voto

Per esempio, se gli input sono Emma, 55, 60 e 75, l'output dovrebbe essere:

Emma
55
false
75
true

Emma inizialmente aveva un voto di 55, che non raggiungeva la soglia di sufficienza di 60. Dopo aver aggiornato il suo voto a 75, ora supera la soglia!

Provalo tu

-- Carica il modulo Student
local Student = require('Student')

-- Leggi gli input
local name = io.read()
local initialGrade = tonumber(io.read())
local threshold = tonumber(io.read())
local newGrade = tonumber(io.read())

-- TODO: Crea uno studente con il nome e il voto iniziale forniti

-- TODO: Stampa il nome dello studente usando il getter

-- TODO: Stampa il voto iniziale dello studente usando il getter

-- TODO: Verifica e stampa se lo studente ha superato la prova con la soglia fornita

-- TODO: Aggiorna il voto dello studente usando il setter

-- TODO: Stampa il nuovo voto dello studente

-- TODO: Verifica e stampa se lo studente ha superato la prova dopo l'aggiornamento del voto

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore Lua online