Menu
CoddyTech

Rangkuman: Pengelola Rekening Bank

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan GDScript di Coddy. Pelajaran 14 dari 65.

challenge icon

Tantangan

Sedang

Tulis class BankAccount di bank_account.gd. Class ini menyatukan semua hal dari bab ini.

  • Variabel int static interest_percent yang dimulai dari 2, digunakan bersama oleh semua akun
  • Dua property privat: _owner_name (sebuah String) dan _balance (sebuah int yang dimulai dari 0)
  • Property hanya-baca owner_name yang getter-nya mengembalikan _owner_name
  • Property balance yang getter-nya mengembalikan _balance dan setter-nya mencetak Balance cannot be negative jika nilainya negatif, dan jika tidak, menyimpan nilai tersebut di _balance
  • Konstruktor _init(account_owner, start_balance) menyimpan nama pemilik dan menetapkan start_balance ke balance, sehingga setter memeriksanya

Berikut method-nya:

  • deposit(amount): mencetak Deposit amount must be positive dan mengembalikan false jika amount bernilai 0 atau kurang; jika tidak, menambahkannya dan mengembalikan true
  • withdraw(amount): mencetak Withdrawal amount must be positive dan mengembalikan false jika amount bernilai 0 atau kurang, mencetak Insufficient funds dan mengembalikan false jika nilainya lebih besar daripada saldo, jika tidak, menguranginya dan mengembalikan true
  • apply_interest(): menambahkan _balance * interest_percent / 100 (dalam dolar utuh) ke saldo dan mengembalikan bunga tersebut
  • display_info(): mencetak tiga baris, Account Owner: NAME, Balance: $BALANCE dan Interest Rate: PERCENT%

Kode yang disediakan membaca owner start_balance, jumlah perintah berikutnya, dan perintah deposit N, withdraw N, set N (menetapkan balance), interest, rate N (menetapkan BankAccount.interest_percent) dan info. Kode ini mencetak satu baris untuk setiap deposit, penarikan, dan pembayaran bunga yang berhasil, serta saldo pemilik di akhir. Untuk Coddy 1000 dan perintah deposit 500, withdraw 200, interest, info, set 5000 dan withdraw 10000, kode ini mencetak:

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

Kodemu ditulis di bank_account.gd. main.gd berisi kode input/output yang disediakan dan tidak dapat diedit.

Coba sendiri

extends Node

func _ready():
	# Kode input/output yang disediakan: biarkan apa adanya
	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])

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler GDScript online