Menu
Coddy logo textTech

Final Banka Testi

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

challenge icon

Görev

Kolay

Eksiksiz bir Dijital Banka sistemi oluşturduğunuz için tebrikler! Account sınıfınız artık para yatırma, para çekme, bakiye kontrolleri, hesap tanımlama ve hesaplar arası transfer işlemlerini gerçekleştirebiliyor. Şimdi hepsini gerçekçi bir çoklu hesap bankacılık senaryosu ile test edelim.

Bu son görevde, çeşitli işlemler yapan üç müşterili küçük bir bankayı simüle edeceksiniz. Bu, tüm metotlarınızın birlikte doğru çalışıp çalışmadığını ve hesapların gerçekten bağımsız durumlarını koruyup korumadığını doğrulayacaktır.

İki dosyanız:

  • Account.lua: Bu proje boyunca oluşturduğunuz tüm işlevlere (ID içeren yapıcı, deposit, withdraw, getBalance, __tostring ve transfer) sahip eksiksiz Account sınıfınız.
  • main.lua: Birden fazla hesap oluşturan ve aralarında bir dizi işlem yürüten bir simülasyon betiği.

Altı adet girdi alacaksınız:

  1. Hesap 1 ID
  2. Hesap 2 ID
  3. Hesap 3 ID
  4. Hesap 1 için başlangıç yatırımı
  5. Hesap 2 için başlangıç yatırımı
  6. Hesap 3 için başlangıç yatırımı

Ana dosyanızda, aşağıdaki bankacılık gününü simüle edin:

  1. Verilen ID'lerle üç hesap oluşturun
  2. Başlangıç tutarlarını ilgili her bir hesaba yatırın
  3. Hesap 1, Hesap 2'ye 100 transfer eder
  4. Hesap 2, Hesap 3'e 150 transfer eder
  5. Hesap 3, Hesap 1'ye 50 transfer eder
  6. Hesap 1, Hesap 3'e 1000 transfer etmeye çalışır (bu başarısız olmalıdır)
  7. Üç hesabı da sırasıyla yazdırın (Hesap 1, sonra 2, sonra 3)

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

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

Süreci takip edelim: Hesap 1 500 ile başlar, 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), Hesap 3'e 150 transfer eder (şimdi 250). Hesap 3 200 ile başlar, 150 alır (şimdi 350), Hesap 1'e 50 transfer eder (şimdi 300). 1000 tutarındaki son transfer başarısız olur çünkü Hesap 1'in sadece 450'si vardır.

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

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