Menu
CoddyTech

Tekrar - Banka Hesabı Yöneticisi

Coddy'nin GDScript Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 14 / 65.

challenge icon

Görev

Orta

bank_account.gd dosyasında BankAccount sınıfını yaz. Bu sınıf, bu bölümdeki her şeyi bir araya getiriyor.

  • Tüm hesaplar arasında paylaşılan ve başlangıç değeri 2 olan statik bir int değişkeni: interest_percent
  • İki özel özellik: _owner_name (bir String) ve başlangıç değeri 0 olan bir int olan _balance
  • Getter'ı _owner_name değerini döndüren salt okunur bir özellik: owner_name
  • Getter'ı _balance değerini döndüren ve negatif bir değer için Balance cannot be negative yazdıran, aksi takdirde değeri _balance içinde saklayan bir özellik: balance
  • _init(account_owner, start_balance) kurucusu, hesap sahibini saklar ve start_balance değerini balance'a atar; böylece setter bu değeri denetler

Bir de şu metotlar:

  • deposit(amount): amount değeri 0 veya daha küçük olduğunda Deposit amount must be positive yazdırır ve false döndürür; aksi takdirde tutarı ekler ve true döndürür
  • withdraw(amount): amount değeri 0 veya daha küçük olduğunda Withdrawal amount must be positive yazdırır ve false döndürür; bakiyeden büyük olduğunda Insufficient funds yazdırır ve false döndürür; aksi takdirde tutarı çıkarır ve true döndürür
  • apply_interest(): bakiyeye _balance * interest_percent / 100 değerini (tam dolar olarak) ekler ve bu faizi döndürür
  • display_info(): üç satır yazdırır: Account Owner: NAME, Balance: $BALANCE ve Interest Rate: PERCENT%

Sağlanan kod; owner start_balance değerlerini, ardından kaç komut geleceğini ve deposit N, withdraw N, set N (balance değerini atar), interest, rate N (BankAccount.interest_percent değerini ayarlar) ve info komutlarını okur. Başarılı her para yatırma, para çekme ve faiz ödemesi için bir satır, en sonda da hesap sahibinin bakiyesini yazdırır. Coddy 1000 ve deposit 500, withdraw 200, interest, info, set 5000 ve withdraw 10000 komutları için şu çıktıyı verir:

Deposited $500
Withdrew $200
Interest earned: $26
Account Owner: Coddy
Balance: $1326
Interest Rate: 2%
Insufficient funds
Coddy has $5000

Kodunu bank_account.gd dosyasına yaz. main.gd dosyası, sağlanan girdi/çıktı kodunu içerir ve düzenlenemez.

Kendin dene

extends Node

func _ready():
	# Sağlanan giriş/çıkış kodu: olduğu gibi bırakın
	var first := OS.read_string_from_stdin().split(" ")
	var account := BankAccount.new(first[0], int(first[1]))
	var count := int(OS.read_string_from_stdin())
	for i in count:
		var parts := OS.read_string_from_stdin().split(" ")
		match parts[0]:
			"deposit":
				if account.deposit(int(parts[1])):
					print("Deposited $%s" % parts[1])
			"withdraw":
				if account.withdraw(int(parts[1])):
					print("Withdrew $%s" % parts[1])
			"set":
				account.balance = int(parts[1])
			"interest":
				print("Interest earned: $%d" % account.apply_interest())
			"rate":
				BankAccount.interest_percent = int(parts[1])
			"info":
				account.display_info()
	print("%s has $%d" % [account.owner_name, account.balance])

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

Kendi başına pratik yap: Online GDScript derleyicisi