Menu
Coddy logo textTech

Bakiye Sorgulama

Coddy'nin Lua Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 22 / 70.

challenge icon

Görev

Kolay

Dijital Bankanız gerçekten şekillenmeye başladı! Hesaplar artık para yatırma işlemlerini kabul edebiliyor ve uygun bakiye kontrolüyle para çekme işlemlerini gerçekleştirebiliyor. Şimdi bakiyeyi almak için bir getter yöntemi 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() yöntemi ekleyin. Bu, daha önce öğrendiğiniz getter desenini izler: 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 yöntemleri) koruyun.
  • main.lua: Bir hesap oluşturun ve para yatırma, para çekme ve bakiye kontrollerinin gerçek bir senaryoda birlikte nasıl çalıştığını göstermek için bir dizi bankacılık işlemi gerçekleştirin.

Beş girdi alacaksınız:

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

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

  1. İlk miktarı yatırın, ardından :getBalance() kullanarak bakiyeyi yazdırın
  2. İlk miktarı çekin, ardından bakiyeyi yazdırın
  3. İkinci miktarı yatırın, ardından bakiyeyi yazdırın
  4. İkinci miktarı ç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, bakiyeyi yazdırmadan önce Insufficient funds yazdıracağını unutmayın.

Örneğin girdiler 200, 50, 100, 180 ve 100 ise çıktı şöyle 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, bir para yatırma işleminden sonra 250'ye yükselir, 180 çekildikten sonra 70'e düşer ve yetersiz bakiye nedeniyle son 100'lük para çekme işlemi başarısız olduğunda 70'te kalır.

Kendin dene

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

-- Beş girdiyi 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ıç miktarı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 miktarı 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())

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online Lua derleyicisi