Menu
Coddy logo textTech

Pobieranie salda

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

challenge icon

Wyzwanie

Łatwy

Twój Cyfrowy Bank naprawdę nabiera kształtów! Na konta można wpłacać środki i wypłacać je po odpowiednim sprawdzeniu dostępnych funduszy. Teraz dodajmy metodę pobierającą saldo, a następnie połączmy wszystko w realistycznym scenariuszu bankowym.

Kontynuujesz pracę nad istniejącymi plikami:

  • Account.lua: Dodaj metodę :getBalance(), która zwraca bieżące saldo. Jest to zgodne ze wzorcem metody pobierającej, którego uczyłeś się wcześniej: zapewnia kontrolowany dostęp do danych wewnętrznych zamiast bezpośredniego odczytu pola. Zachowaj całą dotychczasową funkcjonalność (konstruktor oraz metody deposit i withdraw).
  • main.lua: Utwórz konto i wykonaj sekwencję operacji bankowych, aby pokazać, jak wpłaty, wypłaty i sprawdzanie salda działają razem w rzeczywistej sytuacji.

Otrzymasz pięć danych wejściowych:

  1. Kwota początkowej wpłaty
  2. Kwota pierwszej wypłaty
  3. Kwota drugiej wpłaty
  4. Kwota drugiej wypłaty
  5. Kwota trzeciej wypłaty

W pliku głównym utwórz konto i wykonaj kolejno następujące operacje:

  1. Wpłać początkową kwotę, a następnie wyświetl saldo za pomocą :getBalance()
  2. Wypłać pierwszą kwotę, a następnie wyświetl saldo
  3. Wpłać drugą kwotę, a następnie wyświetl saldo
  4. Wypłać drugą kwotę, a następnie wyświetl saldo
  5. Spróbuj wykonać trzecią wypłatę, a następnie wyświetl saldo

Pamiętaj, że nieudane wypłaty wyświetlą Insufficient funds przed wyświetleniem salda.

Na przykład, jeśli dane wejściowe to 200, 50, 100, 180 i 100, dane wyjściowe powinny wyglądać następująco:

200
150
250
70
Insufficient funds
70

Saldo konta wynosi początkowo 200, spada do 150 po pierwszej wypłacie, rośnie do 250 po kolejnej wpłacie, spada do 70 po wypłacie 180 i pozostaje na poziomie 70, gdy ostatnia wypłata w wysokości 100 nie powiedzie się z powodu niewystarczających środków.

Spróbuj swoich sił

-- Załaduj moduł Account
local Account = require('Account')

-- Odczytaj pięć wartości wejściowych
local initialDeposit = tonumber(io.read())
local withdrawal1 = tonumber(io.read())
local deposit2 = tonumber(io.read())
local withdrawal2 = tonumber(io.read())
local withdrawal3 = tonumber(io.read())

-- Utwórz jedno konto
local account = Account:new()

-- Wpłać początkową kwotę i wyświetl saldo za pomocą :getBalance()
account:deposit(initialDeposit)
print(account:getBalance())

-- Spróbuj wykonać pierwszą wypłatę i wyświetl saldo
account:withdraw(withdrawal1)
print(account:getBalance())

-- Wpłać drugą kwotę i wyświetl saldo
account:deposit(deposit2)
print(account:getBalance())

-- Spróbuj wykonać drugą wypłatę i wyświetl saldo
account:withdraw(withdrawal2)
print(account:getBalance())

-- Spróbuj wykonać trzecią wypłatę i wyświetl saldo
account:withdraw(withdrawal3)
print(account:getBalance())

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator Lua online