static void Main(string[] args)
        {
            // Creazione di una banca
            Banca DB = new Banca("Deutsche Bank", "viale Principe Amedeo");

            // Creazione del primo intestatario e del suo relativo conto corrente (tradizionale)
            Intestatario  A  = new Intestatario("Mario", "Rossi", new DateTime(1990, 06, 19), "weudu8763", "via Roma", "3874636784");
            ContoCorrente AC = new ContoCorrente("IT00000001", 5000);

            // Aggiungiamo il conto alla lista di conti
            DB.AddConto(AC);
            // Stampa info intestatario e del relativo conto
            Console.WriteLine("Intestatario: " + A.getNome() + " " + A.getCognome() + "\nData di nascita: " + A.getDataNascita() + "\nAbita in via: " + A.getIndirizzo() + "\nNumero di telefono: " + A.getTelefono());
            Console.WriteLine("Stampa del saldo di " + A.getNome() + " " + A.getCognome() + ": " + AC.getSaldo());
            // Vengono effettuati un versamento e un prelievo con la relativa stampa aggiornata
            AC.AddMovimenti(new Versamento(100, new DateTime(2020, 03, 19), AC, null));
            AC.AddMovimenti(new Prelievo(300, new DateTime(2020, 04, 10), AC, null));
            Console.WriteLine("MOVIMENTI:");
            foreach (Movimento movimento in AC.getMovimenti())
            {
                movimento.Sommare();
                Console.Write(movimento.getImporto() + " euro" + " fatto nel: " + movimento.getDataOra() + " - saldo attuale: " + AC.getSaldo() + "\n");
            }
            Console.WriteLine("__________________________________________________________________________________________________\n");


            // Creazione del secondo intestatario
            Intestatario B = new Intestatario("Luigi", "Verdi", new DateTime(1990, 04, 26), "asdaf5678", "via Roma", "3981848734");
            // Creazione del suo conto corrente (tradizionale)
            ContoCorrente BC = new ContoCorrente("IT00000002", 2500);

            // Aggiunta del conto corrente alla lista di conti
            DB.AddConto(BC);
            // Stampa delle info del proprietario e del relativo conto
            Console.WriteLine("Intestatario: " + B.getNome() + " " + B.getCognome() + "\nData di nascita: " + B.getDataNascita() + "\nAbita in via: " + B.getIndirizzo() + "\nNumero di telefono: " + B.getTelefono());
            Console.WriteLine("Stampa del saldo di " + B.getNome() + " " + B.getCognome() + ": " + BC.getSaldo());
            // Vengono effettutati dei movimenti di prova come il versamento, il prelievo e il bonifico
            BC.AddMovimenti(new Versamento(300, new DateTime(2020, 05, 30), BC, null));
            BC.AddMovimenti(new Prelievo(100, new DateTime(2020, 07, 21), BC, null));
            BC.AddMovimenti(new Bonifico(AC, 50, -200, new DateTime(2020, 06, 06), BC, null));
            // Stampa dei movimenti effettuati
            Console.WriteLine("MOVIMENTI:");
            foreach (Movimento movimento in BC.getMovimenti())
            {
                movimento.Sommare();
                Console.Write(movimento.getImporto() + " euro " + "fatto nel: " + movimento.getDataOra() + " - saldo attuale: " + BC.getSaldo() + "\n");
            }
            Console.WriteLine("__________________________________________________________________________________________________\n");

            //Creazione di un nuovo intestatario online e del suo relativo conto online, aggiungendolo alla lista dei conti
            Intestatario C  = new Intestatario("Antonio", "Peroni", new DateTime(1968, 09, 09), "udhwoiud83", "via Lazio", "38648374683");
            ContoOnline  CC = new ContoOnline("Anto384", "vero4666", "IT00000003", 10000);

            DB.AddConto(CC);
            Console.WriteLine("Intestatario: " + C.getNome() + " " + C.getCognome() + "\nData di nascita: " + C.getDataNascita() + "\nAbita in via: " + C.getIndirizzo() + "\nNumero di telefono: " + C.getTelefono());
            Console.WriteLine("Stampa del saldo di " + C.getNome() + " " + C.getCognome() + ": " + CC.getSaldo());
            //Vengono effettuati dei movimenti, aggiunti poi alla lista dei movimenti
            CC.AddMovimenti(new Versamento(1000, new DateTime(2020, 01, 07), null, CC));
            CC.AddMovimenti(new Prelievo(600, new DateTime(2020, 09, 25), null, CC));
            // Stampa dei movimenti effettuati
            Console.WriteLine("MOVIMENTI:");
            foreach (Movimento movimento in CC.getMovimenti())
            {
                movimento.SommareOnline();
                Console.Write(movimento.getImporto() + " euro " + "fatto nel: " + movimento.getDataOra() + " - saldo: " + CC.getSaldo() + "\n");
            }
            Console.WriteLine("__________________________________________________________________________________________________\n");

            Console.ReadLine();
        }
        static void Main(string[] args)
        {
            Banca DB = new Banca("Deutsche Bank", "viale Principe Amedeo");


            Console.WriteLine("Benvenuto alla Deutsche Bank. Crea un profilo per usufruire dei nostri servizi.");
            Console.WriteLine("Nome : ");
            string nome = Convert.ToString(Console.ReadLine());

            Console.WriteLine("Cognome : ");
            string cognome = Convert.ToString(Console.ReadLine());

            Console.WriteLine("Codice Fiscale : ");
            string codiceFiscale = Convert.ToString(Console.ReadLine());

            Console.WriteLine("Indirizzo : ");
            string indirizzo = Convert.ToString(Console.ReadLine());

            Console.WriteLine("Numero di Cellulare : ");
            string telefono = Convert.ToString(Console.ReadLine());


            Intestatario A = new Intestatario(nome, cognome, codiceFiscale, indirizzo, telefono);

            Console.WriteLine("Buongiorno " + nome + " " + cognome + ". Inserisca i dati del suo conto.");

            Console.WriteLine("Iban :");
            string iban = Convert.ToString(Console.ReadLine());

            Console.WriteLine("Saldo :");
            double saldo = Convert.ToDouble(Console.ReadLine());

            ContoCorrente AC = new ContoCorrente(iban, saldo);

            double   importo = 0;
            int      minMov  = 0;
            double   tassa   = 0.50;
            int      maxMov  = 50;
            int      scelta;
            DateTime dataMov = DateTime.Today;

            DB.AddConto(AC);
            Console.WriteLine("Intestatario: " + A.getNome() + " " + A.getCognome() + "\nAbita in via: " + A.getIndirizzo() + "\nNumero di telefono: " + A.getTelefono());
            Console.WriteLine("Stampa del saldo di " + A.getNome() + " " + A.getCognome() + ": " + AC.getSaldo());

            Console.WriteLine("Benvenuto. Che cosa vuole fare?");

            do
            {
                Console.WriteLine("1)Prelievo");
                Console.WriteLine("2)Versamento");
                Console.WriteLine("3)Bonifico");
                Console.WriteLine("4)Stampa saldo del conto");
                Console.WriteLine("5)Esci");

                scelta = Convert.ToInt32(Console.ReadLine());
                switch (scelta)
                {
                case 1:

                    Console.WriteLine("Inserisci l'importo del prelievo(Deve essere minore del saldo)");
                    importo = Convert.ToDouble(Console.ReadLine());

                    if (minMov > maxMov)
                    {
                        importo = importo + tassa;
                    }
                    if (AC.getSaldo() > importo)
                    {
                        Prelievo P = new Prelievo(importo, dataMov, AC, null);
                        AC.AddMovimenti(P);
                        P.Sommare(AC);
                        Console.WriteLine("Prelievo riuscito");
                        Console.WriteLine(" ");
                        minMov++;
                    }
                    else
                    {
                        Console.WriteLine("Non è possibile effettuare un prelievo con importo maggiore al saldo");
                        Console.WriteLine(" ");
                    }

                    minMov++;
                    break;

                case 2:
                    Console.WriteLine("Inserisci l'importo del versamento");
                    importo = Convert.ToDouble(Console.ReadLine());
                    if (minMov > maxMov)
                    {
                        importo = importo + tassa;
                    }
                    Versamento V = new Versamento(importo, dataMov, AC, null);

                    AC.AddMovimenti(V);
                    V.Sommare(AC);
                    minMov++;
                    Console.WriteLine("Versamento riuscito");
                    Console.WriteLine(" ");
                    break;

                case 3:
                    Console.WriteLine("Inserisci l'Iban del destinatario");
                    string        ibanTo = Convert.ToString(Console.ReadLine());
                    ContoCorrente AC2    = new ContoCorrente(ibanTo, 0);
                    DB.AddConto(AC2);
                    Console.WriteLine("Inserisci l'importo del bonifico");
                    importo = Convert.ToDouble(Console.ReadLine());
                    if (minMov > maxMov)
                    {
                        importo = importo + tassa;
                    }
                    if (AC.getSaldo() > importo)
                    {
                        Bonifico B = new Bonifico(AC, importo, dataMov, null, null);
                        AC.AddMovimenti(B);
                        B.EseguiBonifico(AC, AC2);
                        Console.WriteLine("Bonifico riuscito");
                        Console.WriteLine(" ");
                        minMov++;
                    }
                    else
                    {
                        Console.WriteLine("Non è possibile effettuare un bonifio con importo maggiore al saldo");
                        Console.WriteLine(" ");
                    }


                    break;

                case 4:
                    Console.WriteLine("Saldo: " + AC.getSaldo());

                    Console.WriteLine(" ");
                    break;

                default:
                    Console.WriteLine("Inserisci una delle azioni elencate");
                    Console.WriteLine(" ");
                    break;
                }
            } while (scelta != 5);
            Console.WriteLine("Grazie per aver usufruito dei nostri servizi, buona giornata");

            Console.ReadLine();
        }