Menu
Coddy logo textTech

Powtórzenie — menedżer kont bankowych

Część sekcji Programowanie obiektowe ścieżki C# w Coddy. Lekcja 18 z 70.

challenge icon

Wyzwanie

Łatwy

Zbudujmy kompletny system zarządzania kontami bankowymi, który łączy wszystko, czego nauczyłeś się o architekturze klas. Utworzysz klasę BankAccount, która prawidłowo rozróżnia dane instancji (unikalne dla każdego konta) i dane statyczne (współdzielone przez wszystkie konta), a jednocześnie używa walidacji, aby konta zawsze znajdowały się w prawidłowym stanie.

Utworzysz dwa pliki, aby uporządkować swój kod:

  • BankAccount.cs: Zdefiniuj klasę BankAccount w przestrzeni nazw Banking. Twoje konto powinno zawierać:
    • Pole const MinimumBalance ustawione na 100 — minimalne saldo, które muszą utrzymywać wszystkie konta
    • Pole static InterestRate (decimal), którego początkowa wartość to 0.03m — współdzielone przez wszystkie konta
    • Pole static TotalAccounts (int), które śledzi liczbę istniejących kont
    • Pole readonly AccountNumber (string) — ustawiane raz podczas tworzenia i nigdy później niezmieniane
    • Prywatne pole zapasowe _ownerName z właściwością OwnerName, która usuwa białe znaki podczas ustawiania wartości
    • Prywatne pole zapasowe _balance z właściwością Balance, która nie pozwala, aby saldo spadło poniżej MinimumBalance (jeśli ktoś spróbuje ustawić niższą wartość, saldo pozostanie równe MinimumBalance)
    • Konstruktor przyjmujący numer konta, imię i nazwisko właściciela oraz saldo początkowe, który zwiększa TotalAccounts
    • Metodę statyczną SetInterestRate(decimal rate) do aktualizowania współdzielonej stopy procentowej
    • Metodę CalculateInterest(), która zwraca saldo pomnożone przez stopę procentową
  • Program.cs: W głównym pliku utwórz dwa konta bankowe na podstawie wartości wejściowych, zaktualizuj stopę procentową i wyświetl informacje o kontach wraz ze współdzielonymi danymi banku.

Otrzymasz siedem danych wejściowych:

  • Numer pierwszego konta
  • Imię i nazwisko właściciela pierwszego konta
  • Saldo początkowe pierwszego konta
  • Numer drugiego konta
  • Imię i nazwisko właściciela drugiego konta
  • Saldo początkowe drugiego konta
  • Nowa stopa procentowa (jako liczba dziesiętna, np. 0.05)

Wypisz wynik w następującym formacie:

--- 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}

Na przykład, jeśli danymi wejściowymi są ACC001, Alice Smith , 500, ACC002, Bob Jones, 50 i 0.05, wynikiem powinno być:

--- 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.0

Zwróć uwagę, że nadmiarowe spacje w imieniu i nazwisku Alice zostają usunięte, a saldo Boba wynoszące 50 zostaje podniesione do minimalnej wartości 100. Odsetki są obliczane z użyciem zaktualizowanej stopy procentowej 0.05, ustawionej po utworzeniu kont.

Spróbuj swoich sił

using System;
using Banking;

class Program
{
    public static void Main(string[] args)
    {
        // Wczytaj dane pierwszego konta
        string accountNumber1 = Console.ReadLine();
        string ownerName1 = Console.ReadLine();
        decimal balance1 = Convert.ToDecimal(Console.ReadLine());
        
        // Wczytaj dane drugiego konta
        string accountNumber2 = Console.ReadLine();
        string ownerName2 = Console.ReadLine();
        decimal balance2 = Convert.ToDecimal(Console.ReadLine());
        
        // Wczytaj nową stopę procentową
        decimal newRate = Convert.ToDecimal(Console.ReadLine());
        
        // TODO: Utwórz dwa obiekty BankAccount na podstawie wczytanych danych
        
        // TODO: Zaktualizuj stopę procentową za pomocą metody statycznej
        
        // TODO: Wyświetl podsumowanie banku w wymaganym formacie
        // --- Bank Summary ---
        // Interest Rate: {InterestRate}
        // Minimum Balance: {MinimumBalance}
        // Total Accounts: {TotalAccounts}
        // (pusta linia)
        // Konto: {AccountNumber}
        // Właściciel: {OwnerName}
        // Saldo: {Balance}
        // Interest Earned: {interest}
        // (pusta linia)
        // Konto: {AccountNumber}
        // Właściciel: {OwnerName}
        // Saldo: {Balance}
        // Interest Earned: {interest}
    }
}

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator C# online