Menu
Coddy logo textTech

Bakiye Sorgulama

Coddy'nin Lua Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 22 / 70.

challenge icon

Görev

Kolay

Dijital Bankanız gerçekten şekillenmeye başlıyor! Hesaplar artık para yatırma işlemlerini kabul edebiliyor ve uygun bakiye kontrolü ile para çekme işlemlerini gerçekleştirebiliyor. Şimdi, bakiyeyi almak için bir getter metodu ekleyelim ve ardından her şeyi gerçekçi bir bankacılık senaryosunda bir araya getirelim.

Mevcut dosyalarınız üzerinde çalışmaya devam edeceksiniz:

  • Account.lua: Mevcut bakiyeyi döndüren bir :getBalance() metodu ekleyin. Bu, daha önce öğrendiğiniz getter desenini takip eder; alana doğrudan erişmek yerine dahili verilere kontrollü erişim sağlar. Mevcut tüm işlevlerinizi (yapıcı, para yatırma ve para çekme metotları) koruyun.
  • main.lua: Bir hesap oluşturun ve para yatırma, para çekme ve bakiye kontrollerinin gerçek bir senaryoda nasıl birlikte çalıştığını göstermek için bir dizi bankacılık işlemini çalıştırın.

Beş girdi alacaksınız:

  1. İlk para yatırma tutarı
  2. İlk para çekme tutarı
  3. İkinci para yatırma tutarı
  4. İkinci para çekme tutarı
  5. Üçüncü para çekme tutarı

Ana dosyanızda bir hesap oluşturun ve bu işlemleri sırasıyla gerçekleştirin:

  1. İlk tutarı yatırın, ardından :getBalance() kullanarak bakiyeyi yazdırın
  2. İlk tutarı çekin, ardından bakiyeyi yazdırın
  3. İkinci tutarı yatırın, ardından bakiyeyi yazdırın
  4. İkinci tutarı çekin, ardından bakiyeyi yazdırın
  5. Üçüncü para çekme işlemini deneyin, ardından bakiyeyi yazdırın

Başarısız para çekme işlemlerinin, siz bakiyeyi yazdırmadan önce Insufficient funds yazdıracağını unutmayın.

Örneğin, girdiler 200, 50, 100, 180 ve 100 ise çıktı şu şekilde olmalıdır:

200
150
250
70
Insufficient funds
70

Hesap 200 ile başlar, ilk para çekme işleminden sonra 150'ye düşer, başka bir para yatırma işleminden sonra 250'ye çıkar, 180 çekildikten sonra 70'e iner ve son 100'lük para çekme işlemi yetersiz bakiye nedeniyle başarısız olduğunda 70'te kalır.

Kendin dene

-- Account modülünü dahil et
local Account = require('Account')

-- Beş girişi oku
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())

-- Tek bir hesap oluştur
local account = Account:new()

-- Başlangıç tutarını yatır ve :getBalance() kullanarak bakiyeyi yazdır
account:deposit(initialDeposit)
print(account:getBalance())

-- İlk para çekme işlemini dene ve bakiyeyi yazdır
account:withdraw(withdrawal1)
print(account:getBalance())

-- İkinci tutarı yatır ve bakiyeyi yazdır
account:deposit(deposit2)
print(account:getBalance())

-- İkinci para çekme işlemini dene ve bakiyeyi yazdır
account:withdraw(withdrawal2)
print(account:getBalance())

-- Üçüncü para çekme işlemini dene ve bakiyeyi yazdır
account:withdraw(withdrawal3)
print(account:getBalance())

Object Oriented Programming bölümündeki tüm dersler