Özet - Banka Hesabı Yöneticisi
Coddy'nin C# Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 18 / 70.
Görev
KolaySınıf mimarisi hakkında öğrendiğin her şeyi bir araya getiren eksiksiz bir banka hesabı yönetim sistemi oluşturalım. Örnek verileri (her hesaba özgü) ve statik verileri (tüm hesaplar arasında paylaşılan) doğru şekilde birbirinden ayıran ve hesapların geçerli durumlarda kalmasını sağlamak için doğrulama kullanan bir BankAccount sınıfı oluşturacaksın.
Kodunu düzenlemek için iki dosya oluşturacaksın:
BankAccount.cs:BankAccountad alanında birBankingsınıfı tanımla. Hesabın şunları içermelidir:constdeğerine ayarlanmış birMinimumBalancealanı olan100— tüm hesapların koruması gereken minimum bakiyestaticdeğeriyle başlayan ve tüm hesaplar arasında paylaşılan birInterestRatealan olan0.03m(decimal)- Kaç hesabın var olduğunu takip eden bir
staticalan olanTotalAccounts(int) - Oluşturma sırasında bir kez ayarlanan ve hiçbir zaman değiştirilmeyen bir
readonlyalan olanAccountNumber(string) - Ayarlandığında boşlukları kırpan bir
_ownerNameözelliğine sahip özel birOwnerNamedestek alanı - Bakiyenin
_balancedeğerinin altına düşmesini engelleyen birBalanceözelliğine sahip özel birMinimumBalancedestek alanı (birisi daha düşük bir değer ayarlamaya çalışırsa, değeriMinimumBalanceolarak koru) - Hesap numarasını, hesap sahibinin adını ve başlangıç bakiyesini kabul eden ve
TotalAccountsdeğerini artıran bir kurucu - Paylaşılan faiz oranını güncellemek için bir statik
SetInterestRate(decimal rate)metodu - Bakiye ile faiz oranının çarpımını döndüren bir
CalculateInterest()metodu
Program.cs: Ana dosyanda, girdi değerlerini kullanarak iki banka hesabı oluştur, faiz oranını güncelle ve paylaşılan banka verileriyle birlikte hesap bilgilerini görüntüle.
Yedi girdi alacaksın:
- İlk hesap numarası
- İlk hesap sahibinin adı
- İlk başlangıç bakiyesi
- İkinci hesap numarası
- İkinci hesap sahibinin adı
- İkinci başlangıç bakiyesi
- Yeni faiz oranı (
0.05gibi bir ondalık sayı)
Çıktıyı şu biçimde yazdır:
--- 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}Örneğin girdiler ACC001, Alice Smith , 500, ACC002, Bob Jones, 50 ve 0.05 ise çıktı şu şekilde olmalıdır:
--- 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.0Alice'in adındaki fazladan boşlukların nasıl kırpıldığına ve Bob'un 50 olan bakiyesinin minimum 100 değerine yükseltildiğine dikkat et. Faiz, hesaplar oluşturulduktan sonra ayarlanan güncellenmiş 0.05 oranı kullanılarak hesaplanır.
Kendin dene
using System;
using Banking;
class Program
{
public static void Main(string[] args)
{
// İlk hesap için girişleri oku
string accountNumber1 = Console.ReadLine();
string ownerName1 = Console.ReadLine();
decimal balance1 = Convert.ToDecimal(Console.ReadLine());
// İkinci hesap için girişleri oku
string accountNumber2 = Console.ReadLine();
string ownerName2 = Console.ReadLine();
decimal balance2 = Convert.ToDecimal(Console.ReadLine());
// Yeni faiz oranını oku
decimal newRate = Convert.ToDecimal(Console.ReadLine());
// TODO: Giriş değerlerini kullanarak iki BankAccount nesnesi oluşturun
// TODO: Statik yöntemi kullanarak faiz oranını güncelleyin
// TODO: Banka özetini istenen formatta yazdırın
// --- Bank Summary ---
// Interest Rate: {InterestRate}
// Minimum Balance: {MinimumBalance}
// Total Accounts: {TotalAccounts}
// (boş satır)
// Account: {AccountNumber}
// Owner: {OwnerName}
// Balance: {Balance}
// Interest Earned: {interest}
// (boş satır)
// Account: {AccountNumber}
// Owner: {OwnerName}
// Balance: {Balance}
// Interest Earned: {interest}
}
}
Nesne Yönelimli Programlama bölümündeki tüm dersler
1OOP Temelleri
Harici Dosyalarİsim Alanları ve YönergelerSınıf ve Nesnelere Giriş'this' Anahtar KelimesiMetotlar ve ParametrelerAlanlar ve ÖzelliklerYapıcı MetotlarNesne BaşlatıcılarÖzet - Basit Hesap Makinesi4Kalıtım
Temel Kalıtım (:) Sözdizimi'base' Anahtar KelimesiVirtual ve Override Anahtar KelimeleriSealed Sınıflar'object' Temel SınıfıÖzet - Çalışan Hiyerarşisi7İleri Düzey Özellikler
Operatör Aşırı Yüklemeİndeksleyiciler (this[])ToString() Geçersiz KılmaGenişletme MetotlarıÖzet - Özel Liste10Tasarım Kalıpları Bölüm 1
Tasarım Kalıplarına GirişThread-Safe SingletonFactory KalıbıObserver Kalıbı (Olaylar)Strategy Kalıbı2Özellikler ve Statik Üyeler
Otomatik Uygulanan ÖzelliklerSadece Okunur/Yazılır ÖzelliklerStatik Alanlar ve MetotlarStatik Sınıflarİfade Gövdeli Üyeler5Polimorfizm ve Arayüzler
Derleme vs Çalışma Zamanı PolimorfizmiArayüz vs Soyut SınıfÇoklu ArayüzlerBelirgin ArayüzlerUpcasting ve DowncastingÖzet - Şekil Hesaplayıcı8İleri Düzey OOP Kavramları
Kalıtım yerine KompozisyonGenerics (Sınıflar ve Metotlar)Delegates ve EventlerAttributes ve ReflectionIDisposable ve using İfadesiDependency Injection Temelleri11Tasarım Kalıpları Bölüm 2
Komut KalıbıAdaptör KalıbıDekoratör KalıbıŞablon Metot KalıbıDurum KalıbıKompozit Kalıbı3Sınıf Mimarisi
Örnek vs Statik Veri'readonly' ve 'const' Anahtar KelimeleriDestekleyici Alanlar (Backing Fields)Özet - Banka Hesabı Yöneticisi6Kapsülleme
Erişim BelirleyicilerKapsülleme için ÖzelliklerVeri Gizleme UygulamasıDeğişmezlik KalıplarıÖzet - Öğrenci KayıtlarıKendi başına pratik yap: Online C# derleyicisi