Menu
Coddy logo textTech

Recapitulação - Nota do Aluno

Parte da seção Object Oriented Programming do Journey de Lua da Coddy — lição 18 de 70.

challenge icon

Desafio

Fácil

Vamos construir uma classe Student completa que reúne tudo o que você aprendeu neste capítulo — variáveis de instância, getters, setters e propriedades calculadas, tudo funcionando em conjunto!

Você organizará seu código em dois arquivos:

  • Student.lua: Defina sua classe Student com o padrão de protótipo padrão. Cada estudante deve armazenar um name e uma grade. Sua classe precisa de:
    • Um construtor :new(name, grade)
    • Um getter :getName() que retorna o nome do estudante
    • Um getter :getGrade() que retorna a nota atual
    • Um setter :setGrade(newGrade) que atualiza a nota
    • Um método :hasPassed(threshold) que retorna true se a nota do estudante for maior ou igual ao limite (threshold), e false caso contrário
  • main.lua: Importe seu módulo Student e demonstre toda a funcionalidade criando um estudante, verificando seu status, atualizando sua nota e verificando as mudanças.

Você receberá quatro entradas:

  1. Nome do estudante
  2. Nota inicial
  3. Limite de aprovação (threshold) para verificar
  4. Nova nota para definir

No seu arquivo principal, crie um estudante com o nome e a nota inicial fornecidos, e então imprima o seguinte em linhas separadas:

  1. O nome do estudante
  2. A nota inicial do estudante
  3. Se o estudante passou com o limite fornecido (imprima true ou false)
  4. A nota do estudante após atualizá-la com a nova nota
  5. Se o estudante passou com o mesmo limite após a atualização da nota

Por exemplo, se as entradas forem Emma, 55, 60 e 75, a saída deve ser:

Emma
55
false
75
true

Emma inicialmente tinha uma nota de 55, que não atingiu o limite de aprovação de 60. Após atualizar sua nota para 75, ela agora passa!

Experimente você mesmo

-- Requer o módulo Student
local Student = require('Student')

-- Lê as entradas
local name = io.read()
local initialGrade = tonumber(io.read())
local threshold = tonumber(io.read())
local newGrade = tonumber(io.read())

-- TODO: Criar um estudante com o nome e a nota inicial fornecidos

-- TODO: Imprimir o nome do estudante usando o getter

-- TODO: Imprimir a nota inicial do estudante usando o getter

-- TODO: Verificar e imprimir se o estudante passou com o limite (threshold) fornecido

-- TODO: Atualizar a nota do estudante usando o setter

-- TODO: Imprimir a nova nota do estudante

-- TODO: Verificar e imprimir se o estudante passou após a atualização da nota

Todas as lições de Object Oriented Programming