Menu
Coddy logo textTech

Final Banka Testi

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

challenge icon

Görev

Kolay

Tam bir Dijital Banka sistemi oluşturduğun için tebrikler! Account sınıfın artık para yatırma, para çekme, bakiye kontrolü, hesap tanımlama ve hesaplar arası transfer işlemlerini gerçekleştiriyor. Şimdi gerçekçi, birden fazla hesap içeren bir bankacılık senaryosuyla hepsini test edelim.

Bu son görevde, çeşitli işlemler gerçekleştiren üç müşterisi olan küçük bir bankayı simüle edeceksin. Bu, tüm metotlarının birlikte doğru şekilde çalıştığını ve hesapların gerçekten birbirinden bağımsız durumlarını koruduğunu doğrulayacak.

İki dosyan:

  • Account.lua: Bu proje boyunca oluşturduğun tüm işlevlere sahip eksiksiz Account sınıfın (ID içeren oluşturucu, deposit, withdraw, getBalance, __tostring ve transfer).
  • main.lua: Birden fazla hesap oluşturan ve bunlar arasında bir dizi işlem gerçekleştiren simülasyon betiği.

Altı girdi alacaksın:

  1. Hesap 1 ID'si
  2. Hesap 2 ID'si
  3. Hesap 3 ID'si
  4. Hesap 1 için başlangıç yatırma tutarı
  5. Hesap 2 için başlangıç yatırma tutarı
  6. Hesap 3 için başlangıç yatırma tutarı

main dosyanda aşağıdaki bankacılık gününü simüle et:

  1. Verilen ID'lerle üç hesap oluştur
  2. Başlangıç tutarlarını ilgili hesapların her birine yatır
  3. Hesap 1, Hesap 2'ye 100 transfer eder
  4. Hesap 2, Hesap 3'e 150 transfer eder
  5. Hesap 3, Hesap 1'e 50 transfer eder
  6. Hesap 1, Hesap 3'e 1000 transfer etmeyi dener (bu başarısız olmalı)
  7. Üç hesabı sırayla yazdır (önce Hesap 1, sonra 2, ardından 3)

Örneğin girdiler A001, A002, A003, 500, 300 ve 200 ise çıktı şöyle olmalıdır:

Insufficient funds
Account [A001]: Balance = 450
Account [A002]: Balance = 250
Account [A003]: Balance = 300

Adım adım inceleyelim: Hesap 1, 500 ile başlar ve Hesap 2'ye 100 transfer eder (şimdi 400), ardından Hesap 3'ten 50 alır (şimdi 450). Hesap 2, 300 ile başlar, 100 alır (şimdi 400) ve Hesap 3'e 150 transfer eder (şimdi 250). Hesap 3, 200 ile başlar, 150 alır (şimdi 350) ve Hesap 1'e 50 transfer eder (şimdi 300). Hesap 1'in yalnızca 450'si olduğu için 1000 tutarındaki son transfer başarısız olur.

Kendin dene

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

-- Altı girişi oku
local id1 = io.read()
local id2 = io.read()
local id3 = io.read()
local initialDeposit1 = tonumber(io.read())
local initialDeposit2 = tonumber(io.read())
local initialDeposit3 = tonumber(io.read())

-- Kimliklerle üç hesap oluştur
-- YAPILACAK: Account:new() kullanarak account1, account2, account3 oluşturun

-- Başlangıç tutarlarını ilgili her bir hesaba yatırın
-- YAPILACAK: initialDeposit1'i account1'e, initialDeposit2'yi account2'ye, initialDeposit3'ü account3'e yatırın

-- Hesap 1, Hesap 2'ye 100 transfer eder
-- YAPILACAK: account1:transfer(account2, 100)

-- Hesap 2, Hesap 3'e 150 transfer eder
-- YAPILACAK: account2:transfer(account3, 150)

-- Hesap 3, Hesap 1'e 50 transfer eder
-- YAPILACAK: account3:transfer(account1, 50)

-- Hesap 1, Hesap 3'e 1000 transfer etmeye çalışır (bu başarısız olmalı)
-- YAPILACAK: account1:transfer(account3, 1000)

-- Üç hesabı da sırasıyla yazdırın
-- YAPILACAK: account1, account2, account3 yazdırın

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

Kendi başına pratik yap: Online Lua derleyicisi