Menu
Coddy logo textTech

Podsumowanie – ocena ucznia

Część sekcji Programowanie obiektowe ścieżki Lua w Coddy. Lekcja 18 z 70.

challenge icon

Wyzwanie

Łatwy

Stwórzmy kompletną klasę Student, która łączy wszystko, czego nauczyłeś się w tym rozdziale: zmienne instancji, metody pobierające, metody ustawiające i właściwości obliczane, które współpracują ze sobą!

Rozmieścisz swój kod w dwóch plikach:

  • Student.lua: Zdefiniuj klasę Student przy użyciu standardowego wzorca prototypu. Każdy student powinien przechowywać name i grade. Twoja klasa potrzebuje:
    • Konstruktora :new(name, grade)
    • Metody pobierającej :getName(), która zwraca imię studenta
    • Metody pobierającej :getGrade(), która zwraca aktualną ocenę
    • Metody ustawiającej :setGrade(newGrade), która aktualizuje ocenę
    • Metody :hasPassed(threshold), która zwraca true, jeśli ocena studenta jest większa lub równa progowi, a w przeciwnym razie false
  • main.lua: Załaduj swój moduł Student i zaprezentuj wszystkie funkcje, tworząc studenta, sprawdzając jego status, aktualizując jego ocenę i weryfikując zmiany.

Otrzymasz cztery dane wejściowe:

  1. Imię studenta
  2. Ocena początkowa
  3. Sprawdzany próg zaliczenia
  4. Nowa ocena do ustawienia

W pliku głównym utwórz studenta z podanym imieniem i oceną początkową, a następnie wypisz w osobnych wierszach:

  1. Imię studenta
  2. Początkową ocenę studenta
  3. Czy student zaliczył przy podanym progu (wypisz true lub false)
  4. Ocenę studenta po zaktualizowaniu jej nową oceną
  5. Czy student zaliczył przy tym samym progu po aktualizacji oceny

Na przykład, jeśli dane wejściowe to Emma, 55, 60 i 75, wynik powinien być następujący:

Emma
55
false
75
true

Emma początkowo miała ocenę 55, która nie osiągała progu zaliczenia wynoszącego 60. Po zmianie oceny na 75 zdała!

Spróbuj swoich sił

-- Załaduj moduł Student za pomocą require
local Student = require('Student')

-- Odczytaj dane wejściowe
local name = io.read()
local initialGrade = tonumber(io.read())
local threshold = tonumber(io.read())
local newGrade = tonumber(io.read())

-- TODO: Utwórz ucznia o podanym imieniu i ocenie początkowej

-- TODO: Wypisz imię ucznia za pomocą gettera

-- TODO: Wypisz ocenę początkową ucznia za pomocą gettera

-- TODO: Sprawdź i wypisz, czy uczeń zdał przy podanym progu

-- TODO: Zaktualizuj ocenę ucznia za pomocą settera

-- TODO: Wypisz nową ocenę ucznia

-- TODO: Sprawdź i wypisz, czy uczeń zdał po aktualizacji oceny

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator Lua online