namespace agenzia_viaggi; class Program { static void Main(string[] args) { Console.Clear(); int scelta = 3; bool eccezione; do { Console.WriteLine("Scegliere un'opzione:"); Console.WriteLine("1. Demo"); Console.WriteLine("2. Esecuzione standard"); Console.WriteLine("0. Esci"); Console.Write("Scelta: "); eccezione = false; try { scelta = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Opzione non valida"); eccezione = true; Pausa(); } if (!eccezione) { switch (scelta) { case 0: break; case 1: Console.Clear(); Demo(); break; case 2: Console.Clear(); Menu(); break; default: Console.WriteLine("Opzione non valida"); Pausa(); break; } } } while (eccezione || scelta < 0 || scelta > 2); } static void Pausa() { Console.WriteLine("Premere un tasto per continuare. . ."); Console.ReadKey(); } static void Demo() { //Unit tests: /* Quanti clienti considerare? 2 Scegliere un'opzione: 1. Inserire i dati dei clienti 2. Inserire una prenotazione 3. Mostra informazioni cliente 4. Cancella prenotazione 5. Mostra tutte le prenotazioni 6. Aggiungi prenotazione 0. Esci Scelta: 1 Inserire i dati di quale cliente? 1 2 Scelta: 1 Inserire il nome: Verde Inserire il cognome: Bassanetti Inserire il codice fiscale: BSSVRD12345 Inserire l'età: 17 Inserire il numero di prenotazioni: 2Scegliere un'opzione: 1. Inserire i dati dei clienti 2. Inserire una prenotazione 3. Mostra informazioni cliente 4. Cancella prenotazione 5. Mostra tutte le prenotazioni 6. Aggiungi prenotazione 0. Esci Scelta: 2 Inserire la prenotazione di quale cliente? 1 2 Scelta: 1 Quale periodo dell'anno scegliere? 1. Primavera 2. Estate 3. Autunno 4. Inverno Scelta: 1 Per quanti giorni prenotare? 2 Per quante persone prenotare? 1 Prenotazione inserita correttamente. Premere un tasto per continuare. . . Scegliere un'opzione: 1. Inserire i dati dei clienti 2. Inserire una prenotazione 3. Mostra informazioni cliente 4. Cancella prenotazione 5. Mostra tutte le prenotazioni 6. Aggiungi prenotazione 0. Esci Scelta: 2 Inserire la prenotazione di quale cliente? 1 2 Scelta: 1 Quale periodo dell'anno scegliere? 1. Primavera 2. Estate 3. Autunno 4. Inverno Scelta: 2 Per quanti giorni prenotare? 3 Per quante persone prenotare? 2 Prenotazione inserita correttamente. Premere un tasto per continuare. . . Scegliere un'opzione: 1. Inserire i dati dei clienti 2. Inserire una prenotazione 3. Mostra informazioni cliente 4. Cancella prenotazione 5. Mostra tutte le prenotazioni 6. Aggiungi prenotazione 0. Esci Scelta: 1 Inserire i dati di quale cliente? 1 2 Scelta: 2 Inserire il nome: Clarciccia Inserire il cognome: Bassanetti Inserire il codice fiscale: BSSCRC67890 Inserire l'età: 3 Inserire il numero di prenotazioni: 2Scegliere un'opzione: 1. Inserire i dati dei clienti 2. Inserire una prenotazione 3. Mostra informazioni cliente 4. Cancella prenotazione 5. Mostra tutte le prenotazioni 6. Aggiungi prenotazione 0. Esci Scelta: 2 Inserire la prenotazione di quale cliente? 1 2 Scelta: 2 Quale periodo dell'anno scegliere? 1. Primavera 2. Estate 3. Autunno 4. Inverno Scelta: 3 Per quanti giorni prenotare? 4 Per quante persone prenotare? 3 Prenotazione inserita correttamente. Premere un tasto per continuare. . . Scegliere un'opzione: 1. Inserire i dati dei clienti 2. Inserire una prenotazione 3. Mostra informazioni cliente 4. Cancella prenotazione 5. Mostra tutte le prenotazioni 6. Aggiungi prenotazione 0. Esci Scelta: 2 Inserire la prenotazione di quale cliente? 1 2 Scelta: 2 Quale periodo dell'anno scegliere? 1. Primavera 2. Estate 3. Autunno 4. Inverno Scelta: 4 Per quanti giorni prenotare? 5 Per quante persone prenotare? 4 Prenotazione inserita correttamente. Premere un tasto per continuare. . . Scegliere un'opzione: 1. Inserire i dati dei clienti 2. Inserire una prenotazione 3. Mostra informazioni cliente 4. Cancella prenotazione 5. Mostra tutte le prenotazioni 6. Aggiungi prenotazione 0. Esci Scelta: 3 Nome: Verde Cognome: Bassanetti Età: 17 Codice fiscale: BSSVRD12345 Numero prenotazioni: 2 Prenotazione n. 1: Codice univoco: W7VP4H3DYCSQRCB8 Periodo dell'anno: primavera Giorni prenotati: 2 Costo: 1534 Numero persone: 1 Codice fiscale a cui è intestata la prenotazione: BSSVRD12345 Prenotazione n. 2: Codice univoco: LIE3BRME9MEHP7LA Periodo dell'anno: estate Giorni prenotati: 3 Costo: 3873 Numero persone: 2 Codice fiscale a cui è intestata la prenotazione: BSSVRD12345 Nome: Clarciccia Cognome: Bassanetti Età: 3 Codice fiscale: BSSCRC67890 Numero prenotazioni: 2 Prenotazione n. 1: Codice univoco: LQXJHLIPB0CFML7V Periodo dell'anno: autunno Giorni prenotati: 4 Costo: 946 Numero persone: 3 Codice fiscale a cui è intestata la prenotazione: BSSCRC67890 Prenotazione n. 2: Codice univoco: T5V16ROJWG2F2XA2 Periodo dell'anno: inverno Giorni prenotati: 5 Costo: 1880 Numero persone: 4 Codice fiscale a cui è intestata la prenotazione: BSSCRC67890 Premere un tasto per continuare. . . Scegliere un'opzione: 1. Inserire i dati dei clienti 2. Inserire una prenotazione 3. Mostra informazioni cliente 4. Cancella prenotazione 5. Mostra tutte le prenotazioni 6. Aggiungi prenotazione 0. Esci Scelta: 4 Cancellare la prenotazione di quale cliente? 1 2 Scelta: 1 Scegliere una prenotazione: 1. W7VP4H3DYCSQRCB8 2. LIE3BRME9MEHP7LA Scelta: 2 Prenotazione cancellata con successo. Premere un tasto per continuare. . . Scegliere un'opzione: 1. Inserire i dati dei clienti 2. Inserire una prenotazione 3. Mostra informazioni cliente 4. Cancella prenotazione 5. Mostra tutte le prenotazioni 6. Aggiungi prenotazione 0. Esci Scelta: 6 Aggiungere una prenotazione a quale cliente? 1 2 Scelta: 2 Prenotazione aggiunta con successo Premere un tasto per continuare. . . Scegliere un'opzione: 1. Inserire i dati dei clienti 2. Inserire una prenotazione 3. Mostra informazioni cliente 4. Cancella prenotazione 5. Mostra tutte le prenotazioni 6. Aggiungi prenotazione 0. Esci Scelta: 2 Inserire la prenotazione di quale cliente? 1 2 Scelta: 2 Quale periodo dell'anno scegliere? 1. Primavera 2. Estate 3. Autunno 4. Inverno Scelta: 4 Per quanti giorni prenotare? 3 Per quante persone prenotare? 4 Prenotazione inserita correttamente. Premere un tasto per continuare. . . Scegliere un'opzione: 1. Inserire i dati dei clienti 2. Inserire una prenotazione 3. Mostra informazioni cliente 4. Cancella prenotazione 5. Mostra tutte le prenotazioni 6. Aggiungi prenotazione 0. Esci Scelta: 3 Nome: Verde Cognome: Bassanetti Età: 17 Codice fiscale: BSSVRD12345 Numero prenotazioni: 2 Prenotazione n. 1: Codice univoco: W7VP4H3DYCSQRCB8 Periodo dell'anno: primavera Giorni prenotati: 2 Costo: 1534 Numero persone: 1 Codice fiscale a cui è intestata la prenotazione: BSSVRD12345 Nome: Clarciccia Cognome: Bassanetti Età: 3 Codice fiscale: BSSCRC67890 Numero prenotazioni: 3 Prenotazione n. 1: Codice univoco: LQXJHLIPB0CFML7V Periodo dell'anno: autunno Giorni prenotati: 4 Costo: 946 Numero persone: 3 Codice fiscale a cui è intestata la prenotazione: BSSCRC67890 Prenotazione n. 2: Codice univoco: T5V16ROJWG2F2XA2 Periodo dell'anno: inverno Giorni prenotati: 5 Costo: 1880 Numero persone: 4 Codice fiscale a cui è intestata la prenotazione: BSSCRC67890 Prenotazione n. 3: Codice univoco: WSE2B1H2KJ81ZB4D Periodo dell'anno: inverno Giorni prenotati: 3 Costo: 5058 Numero persone: 4 Codice fiscale a cui è intestata la prenotazione: BSSCRC67890 Premere un tasto per continuare. . . Cliente n. 1 Prenotazione n. 1: Codice univoco: W7VP4H3DYCSQRCB8 Periodo dell'anno: primavera Giorni prenotati: 2 Costo: 1534 Numero persone: 1 Codice fiscale a cui è intestata la prenotazione: BSSVRD12345 Cliente n. 2 Prenotazione n. 1: Codice univoco: LQXJHLIPB0CFML7V Periodo dell'anno: autunno Giorni prenotati: 4 Costo: 946 Numero persone: 3 Codice fiscale a cui è intestata la prenotazione: BSSCRC67890 Prenotazione n. 2: Codice univoco: T5V16ROJWG2F2XA2 Periodo dell'anno: inverno Giorni prenotati: 5 Costo: 1880 Numero persone: 4 Codice fiscale a cui è intestata la prenotazione: BSSCRC67890 Prenotazione n. 3: Codice univoco: WSE2B1H2KJ81ZB4D Periodo dell'anno: inverno Giorni prenotati: 3 Costo: 5058 Numero persone: 4 Codice fiscale a cui è intestata la prenotazione: BSSCRC67890 Premere un tasto per continuare. . . */ Cliente[] clienti = new Cliente[2]; string nome, cognome, codiceFiscale; int eta = 0; bool eccezione; //inserimento cliente1 { Console.WriteLine("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("6. Aggiungi prenotazione"); Console.WriteLine("0. Esci"); Console.WriteLine("Scelta: 1"); Console.WriteLine("Inserire i dati di quale cliente? "); Console.WriteLine("1"); Console.WriteLine("2"); Console.WriteLine("Scelta: 1"); do { Console.Write("Inserire il nome: "); nome = Console.ReadLine(); if (string.IsNullOrWhiteSpace(nome)) { Console.WriteLine("Errore: inserire un nome"); Pausa(); } } while (string.IsNullOrWhiteSpace(nome)); do { Console.Write("Inserire il cognome: "); cognome = Console.ReadLine(); if (string.IsNullOrWhiteSpace(cognome)) { Console.WriteLine("Errore: inserire un cognome"); Pausa(); } } while (string.IsNullOrWhiteSpace(cognome)); do { Console.Write("Inserire il codice fiscale: "); codiceFiscale = Console.ReadLine(); if (string.IsNullOrWhiteSpace(codiceFiscale)) { Console.WriteLine("Errore: inserire un codice fiscale"); Pausa(); } } while (string.IsNullOrWhiteSpace(codiceFiscale)); do { Console.Write("Inserire l'età: "); eccezione = false; try { eta = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Età non valida"); eccezione = true; Pausa(); } if (!eccezione) { if (eta <= 0) { Console.WriteLine("Errore: non è possibile inserire un'età inferiore a 1"); Pausa(); } } } while (eccezione || eta <= 0); Console.Write("Inserire il numero di prenotazioni: 2"); clienti[0] = new Cliente(nome, cognome, codiceFiscale, Convert.ToString(eta), 2); } //inserimento prenotazione 1 cliente1 { string[] periodi = ["primavera", "estate", "autunno", "inverno"]; int giorniPrenotati = 0, numeroPersone = 0, scelta; 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("6. Aggiungi prenotazione"); Console.WriteLine("0. Esci"); Console.WriteLine("Scelta: 2"); Console.WriteLine("Inserire la prenotazione di quale cliente? "); Console.WriteLine("1"); Console.WriteLine("2"); Console.WriteLine("Scelta: 1"); scelta = 5; do { Console.WriteLine("Quale periodo dell'anno scegliere?"); Console.WriteLine("1. Primavera"); Console.WriteLine("2. Estate"); Console.WriteLine("3. Autunno"); Console.WriteLine("4. Inverno"); Console.Write("Scelta: "); eccezione = false; try { scelta = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Opzione non valida"); eccezione = true; Pausa(); } if (!eccezione) { if (scelta < 1 || scelta > 4) { Console.WriteLine("Opzione non valida"); Pausa(); } } } while (eccezione || scelta < 1 || scelta > 4); do { Console.Write("Per quanti giorni prenotare? "); eccezione = false; try { giorniPrenotati = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Numero non valido"); eccezione = true; Pausa(); } if (!eccezione) { if (giorniPrenotati <= 0) { Console.WriteLine("Errore: impossibile prenotare per meno di un giorno."); Pausa(); } } } while (eccezione || giorniPrenotati <= 0); do { Console.Write("Per quante persone prenotare? "); eccezione = false; try { numeroPersone = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Numero non valido"); eccezione = true; Pausa(); } if (!eccezione) { if (numeroPersone <= 0) { Console.WriteLine("Errore: impossibile prenotare per meno di una persona."); Pausa(); } } } while (numeroPersone <= 0); eccezione = false; try { clienti[0].InserisciPrenotazione(periodi[scelta - 1], Convert.ToString(giorniPrenotati), Convert.ToString(numeroPersone)); } catch (Exception e) { Console.WriteLine(e.Message); eccezione = true; } if (!eccezione) { Console.WriteLine("Prenotazione inserita correttamente."); } Pausa(); } //inserimento prenotazione 2 cliente1 { string[] periodi = ["primavera", "estate", "autunno", "inverno"]; int giorniPrenotati = 0, numeroPersone = 0, scelta; 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("6. Aggiungi prenotazione"); Console.WriteLine("0. Esci"); Console.WriteLine("Scelta: 2"); Console.WriteLine("Inserire la prenotazione di quale cliente? "); Console.WriteLine("1"); Console.WriteLine("2"); Console.WriteLine("Scelta: 1"); scelta = 5; do { Console.WriteLine("Quale periodo dell'anno scegliere?"); Console.WriteLine("1. Primavera"); Console.WriteLine("2. Estate"); Console.WriteLine("3. Autunno"); Console.WriteLine("4. Inverno"); Console.Write("Scelta: "); eccezione = false; try { scelta = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Opzione non valida"); eccezione = true; Pausa(); } if (!eccezione) { if (scelta < 1 || scelta > 4) { Console.WriteLine("Opzione non valida"); Pausa(); } } } while (eccezione || scelta < 1 || scelta > 4); do { Console.Write("Per quanti giorni prenotare? "); eccezione = false; try { giorniPrenotati = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Numero non valido"); eccezione = true; Pausa(); } if (!eccezione) { if (giorniPrenotati <= 0) { Console.WriteLine("Errore: impossibile prenotare per meno di un giorno."); Pausa(); } } } while (eccezione || giorniPrenotati <= 0); do { Console.Write("Per quante persone prenotare? "); eccezione = false; try { numeroPersone = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Numero non valido"); eccezione = true; Pausa(); } if (!eccezione) { if (numeroPersone <= 0) { Console.WriteLine("Errore: impossibile prenotare per meno di una persona."); Pausa(); } } } while (numeroPersone <= 0); eccezione = false; try { clienti[0].InserisciPrenotazione(periodi[scelta - 1], Convert.ToString(giorniPrenotati), Convert.ToString(numeroPersone)); } catch (Exception e) { Console.WriteLine(e.Message); eccezione = true; } if (!eccezione) { Console.WriteLine("Prenotazione inserita correttamente."); } Pausa(); } //inserimento cliente2 { 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("6. Aggiungi prenotazione"); Console.WriteLine("0. Esci"); Console.WriteLine("Scelta: 1"); Console.WriteLine("Inserire i dati di quale cliente? "); Console.WriteLine("1"); Console.WriteLine("2"); Console.WriteLine("Scelta: 2"); do { Console.Write("Inserire il nome: "); nome = Console.ReadLine(); if (string.IsNullOrWhiteSpace(nome)) { Console.WriteLine("Errore: inserire un nome"); Pausa(); } } while (string.IsNullOrWhiteSpace(nome)); do { Console.Write("Inserire il cognome: "); cognome = Console.ReadLine(); if (string.IsNullOrWhiteSpace(cognome)) { Console.WriteLine("Errore: inserire un cognome"); Pausa(); } } while (string.IsNullOrWhiteSpace(cognome)); do { Console.Write("Inserire il codice fiscale: "); codiceFiscale = Console.ReadLine(); if (string.IsNullOrWhiteSpace(codiceFiscale)) { Console.WriteLine("Errore: inserire un codice fiscale"); Pausa(); } } while (string.IsNullOrWhiteSpace(codiceFiscale)); do { Console.Write("Inserire l'età: "); eccezione = false; try { eta = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Età non valida"); eccezione = true; Pausa(); } if (!eccezione) { if (eta <= 0) { Console.WriteLine("Errore: non è possibile inserire un'età inferiore a 1"); Pausa(); } } } while (eccezione || eta <= 0); Console.Write("Inserire il numero di prenotazioni: 2"); clienti[1] = new Cliente(nome, cognome, codiceFiscale, Convert.ToString(eta), 2); } //inserimento prenotazione 1 cliente2 { string[] periodi = ["primavera", "estate", "autunno", "inverno"]; int giorniPrenotati = 0, numeroPersone = 0, scelta; 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("6. Aggiungi prenotazione"); Console.WriteLine("0. Esci"); Console.WriteLine("Scelta: 2"); Console.WriteLine("Inserire la prenotazione di quale cliente? "); Console.WriteLine("1"); Console.WriteLine("2"); Console.WriteLine("Scelta: 2"); scelta = 5; do { Console.WriteLine("Quale periodo dell'anno scegliere?"); Console.WriteLine("1. Primavera"); Console.WriteLine("2. Estate"); Console.WriteLine("3. Autunno"); Console.WriteLine("4. Inverno"); Console.Write("Scelta: "); eccezione = false; try { scelta = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Opzione non valida"); eccezione = true; Pausa(); } if (!eccezione) { if (scelta < 1 || scelta > 4) { Console.WriteLine("Opzione non valida"); Pausa(); } } } while (eccezione || scelta < 1 || scelta > 4); do { Console.Write("Per quanti giorni prenotare? "); eccezione = false; try { giorniPrenotati = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Numero non valido"); eccezione = true; Pausa(); } if (!eccezione) { if (giorniPrenotati <= 0) { Console.WriteLine("Errore: impossibile prenotare per meno di un giorno."); Pausa(); } } } while (eccezione || giorniPrenotati <= 0); do { Console.Write("Per quante persone prenotare? "); eccezione = false; try { numeroPersone = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Numero non valido"); eccezione = true; Pausa(); } if (!eccezione) { if (numeroPersone <= 0) { Console.WriteLine("Errore: impossibile prenotare per meno di una persona."); Pausa(); } } } while (numeroPersone <= 0); eccezione = false; try { clienti[1].InserisciPrenotazione(periodi[scelta - 1], Convert.ToString(giorniPrenotati), Convert.ToString(numeroPersone)); } catch (Exception e) { Console.WriteLine(e.Message); eccezione = true; } if (!eccezione) { Console.WriteLine("Prenotazione inserita correttamente."); } Pausa(); } //inserimento prenotazione 2 cliente2 { string[] periodi = ["primavera", "estate", "autunno", "inverno"]; int giorniPrenotati = 0, numeroPersone = 0, scelta; 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("6. Aggiungi prenotazione"); Console.WriteLine("0. Esci"); Console.WriteLine("Scelta: 2"); Console.WriteLine("Inserire la prenotazione di quale cliente? "); Console.WriteLine("1"); Console.WriteLine("2"); Console.WriteLine("Scelta: 2"); scelta = 5; do { Console.WriteLine("Quale periodo dell'anno scegliere?"); Console.WriteLine("1. Primavera"); Console.WriteLine("2. Estate"); Console.WriteLine("3. Autunno"); Console.WriteLine("4. Inverno"); Console.Write("Scelta: "); eccezione = false; try { scelta = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Opzione non valida"); eccezione = true; Pausa(); } if (!eccezione) { if (scelta < 1 || scelta > 4) { Console.WriteLine("Opzione non valida"); Pausa(); } } } while (eccezione || scelta < 1 || scelta > 4); do { Console.Write("Per quanti giorni prenotare? "); eccezione = false; try { giorniPrenotati = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Numero non valido"); eccezione = true; Pausa(); } if (!eccezione) { if (giorniPrenotati <= 0) { Console.WriteLine("Errore: impossibile prenotare per meno di un giorno."); Pausa(); } } } while (eccezione || giorniPrenotati <= 0); do { Console.Write("Per quante persone prenotare? "); eccezione = false; try { numeroPersone = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Numero non valido"); eccezione = true; Pausa(); } if (!eccezione) { if (numeroPersone <= 0) { Console.WriteLine("Errore: impossibile prenotare per meno di una persona."); Pausa(); } } } while (numeroPersone <= 0); eccezione = false; try { clienti[1].InserisciPrenotazione(periodi[scelta - 1], Convert.ToString(giorniPrenotati), Convert.ToString(numeroPersone)); } catch (Exception e) { Console.WriteLine(e.Message); eccezione = true; } if (!eccezione) { Console.WriteLine("Prenotazione inserita correttamente."); } Pausa(); } //stampa di tutti i clienti e tutte le prenotazioni { 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("6. Aggiungi prenotazione"); Console.WriteLine("0. Esci"); Console.WriteLine("Scelta: 3"); for (int i = 0; i < 2; i++) { if (clienti[i] != null) { clienti[i].StampaDatiCliente(); clienti[i].StampaPrenotazioni(); } } Pausa(); } //cancella prenotazione cliente1 { int scelta = 0; 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("6. Aggiungi prenotazione"); Console.WriteLine("0. Esci"); Console.WriteLine("Scelta: 4"); Console.WriteLine("Cancellare la prenotazione di quale cliente? "); Console.WriteLine("1"); Console.WriteLine("2"); Console.WriteLine("Scelta: 1"); do { Console.WriteLine("Scegliere una prenotazione:"); for (int i = 0; i < clienti[0].GetPrenotazioni().Length; i++) { if (clienti[0].GetPrenotazioni()[i] != null) { Console.WriteLine($"{i + 1}. {clienti[0].GetPrenotazioni()[i].GetUUID()}"); } } Console.Write("Scelta: "); eccezione = false; try { scelta = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Opzione non valida"); eccezione = true; Pausa(); } if (!eccezione) { if (scelta < 1 || scelta > clienti[0].GetPrenotazioni().Length) { Console.WriteLine("Opzione non valida"); Pausa(); } else if (clienti[0].GetPrenotazioni()[scelta - 1] == null) { Console.WriteLine("Opzione non valida"); Pausa(); } } } while (eccezione || scelta < 1 || scelta > clienti[0].GetPrenotazioni().Length || clienti[0].GetPrenotazioni()[scelta - 1] == null); clienti[0].CancellaPrenotazione(clienti[0].GetPrenotazioni()[scelta - 1].GetUUID()); Console.WriteLine("Prenotazione cancellata con successo."); Pausa(); } //aggiunta prenotazione cliente2 { 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("6. Aggiungi prenotazione"); Console.WriteLine("0. Esci"); Console.WriteLine("Scelta: 6"); Console.WriteLine("Aggiungere una prenotazione a quale cliente?"); Console.WriteLine("1"); Console.WriteLine("2"); Console.WriteLine("Scelta: 2"); Prenotazione[] precedente = clienti[1].GetPrenotazioni(); Prenotazione[] nuovo = new Prenotazione[precedente.Length + 1]; for (int i = 0; i < precedente.Length; i++) { nuovo[i] = precedente[i]; } clienti[1].SetPrenotazioni(nuovo); Console.WriteLine("Prenotazione aggiunta con successo"); Pausa(); } //inserimento prenotazione 3 cliente2 { string[] periodi = ["primavera", "estate", "autunno", "inverno"]; int giorniPrenotati = 0, numeroPersone = 0, scelta; 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("6. Aggiungi prenotazione"); Console.WriteLine("0. Esci"); Console.WriteLine("Scelta: 2"); Console.WriteLine("Inserire la prenotazione di quale cliente? "); Console.WriteLine("1"); Console.WriteLine("2"); Console.WriteLine("Scelta: 2"); scelta = 5; do { Console.WriteLine("Quale periodo dell'anno scegliere?"); Console.WriteLine("1. Primavera"); Console.WriteLine("2. Estate"); Console.WriteLine("3. Autunno"); Console.WriteLine("4. Inverno"); Console.Write("Scelta: "); eccezione = false; try { scelta = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Opzione non valida"); eccezione = true; Pausa(); } if (!eccezione) { if (scelta < 1 || scelta > 4) { Console.WriteLine("Opzione non valida"); Pausa(); } } } while (eccezione || scelta < 1 || scelta > 4); do { Console.Write("Per quanti giorni prenotare? "); eccezione = false; try { giorniPrenotati = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Numero non valido"); eccezione = true; Pausa(); } if (!eccezione) { if (giorniPrenotati <= 0) { Console.WriteLine("Errore: impossibile prenotare per meno di un giorno."); Pausa(); } } } while (eccezione || giorniPrenotati <= 0); do { Console.Write("Per quante persone prenotare? "); eccezione = false; try { numeroPersone = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Numero non valido"); eccezione = true; Pausa(); } if (!eccezione) { if (numeroPersone <= 0) { Console.WriteLine("Errore: impossibile prenotare per meno di una persona."); Pausa(); } } } while (numeroPersone <= 0); eccezione = false; try { clienti[1].InserisciPrenotazione(periodi[scelta - 1], Convert.ToString(giorniPrenotati), Convert.ToString(numeroPersone)); } catch (Exception e) { Console.WriteLine(e.Message); eccezione = true; } if (!eccezione) { Console.WriteLine("Prenotazione inserita correttamente."); } Pausa(); } //stampa di tutti i clienti e tutte le prenotazioni { 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("6. Aggiungi prenotazione"); Console.WriteLine("0. Esci"); Console.WriteLine("Scelta: 3"); for (int i = 0; i < 2; i++) { if (clienti[i] != null) { clienti[i].StampaDatiCliente(); clienti[i].StampaPrenotazioni(); } } Pausa(); } //stampa tutte le operazioni { for (int i = 0; i < clienti.Length; i++) { if (clienti[i] != null) { Console.WriteLine($"Cliente n. {i + 1}\n"); clienti[i].StampaPrenotazioni(); } } Pausa(); } } static void Menu() { int numeroClienti = 0, scelta = 0, input = 0; bool eccezione; do { Console.Write("Quanti clienti considerare? "); eccezione = false; try { numeroClienti = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Numero non valido"); eccezione = true; Pausa(); } if (!eccezione) { if (numeroClienti <= 0) { Console.WriteLine("Errore: non è possibile considerare meno di un cliente."); Pausa(); } } } while (eccezione || 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("6. Aggiungi prenotazione"); Console.WriteLine("0. Esci"); Console.Write("Scelta: "); eccezione = false; try { scelta = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Opzione non valida"); eccezione = true; Pausa(); } if (!eccezione) { switch (scelta) { case 0: break; case 1: do { Console.WriteLine("Inserire i dati di quale cliente? "); for (int i = 0; i < clienti.Length; i++) { Console.WriteLine(i + 1); } Console.Write("Scelta: "); eccezione = false; try { input = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Opzione non valida"); eccezione = true; Pausa(); } if (!eccezione) { if (input <= 0 || input > numeroClienti) { Console.WriteLine("Opzione non valida"); Pausa(); } else if (clienti[input - 1] != null) { Console.WriteLine("Errore: i dati di questo cliente sono già stati inseriti."); Pausa(); } } } while (eccezione || input <= 0 || input > numeroClienti || clienti[input - 1] != null); clienti[input - 1] = CreaCliente(); Console.WriteLine("Cliente inserito con successo"); Pausa(); break; case 2: string[] periodi = ["primavera", "estate", "autunno", "inverno"]; int giorniPrenotati = 0, numeroPersone = 0; do { Console.WriteLine("Inserire la prenotazione di quale cliente? "); for (int i = 0; i < clienti.Length; i++) { Console.WriteLine(i + 1); } Console.Write("Scelta: "); eccezione = false; try { input = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Opzione non valida"); eccezione = true; Pausa(); } if (!eccezione) { if (input <= 0 || input > numeroClienti) { Console.WriteLine("Opzione non valida"); Pausa(); } else if (clienti[input - 1] == null) { Console.WriteLine("I dati di questo cliente non sono ancora stati inseriti."); Pausa(); } } } while (eccezione || input <= 0 || input > numeroClienti || clienti[input - 1] == null); scelta = 5; do { Console.WriteLine("Quale periodo dell'anno scegliere?"); Console.WriteLine("1. Primavera"); Console.WriteLine("2. Estate"); Console.WriteLine("3. Autunno"); Console.WriteLine("4. Inverno"); Console.Write("Scelta: "); eccezione = false; try { scelta = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Opzione non valida"); eccezione = true; Pausa(); } if (!eccezione) { if (scelta < 1 || scelta > 4) { Console.WriteLine("Opzione non valida"); Pausa(); } } } while (eccezione || scelta < 1 || scelta > 4); do { Console.Write("Per quanti giorni prenotare? "); eccezione = false; try { giorniPrenotati = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Numero non valido"); eccezione = true; Pausa(); } if (!eccezione) { if (giorniPrenotati <= 0) { Console.WriteLine("Errore: impossibile prenotare per meno di un giorno."); Pausa(); } } } while (eccezione || giorniPrenotati <= 0); do { Console.Write("Per quante persone prenotare? "); eccezione = false; try { numeroPersone = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Numero non valido"); eccezione = true; Pausa(); } if (!eccezione) { if (numeroPersone <= 0) { Console.WriteLine("Errore: impossibile prenotare per meno di una persona."); Pausa(); } } } while (numeroPersone <= 0); eccezione = false; try { clienti[input - 1].InserisciPrenotazione(periodi[scelta - 1], Convert.ToString(giorniPrenotati), Convert.ToString(numeroPersone)); } catch (Exception e) { Console.WriteLine(e.Message); eccezione = true; } if (!eccezione) { Console.WriteLine("Prenotazione inserita correttamente."); } Pausa(); break; case 3: for (int i = 0; i < numeroClienti; i++) { if (clienti[i] != null) { clienti[i].StampaDatiCliente(); clienti[i].StampaPrenotazioni(); } } Pausa(); break; case 4: do { Console.WriteLine("Cancellare la prenotazione di quale cliente? "); for (int i = 0; i < clienti.Length; i++) { Console.WriteLine(i + 1); } Console.Write("Scelta: "); eccezione = false; try { input = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Opzione non valida"); eccezione = true; Pausa(); } if (!eccezione) { if (input <= 0 || input > numeroClienti) { Console.WriteLine("Opzione non valida"); Pausa(); } else if (clienti[input - 1] == null) { Console.WriteLine("I dati di questo cliente non sono ancora stati inseriti."); Pausa(); } } } while (eccezione || input <= 0 || input > numeroClienti || clienti[input - 1] == null); do { Console.WriteLine("Scegliere una prenotazione:"); for (int i = 0; i < clienti[input - 1].GetPrenotazioni().Length; i++) { if (clienti[input - 1].GetPrenotazioni()[i] != null) { Console.WriteLine($"{i + 1}. {clienti[input - 1].GetPrenotazioni()[i].GetUUID()}"); } } Console.Write("Scelta: "); eccezione = false; try { scelta = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Opzione non valida"); eccezione = true; Pausa(); } if (!eccezione) { if (scelta < 1 || scelta > clienti[input - 1].GetPrenotazioni().Length) { Console.WriteLine("Opzione non valida"); Pausa(); } else if (clienti[input - 1].GetPrenotazioni()[scelta - 1] == null) { Console.WriteLine("Opzione non valida"); Pausa(); } } } while (eccezione || scelta < 1 || scelta > clienti[input - 1].GetPrenotazioni().Length || clienti[input - 1].GetPrenotazioni()[scelta - 1] == null); clienti[input - 1].CancellaPrenotazione(clienti[input - 1].GetPrenotazioni()[scelta - 1].GetUUID()); Console.WriteLine("Prenotazione cancellata con successo."); Pausa(); break; case 5: for (int i = 0; i < clienti.Length; i++) { if (clienti[i] != null) { Console.WriteLine($"Cliente n. {i + 1}\n"); clienti[i].StampaPrenotazioni(); } } Pausa(); break; case 6: do { Console.WriteLine("Aggiungere una prenotazione a quale cliente? "); for (int i = 0; i < clienti.Length; i++) { Console.WriteLine(i + 1); } Console.Write("Scelta: "); eccezione = false; try { input = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Opzione non valida"); eccezione = true; Pausa(); } if (!eccezione) { if (input <= 0 || input > numeroClienti) { Console.WriteLine("Opzione non valida"); Pausa(); } else if (clienti[input - 1] == null) { Console.WriteLine("I dati di questo cliente non sono ancora stati inseriti."); Pausa(); } } } while (eccezione || input <= 0 || input > numeroClienti || clienti[input - 1] == null); Prenotazione[] precedente = clienti[input - 1].GetPrenotazioni(); Prenotazione[] nuovo = new Prenotazione[precedente.Length + 1]; for (int i = 0; i < precedente.Length; i++) { nuovo[i] = precedente[i]; } clienti[input - 1].SetPrenotazioni(nuovo); Console.WriteLine("Prenotazione aggiunta con successo"); Pausa(); break; default: Console.WriteLine("Opzione non valida"); Pausa(); break; } } } while (eccezione || scelta != 0); } static Cliente CreaCliente() { string nome, cognome, codiceFiscale; int eta = 0, prenotazioni = 0; const int MAX_PRENOTAZIONI = 10; bool eccezione; do { Console.Write("Inserire il nome: "); nome = Console.ReadLine(); if (string.IsNullOrWhiteSpace(nome)) { Console.WriteLine("Errore: inserire un nome"); Pausa(); } } while (string.IsNullOrWhiteSpace(nome)); do { Console.Write("Inserire il cognome: "); cognome = Console.ReadLine(); if (string.IsNullOrWhiteSpace(cognome)) { Console.WriteLine("Errore: inserire un cognome"); Pausa(); } } while (string.IsNullOrWhiteSpace(cognome)); do { Console.Write("Inserire il codice fiscale: "); codiceFiscale = Console.ReadLine(); if (string.IsNullOrWhiteSpace(codiceFiscale)) { Console.WriteLine("Errore: inserire un codice fiscale"); Pausa(); } } while (string.IsNullOrWhiteSpace(codiceFiscale)); do { Console.Write("Inserire l'età: "); eccezione = false; try { eta = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Età non valida"); eccezione = true; Pausa(); } if (!eccezione) { if (eta <= 0) { Console.WriteLine("Errore: non è possibile inserire un'età inferiore a 1"); Pausa(); } } } while (eccezione || eta <= 0); do { Console.Write("Inserire il numero di prenotazioni: "); eccezione = false; try { prenotazioni = Convert.ToInt32(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("Numero non valido"); eccezione = true; Pausa(); } if (!eccezione) { if (prenotazioni <= 0) { Console.WriteLine("Errore: non è possibile inserire un numero di prenotazioni inferiore a 1"); Pausa(); } else if (prenotazioni > MAX_PRENOTAZIONI) { Console.WriteLine($"Errore: sono consentite al massimo {MAX_PRENOTAZIONI} prenotazioni per cliente"); Pausa(); } } } while (eccezione || prenotazioni <= 0 || prenotazioni > MAX_PRENOTAZIONI); return new Cliente(nome, cognome, codiceFiscale, Convert.ToString(eta), prenotazioni); } }