namespace agenzia_viaggi; class Program { static void Main(string[] args) { int scelta = 0; do { Console.WriteLine("Scegliere un'opzione:"); Console.WriteLine("1. Demo"); Console.WriteLine("2. Esecuzione standard"); Console.Write("Scelta: "); try { scelta = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Opzione non valida"); Pausa(); } switch (scelta) { case 1: Demo(); break; case 2: Menu(); break; default: Console.WriteLine("Opzione non valida"); Pausa(); break; } } while (scelta != 0); } static void Pausa() { Console.WriteLine("Premere un tasto per continuare. . ."); Console.ReadKey(); } static void Demo() { Cliente[] clienti = new Cliente[2]; Console.Write("Quanti clienti considerare? 2"); Console.WriteLine("Scegliere un'opzione:"); Console.WriteLine("1. Inserire i dati dei clienti"); Console.WriteLine("2. Inserire una prenotazione"); Console.WriteLine("3. Mostra informazioni cliente"); Console.WriteLine("4. Cancella prenotazione"); Console.WriteLine("5. Mostra tutte le prenotazioni"); Console.WriteLine("0. Esci"); Console.Write("Scelta: "); } static void Menu() { int numeroClienti = 0, scelta = 0, input = 0; do { Console.Write("Quanti clienti considerare? "); try { numeroClienti = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Numero non valido"); Pausa(); } if (numeroClienti <= 0) { Console.WriteLine("Errore: non è possibile considerare meno di un cliente."); Pausa(); } } while (numeroClienti <= 0); Cliente[] clienti = new Cliente[numeroClienti]; do { Console.WriteLine("Scegliere un'opzione:"); Console.WriteLine("1. Inserire i dati dei clienti"); Console.WriteLine("2. Inserire una prenotazione"); Console.WriteLine("3. Mostra informazioni cliente"); Console.WriteLine("4. Cancella prenotazione"); Console.WriteLine("5. Mostra tutte le prenotazioni"); Console.WriteLine("0. Esci"); Console.Write("Scelta: "); try { scelta = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Opzione non valida"); Pausa(); } switch (scelta) { case 0: break; case 1: do { Console.WriteLine("Inserire i dati di quale cliente? "); try { input = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Opzione non valida"); Pausa(); } if (input <= 0 || input > numeroClienti) { Console.WriteLine("Opzione non valida"); Pausa(); } } while (input <= 0 || input > numeroClienti); clienti[input] = CreaCliente(); Pausa(); break; case 2: Pausa(); break; case 3: for (int i = 0; i < numeroClienti; i++) { clienti[i].StampaDatiCliente(); clienti[i].StampaPrenotazioni(); } Pausa(); break; case 4: Pausa(); break; case 5: Pausa(); break; default: Console.WriteLine("Opzione non valida"); Pausa(); break; } } while (scelta != 0); } static Cliente CreaCliente() { string nome, cognome, codiceFiscale; int eta = 0, prenotazioni = 0; Console.Write("Inserire il nome: "); nome = Console.ReadLine(); Console.Write("Inserire il cognome: "); cognome = Console.ReadLine(); Console.Write("Codice fiscale: "); codiceFiscale = Console.ReadLine(); do { Console.Write("Inserire l'età: "); try { eta = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Età non valida"); Pausa(); } if (eta <= 0) { Console.WriteLine("Errore: non è possibile inserire un'età inferiore a 1"); Pausa(); } } while (eta <= 0); do { Console.Write("Inserire il numero di prenotazioni: "); try { prenotazioni = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Età non valida"); Pausa(); } if (prenotazioni <= 0) { Console.WriteLine("Errore: non è possibile inserire un numero di prenotazioni inferiore a 1"); Pausa(); } } while (prenotazioni <= 0); return new Cliente(nome, cognome, codiceFiscale, Convert.ToString(eta), prenotazioni); } }