Ö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ğiniz her şeyi bir araya getiren eksiksiz bir banka hesabı yönetim sistemi oluşturalım. Örnek verilerini (her hesaba özgü) ve statik verileri (tüm hesaplar arasında paylaşılan) düzgün bir şekilde ayıran, aynı zamanda hesapları geçerli durumlarda tutmak için doğrulama kullanan bir BankAccount sınıfı oluşturacaksınız.
Kodunuzu düzenlemek için iki dosya oluşturacaksınız:
BankAccount.cs:Bankingad alanı (namespace) içinde birBankAccountsınıfı tanımlayın. Hesabınız şunları içermelidir:100değerine ayarlanmış birconstalanMinimumBalance- tüm hesapların koruması gereken minimum bakiye0.03mile başlayan birstaticalanInterestRate(decimal) - tüm hesaplar arasında paylaşılan- Kaç tane hesap olduğunu takip eden bir
staticalanTotalAccounts(int) - Bir
readonlyalanAccountNumber(string) - oluşturma sırasında bir kez ayarlanır ve asla değiştirilmez - Ayarlanırken boşlukları kırpan (trim) bir
OwnerNameözelliği ile birlikte özel bir yedekleme alanı (backing field)_ownerName - Bakiyenin
MinimumBalancealtına düşmesini engelleyen birBalanceözelliği ile birlikte özel bir yedekleme alanı_balance(eğer birisi daha düşük ayarlamaya çalışırsa,MinimumBalancedeğerinde tutun) - Hesap numarası, sahip adı ve başlangıç bakiyesini kabul eden ve
TotalAccountsdeğerini artıran bir yapıcı metot (constructor) - Paylaşılan faiz oranını güncellemek için statik bir metot
SetInterestRate(decimal rate) - Bakiyenin faiz oranıyla çarpımını döndüren bir metot
CalculateInterest()
Program.cs: Ana dosyanızda, giriş değerlerini kullanarak iki banka hesabı oluşturun, faiz oranını güncelleyin ve paylaşılan banka verileriyle birlikte hesap bilgilerini görüntüleyin.
Yedi giriş alacaksınız:
- Birinci hesap numarası
- Birinci sahip adı
- Birinci başlangıç bakiyesi
- İkinci hesap numarası
- İkinci sahip adı
- İkinci başlangıç bakiyesi
- Yeni faiz oranı (
0.05gibi bir ondalık sayı olarak)
Çıktıyı şu formatta yazdırın:
--- 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, girişler ACC001, Alice Smith , 500, ACC002, Bob Jones, 50 ve 0.05 ise çıktı şöyle 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'e nasıl yükseltildiğine dikkat edin. 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ı