Menu
Coddy logo textTech

Riepilogo - Gestore di conti bancari

Fa parte della sezione Programmazione orientata agli oggetti del percorso C# di Coddy. Lezione 18 di 70.

challenge icon

Sfida

Facile

Costruiamo un sistema completo di gestione dei conti bancari che riunisce tutto ciò che hai imparato sull'architettura delle classi. Creerai una classe BankAccount che distingue correttamente tra dati di istanza (unici per ogni conto) e dati statici (condivisi da tutti i conti), usando al contempo la convalida per mantenere i conti in uno stato valido.

Creerai due file per organizzare il tuo codice:

  • BankAccount.cs: definisci una classe BankAccount nello spazio dei nomi Banking. Il tuo conto deve includere:
    • Un campo const MinimumBalance impostato su 100 - il saldo minimo che tutti i conti devono mantenere
    • Un campo static InterestRate (decimal) che inizia da 0.03m - condiviso da tutti i conti
    • Un campo static TotalAccounts (int) che tiene traccia del numero di conti esistenti
    • Un campo readonly AccountNumber (string) - impostato una sola volta durante la creazione e mai modificato
    • Un campo di supporto privato _ownerName con una proprietà OwnerName che rimuove gli spazi vuoti quando viene impostata
    • Un campo di supporto privato _balance con una proprietà Balance che impedisce al saldo di scendere sotto MinimumBalance (se qualcuno prova a impostarlo a un valore inferiore, mantienilo a MinimumBalance)
    • Un costruttore che accetta il numero del conto, il nome del titolare e il saldo iniziale, e incrementa TotalAccounts
    • Un metodo statico SetInterestRate(decimal rate) per aggiornare il tasso d'interesse condiviso
    • Un metodo CalculateInterest() che restituisce il saldo moltiplicato per il tasso d'interesse
  • Program.cs: nel tuo file principale, crea due conti bancari usando i valori di input, aggiorna il tasso d'interesse e visualizza le informazioni sui conti insieme ai dati bancari condivisi.

Riceverai sette input:

  • Numero del primo conto
  • Nome del titolare del primo conto
  • Saldo iniziale del primo conto
  • Numero del secondo conto
  • Nome del titolare del secondo conto
  • Saldo iniziale del secondo conto
  • Nuovo tasso d'interesse (come numero decimale, ad esempio 0.05)

Stampa l'output in questo formato:

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

Per esempio, se gli input sono ACC001, Alice Smith , 500, ACC002, Bob Jones, 50 e 0.05, l'output dovrebbe essere:

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

Nota come gli spazi extra nel nome di Alice vengano rimossi e come il saldo di Bob, pari a 50, venga portato al minimo di 100. L'interesse viene calcolato usando il tasso aggiornato di 0.05, impostato dopo la creazione dei conti.

Provalo tu

using System;
using Banking;

class Program
{
    public static void Main(string[] args)
    {
        // Leggi i dati per il primo conto
        string accountNumber1 = Console.ReadLine();
        string ownerName1 = Console.ReadLine();
        decimal balance1 = Convert.ToDecimal(Console.ReadLine());
        
        // Leggi i dati per il secondo conto
        string accountNumber2 = Console.ReadLine();
        string ownerName2 = Console.ReadLine();
        decimal balance2 = Convert.ToDecimal(Console.ReadLine());
        
        // Leggi il nuovo tasso di interesse
        decimal newRate = Convert.ToDecimal(Console.ReadLine());
        
        // TODO: Crea due oggetti BankAccount usando i valori inseriti
        
        // TODO: Aggiorna il tasso di interesse usando il metodo statico
        
        // TODO: Stampa il riepilogo bancario nel formato richiesto
        // --- Bank Summary ---
        // Interest Rate: {InterestRate}
        // Minimum Balance: {MinimumBalance}
        // Total Accounts: {TotalAccounts}
        // (riga vuota)
        // Conto: {AccountNumber}
        // Intestatario: {OwnerName}
        // Saldo: {Balance}
        // Interest Earned: {interest}
        // (riga vuota)
        // Conto: {AccountNumber}
        // Intestatario: {OwnerName}
        // Saldo: {Balance}
        // Interest Earned: {interest}
    }
}

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore C# online