Menu
Coddy logo textTech

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

Часть раздела Object Oriented Programming путешествия по Lua на Coddy — урок 18 из 70.

challenge icon

Задание

Легко

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

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

  • Student.lua: Определите класс Student, используя стандартный паттерн прототипа. Каждый студент должен хранить name и grade. Вашему классу необходимы:
    • Конструктор :new(name, grade)
    • Геттер :getName(), который возвращает имя студента
    • Геттер :getGrade(), который возвращает текущую оценку
    • Сеттер :setGrade(newGrade), который обновляет оценку
    • Метод :hasPassed(threshold), который возвращает true, если оценка студента больше или равна пороговому значению (threshold), и false в противном случае
  • main.lua: Подключите модуль Student и продемонстрируйте всю функциональность, создав студента, проверив его статус, обновив оценку и верифицировав изменения.

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

  1. Имя студента
  2. Начальная оценка
  3. Проходной порог для проверки
  4. Новая оценка для установки

В основном файле создайте студента с указанным именем и начальной оценкой, затем выведите следующее на отдельных строках:

  1. Имя студента
  2. Начальная оценка студента
  3. Прошел ли студент порог с заданным значением (выведите true или false)
  4. Оценка студента после обновления на новую оценку
  5. Прошел ли студент порог с тем же значением после обновления оценки

Например, если входные данные — Emma, 55, 60 и 75, вывод должен быть следующим:

Emma
55
false
75
true

У Emma изначально была оценка 55, что не соответствовало проходному порогу 60. После обновления её оценки до 75, теперь она проходит!

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

-- Подключить модуль 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: Вывести имя студента, используя геттер

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

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

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

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

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

Все уроки раздела Object Oriented Programming