Menu
CoddyTech

Riepilogo - Gestore di conti bancari

Fa parte della sezione Programmazione orientata agli oggetti del percorso GDScript di Coddy. Lezione 14 di 65.

challenge icon

Sfida

Medio

Scrivi la classe BankAccount in bank_account.gd. Riunisce tutto ciò che hai imparato in questo capitolo.

  • Una variabile int statica interest_percent che inizia da 2, condivisa da tutti i conti
  • Due proprietà private: _owner_name (una String) e _balance (un int che inizia da 0)
  • Una proprietà di sola lettura owner_name il cui getter restituisce _owner_name
  • Una proprietà balance il cui getter restituisce _balance e il cui setter stampa Balance cannot be negative per un valore negativo e altrimenti memorizza il valore in _balance
  • Il costruttore _init(account_owner, start_balance) memorizza il titolare e assegna start_balance a balance, così il setter lo controlla

E questi metodi:

  • deposit(amount): stampa Deposit amount must be positive e restituisce false quando amount è 0 o inferiore; altrimenti lo aggiunge e restituisce true
  • withdraw(amount): stampa Withdrawal amount must be positive e restituisce false quando amount è 0 o inferiore; stampa Insufficient funds e restituisce false quando è maggiore del saldo; altrimenti lo sottrae e restituisce true
  • apply_interest(): aggiunge _balance * interest_percent / 100 (in dollari interi) al saldo e restituisce gli interessi
  • display_info(): stampa tre righe, Account Owner: NAME, Balance: $BALANCE e Interest Rate: PERCENT%

Il codice fornito legge owner start_balance, il numero di comandi successivi e i comandi deposit N, withdraw N, set N (assegna balance), interest, rate N (imposta BankAccount.interest_percent) e info. Stampa una riga per ogni deposito, prelievo e pagamento di interessi riuscito, e il saldo del titolare alla fine. Per Coddy 1000 e i comandi deposit 500, withdraw 200, interest, info, set 5000 e withdraw 10000 stampa:

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

Inserisci il tuo codice in bank_account.gd. main.gd contiene il codice fornito per l'input/output e non può essere modificato.

Provalo tu

extends Node

func _ready():
	# Codice di input/output fornito: lascialo così com'è
	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])

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore GDScript online