Menu
Coddy logo textTech

Recapitulação - Nota do Aluno

Parte da seção Programação Orientada a Objetos do Journey de Lua da Coddy. Lição 18 de 70.

challenge icon

Desafio

Fácil

Vamos criar uma classe Student completa que reúna tudo o que você aprendeu neste capítulo: variáveis de instância, getters, setters e propriedades calculadas, todos trabalhando juntos!

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

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

Você receberá quatro entradas:

  1. Nome do estudante
  2. Nota inicial
  3. Limite de aprovação a ser verificado
  4. Nova nota a ser definida

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

  1. O nome do estudante
  2. A nota inicial do estudante
  3. Se o estudante foi aprovado 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 foi aprovado 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 deverá ser:

Emma
55
false
75
true

Emma tinha inicialmente uma nota 55, que não atingia o limite de aprovação de 60. Depois de atualizar sua nota para 75, ela agora foi aprovada!

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: Crie um estudante com o nome e a nota inicial fornecidos

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

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

-- TODO: Verifique e imprima se o estudante passou com o limiar fornecido

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

-- TODO: Imprima a nova nota do estudante

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

Todas as lições de Programação Orientada a Objetos

Pratique por conta própria: Compilador de Lua online