From d9195256920f0b72858a4a74a40538a4933c1d3a Mon Sep 17 00:00:00 2001 From: La Programmatrice Verde Date: Wed, 7 May 2025 11:06:14 +0200 Subject: [PATCH] Creazione e stampa clienti --- Cliente.cs | 5 +- Program.cs | 184 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 182 insertions(+), 7 deletions(-) diff --git a/Cliente.cs b/Cliente.cs index e16a606..00fac4e 100644 --- a/Cliente.cs +++ b/Cliente.cs @@ -9,11 +9,11 @@ class Cliente { string eta; Prenotazione[] prenotazioni; - public Cliente(string p_nome, string p_cognome, string p_codiceFiscale, string p_eta, Prenotazione[] p_prenotazioni) { + public Cliente(string p_nome, string p_cognome, string p_codiceFiscale, string p_eta, int p_prenotazioni) { this.nome = p_nome; this.cognome = p_cognome; this.eta = p_eta; - this.prenotazioni = p_prenotazioni; + this.prenotazioni = new Prenotazione[p_prenotazioni]; this.codiceFiscale = CheckCodiceFiscale(p_codiceFiscale) ? p_codiceFiscale : throw new Exception("Codice fiscale non valido"); } @@ -102,6 +102,7 @@ class Cliente { Console.WriteLine($"Cognome: {this.GetCognome()}"); Console.WriteLine($"Età: {this.GetEta()}"); Console.WriteLine($"Codice fiscale: {this.GetCodiceFiscale()}"); + Console.WriteLine($"Numero prenotazioni: {this.prenotazioni.Length}"); } public void StampaPrenotazioni() { diff --git a/Program.cs b/Program.cs index e51c599..e7f2fea 100644 --- a/Program.cs +++ b/Program.cs @@ -1,9 +1,183 @@ namespace agenzia_viaggi; -class Program -{ - static void Main(string[] args) - { - Console.WriteLine("Hello, World!"); +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); } }