Menu
Coddy logo textTech

Повторение — Оценка студента

Часть раздела Объектно-ориентированное программирование путешествия по Lua на Coddy. Урок 18 из 70.

challenge icon

Задание

Легко

Давайте создадим полный класс Student, который объединяет всё, чему вы научились в этой главе: переменные экземпляра, getter-ы, setter-ы и вычисляемые свойства, работающие вместе!

Вы организуете код в двух файлах:

  • Student.lua: Define ваш класс Student со стандартным шаблоном prototype. Каждый student должен хранить name и grade. Вашему классу нужны:
    • конструктор :new(name, grade)
    • getter :getName(), который возвращает имя student
    • getter :getGrade(), который возвращает current grade
    • setter :setGrade(newGrade), который обновляет grade
    • method :hasPassed(threshold), который возвращает true, если grade student больше или равен threshold, и false в противном случае
  • main.lua: Require ваш модуль Student и продемонстрируйте все возможности, создав student, проверив его статус, обновив его grade и проверив изменения.

Вы получите четыре входных значения:

  1. Имя student
  2. Initial grade
  3. Порог threshold для проверки
  4. New grade, который нужно установить

В вашем основном файле создайте student с given именем и initial grade, затем выведите следующие значения в отдельных строках:

  1. Имя student
  2. Initial grade student
  3. Whether student passed с given threshold (выведите true или false)
  4. Grade student после обновления с использованием new grade
  5. Whether student passed с тем же threshold после обновления grade

Например, если входные значения — Emma, 55, 60 и 75, вывод должен быть таким:

Emma
55
false
75
true

Изначально Emma получила grade 55, который не достигал passing threshold, равного 60. После обновления её grade до 75 она теперь passed!

Попробуйте сами

-- Подключить модуль Student
local Student = require('Student')

-- Прочитать входные данные
local name = io.read()
local initialGrade = tonumber(io.read())
local threshold = tonumber(io.read())
local newGrade = tonumber(io.read())

-- TODO: Создать студента с заданным именем и начальной оценкой

-- TODO: Вывести имя студента, используя getter

-- TODO: Вывести начальную оценку студента, используя getter

-- TODO: Проверить и вывести, сдал ли студент с заданным порогом

-- TODO: Обновить оценку студента, используя setter

-- TODO: Вывести новую оценку студента

-- TODO: Проверить и вывести, сдал ли студент после обновления оценки

Все уроки раздела Объектно-ориентированное программирование

Потренируйтесь самостоятельно: Онлайн-компилятор Lua