Ringkasan: Pengelola Rekening Bank
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan C# di Coddy. Pelajaran 18 dari 70.
Tantangan
MudahMari kita bangun sistem pengelolaan rekening bank lengkap yang menggabungkan semua yang telah kamu pelajari tentang arsitektur class. Kamu akan membuat class BankAccount yang membedakan dengan tepat antara data instance (unik untuk setiap rekening) dan data static (digunakan bersama oleh semua rekening), sambil menggunakan validasi agar rekening selalu berada dalam kondisi yang valid.
Kamu akan membuat dua file untuk mengatur kodemu:
BankAccount.cs: Definisikan classBankAccountdi namespaceBanking. Rekeningmu harus mencakup:- Field
constMinimumBalanceyang ditetapkan ke100, saldo minimum yang harus dipertahankan semua rekening - Field
staticInterestRate(decimal) yang dimulai dari0.03m, digunakan bersama oleh semua rekening - Field
staticTotalAccounts(int) yang melacak jumlah rekening yang ada - Field
readonlyAccountNumber(string), ditetapkan satu kali saat dibuat dan tidak pernah diubah - Field pendukung private
_ownerNamedengan propertyOwnerNameyang menghapus spasi kosong di awal dan akhir saat menetapkan nilai - Field pendukung private
_balancedengan propertyBalanceyang mencegah saldo turun di bawahMinimumBalance(jika seseorang mencoba menetapkannya lebih rendah, pertahankan nilainya diMinimumBalance) - Constructor yang menerima nomor rekening, nama pemilik, dan saldo awal, lalu menambah nilai
TotalAccounts - Method static
SetInterestRate(decimal rate)untuk memperbarui suku bunga yang digunakan bersama - Method
CalculateInterest()yang mengembalikan saldo dikalikan dengan suku bunga
- Field
Program.cs: Di file utama, buat dua rekening bank menggunakan nilai input, perbarui suku bunga, lalu tampilkan informasi rekening beserta data bank yang digunakan bersama.
Kamu akan menerima tujuh input:
- Nomor rekening pertama
- Nama pemilik pertama
- Saldo awal pertama
- Nomor rekening kedua
- Nama pemilik kedua
- Saldo awal kedua
- Suku bunga baru (dalam bentuk desimal seperti
0.05)
Cetak output dengan format ini:
--- Bank Summary ---
Interest Rate: {InterestRate}
Minimum Balance: {MinimumBalance}
Total Accounts: {TotalAccounts}
Account: {AccountNumber}
Owner: {OwnerName}
Balance: {Balance}
Interest Earned: {interest}
Account: {AccountNumber}
Owner: {OwnerName}
Balance: {Balance}
Interest Earned: {interest}Sebagai contoh, jika inputnya adalah ACC001, Alice Smith , 500, ACC002, Bob Jones, 50, dan 0.05, outputnya akan seperti ini:
--- Bank Summary ---
Interest Rate: 0.05
Minimum Balance: 100
Total Accounts: 2
Account: ACC001
Owner: Alice Smith
Balance: 500
Interest Earned: 25.0
Account: ACC002
Owner: Bob Jones
Balance: 100
Interest Earned: 5.0Perhatikan bahwa spasi berlebih pada nama Alice dihapus, dan saldo Bob sebesar 50 dinaikkan ke nilai minimum 100. Bunga dihitung menggunakan suku bunga terbaru sebesar 0.05 yang ditetapkan setelah rekening dibuat.
Coba sendiri
using System;
using Banking;
class Program
{
public static void Main(string[] args)
{
// Baca input untuk rekening pertama
string accountNumber1 = Console.ReadLine();
string ownerName1 = Console.ReadLine();
decimal balance1 = Convert.ToDecimal(Console.ReadLine());
// Baca input untuk rekening kedua
string accountNumber2 = Console.ReadLine();
string ownerName2 = Console.ReadLine();
decimal balance2 = Convert.ToDecimal(Console.ReadLine());
// Baca suku bunga baru
decimal newRate = Convert.ToDecimal(Console.ReadLine());
// TODO: Buat dua object BankAccount menggunakan nilai input
// TODO: Perbarui suku bunga menggunakan method statis
// TODO: Cetak ringkasan bank dalam format yang diminta
// --- Bank Summary ---
// Interest Rate: {InterestRate}
// Minimum Balance: {MinimumBalance}
// Total Accounts: {TotalAccounts}
// (baris kosong)
// Rekening: {AccountNumber}
// Pemilik: {OwnerName}
// Saldo: {Balance}
// Interest Earned: {interest}
// (baris kosong)
// Rekening: {AccountNumber}
// Pemilik: {OwnerName}
// Saldo: {Balance}
// Interest Earned: {interest}
}
}
Semua pelajaran di Pemrograman Berorientasi Objek
1Dasar-Dasar OOP
File EksternalNamespace & DirektifPengantar class & objectKata Kunci 'this'Method dan ParameterField vs PropertyKonstruktorInisialisasi objectRingkasan: Kalkulator Sederhana4Pewarisan
Sintaks Dasar Pewarisan (:)Kata Kunci 'base'Kata Kunci Virtual & OverrideClass SealedBase Class 'object'Rangkuman: Hierarki Karyawan7Fitur Lanjutan
Overloading OperatorIndexer (this[])Penimpaan ToString()Extension methodRingkasan: Custom list2Property & Anggota Statis
Property yang Diimplementasikan OtomatisProperty Hanya Baca dan Hanya TulisField dan method StatisClass StatisAnggota Berbentuk Ekspresi5Polimorfisme & Antarmuka
Polimorfisme saat kompilasi vs runtimeAntarmuka vs kelas abstrakBeberapa antarmukaAntarmuka eksplisitUpcasting & DowncastingRingkasan, Kalkulator Bentuk8Konsep OOP Lanjutan
Komposisi daripada PewarisanGenerics (class dan method)Delegate dan EventAtribut dan ReflectionIDisposable dan Pernyataan usingDasar-Dasar Dependency Injection11Pola Desain Bagian 2
Pola PerintahPola AdapterPola DecoratorPola Template MethodPola StatePola Composite3Arsitektur class
Data Instance vs StaticKata Kunci 'readonly' & 'const'Field PendukungRingkasan: Pengelola Rekening BankLatihan sendiri: Compiler C# online