From 7148bc27bd0725c2774d6a3288e7e602ab7b9e51 Mon Sep 17 00:00:00 2001 From: La Programmatrice Verde Date: Fri, 24 Jan 2025 13:10:19 +0100 Subject: [PATCH] Copiato il codice della verifica --- Program.cs | 285 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 280 insertions(+), 5 deletions(-) diff --git a/Program.cs b/Program.cs index 860ba9e..cb97473 100644 --- a/Program.cs +++ b/Program.cs @@ -1,9 +1,284 @@ namespace Verifica_Ripasso; -class Program -{ - static void Main(string[] args) - { - Console.WriteLine("Hello, World!"); +class Program { + const int MESI_IN_UN_ANNO = 12; + static void Main(string[] args) { + Console.Clear(); + //dichiarazione e inizializzazione variabili + int scelta, mediaPresenzeGennaioMarzo, mediaPresenzeGiugnoAgosto; + int[] arrayPresenze = null; + bool opzione1 = false; + string meseConMaggioriPresenze = null; + + + //menu ciclico + do { + Console.WriteLine("Inserire un'opzione:"); + Console.WriteLine("1. Inserire le presenze"); + Console.WriteLine("2. Mostra presenze"); + Console.WriteLine("3. Mostra mese con maggiori presenze"); + Console.WriteLine("4. Media presenze gennaio-marzo e giugno-agosto"); + Console.WriteLine("5. Mostra mesi con presenze superiori alla media"); + Console.WriteLine("6. Lancio dei dadi"); + Console.WriteLine("0. Esci"); + Console.Write("Scelta: "); + scelta = Convert.ToInt32(Console.ReadLine()); + + switch (scelta) { + case 0: + break; + case 1: + Console.Clear(); + arrayPresenze = NumeroPresenze(arrayPresenze); + opzione1 |= true; + Pausa(); + break; + case 2: + Console.Clear(); + if (opzione1) { + StampaArray(arrayPresenze); + } + else { + Console.WriteLine("Bisogna inserire il numero di presenze prima di mostrarle"); + + } + + Pausa(); + break; + case 3: + Console.Clear(); + if (opzione1) { + meseConMaggioriPresenze = NumeroPresenzeMaggiore(arrayPresenze); + Console.WriteLine("Il mese con maggiori presenze è il mese di " + meseConMaggioriPresenze); + } + else { + Console.WriteLine("Bisogna inserire il numero di presenze prima di mostrarle"); + + } + Pausa(); + break; + case 4: + Console.Clear(); + if (opzione1) { + mediaPresenzeGennaioMarzo = mediaPresenzeTreMesi(arrayPresenze, SwitchMese("gennaio"), SwitchMese("marzo")); + mediaPresenzeGiugnoAgosto = mediaPresenzeTreMesi(arrayPresenze, SwitchMese("giugno"), SwitchMese("agosto")); + Console.WriteLine("Media 1: " + mediaPresenzeGennaioMarzo); + Console.WriteLine("Media 2: " + mediaPresenzeGiugnoAgosto); + } + else { + Console.WriteLine("Bisogna inserire il numero di presenze prima di mostrarle"); + + } + Pausa(); + break; + case 5: + Console.Clear(); + if (opzione1) { + MesiSopraLaMedia(arrayPresenze); + } + else { + Console.WriteLine("Bisogna inserire il numero di presenze prima di mostrarle"); + + } + Pausa(); + break; + case 6: + Console.Clear(); + LancioDelDado(); + Pausa(); + break; + default: + Console.WriteLine("Opzione non valida"); + Pausa(); + break; + } + } + while (scelta != 0); + } + static void Pausa() { + Console.WriteLine("Premere un tasto per continuare. . ."); + Console.ReadKey(); + Console.Clear(); + } + static string SwitchMese(int p_NumeroMese) { + string nomeMese = null; + switch (p_NumeroMese) //L'indice dell'array sta ad indicare il numero del mese. Per non confondere l'utente dicendogli che gennaio è il mese 0, eseguo le operazioni con indiceInserimento-1 + { + case 1: + nomeMese = "gennaio"; + break; + case 2: + nomeMese = "febbraio"; + break; + case 3: + nomeMese = "marzo"; + break; + case 4: + nomeMese = "aprile"; + break; + case 5: + nomeMese = "maggio"; + break; + case 6: + nomeMese = "giugno"; + break; + case 7: + nomeMese = "luglio"; + break; + case 8: + nomeMese = "agosto"; + break; + case 9: + nomeMese = "settembre"; + break; + case 10: + nomeMese = "ottobre"; + break; + case 11: + nomeMese = "novembre"; + break; + case 12: + nomeMese = "dicembre"; + break; + } + return nomeMese; + } + + static int SwitchMese(string p_NomeMese) { + int numeroMese = 0; + switch (p_NomeMese) { + case "gennaio": + numeroMese = 1; + break; + case "febbraio": + numeroMese = 2; + break; + case "marzo": + numeroMese = 3; + break; + case "aprile": + numeroMese = 4; + break; + case "maggio": + numeroMese = 5; + break; + case "giugno": + numeroMese = 6; + break; + case "luglio": + numeroMese = 7; + break; + case "agosto": + numeroMese = 8; + break; + case "settembre": + numeroMese = 9; + break; + case "ottobre": + numeroMese = 10; + break; + case "novembre": + numeroMese = 11; + break; + case "dicembre": + numeroMese = 12; + break; + } + return numeroMese; + } + static int[] NumeroPresenze(int[] p_arrayPresenze) { + //dichiarazione e inizializzazione variabili + int input, indiceInserimento, postiDisponibili; + string nomeMese = null; + p_arrayPresenze = new int[MESI_IN_UN_ANNO]; + + Console.Write("Quanti posti sono disponibili? "); + postiDisponibili = Convert.ToInt32(Console.ReadLine()); + + for (indiceInserimento = 1; indiceInserimento <= MESI_IN_UN_ANNO; indiceInserimento++) { + + nomeMese = SwitchMese(indiceInserimento); //L'indice dell'array sta ad indicare il numero del mese. Per non confondere l'utente dicendogli che gennaio è il mese 0, eseguo le operazioni con indiceInserimento-1 + + do { + Console.Write("Quanti ospiti sono presenti nel mese di " + nomeMese + "? "); + input = Convert.ToInt32(Console.ReadLine()); + if (input < 0) { + Console.WriteLine("Non può essere inserito un numero di ospiti negativo"); + Pausa(); + } + else if (input > postiDisponibili) { + Console.WriteLine("Non ci sono abbastanza posti per questo numero di ospiti"); + Pausa(); + } + else { + p_arrayPresenze[indiceInserimento - 1] = input; + } + } + while (input < 0 || input > postiDisponibili); + } + return p_arrayPresenze; + } + static void StampaArray(int[] p_array) { + for (int i = 0; i < p_array.Length; i++) { + string nomeMese = SwitchMese(i + 1); + + Console.WriteLine("Ospiti per il mese di " + nomeMese + ": " + p_array[i]); + } + } + static string NumeroPresenzeMaggiore(int[] p_array) { + //dichiarazione e inizializzazione variabili + int max = 0, indiceMax = 0; + + for (int i = 0; i < p_array.Length; i++) { + if (p_array[i] > max) { + max = p_array[i]; + indiceMax = i; + } + } + return SwitchMese(indiceMax + 1); + } + static int mediaPresenzeTreMesi(int[] p_array, int meseIniziale, int meseFinale) { + //dichiarazione e inizializzazione variabili + int media, somma = 0; + for (int i = meseIniziale - 1; i < meseFinale; i++) { + somma += p_array[i]; + } + media = somma / 3; + return media; + } + static void MesiSopraLaMedia(int[] p_array) { + //dichiarazione e inizializzazione variabili + int somma = 0, media; + + for (int i = 0; i < MESI_IN_UN_ANNO; i++) { + somma += p_array[i]; + } + media = somma / MESI_IN_UN_ANNO; + for (int i = 0; i < MESI_IN_UN_ANNO; i++) { + if (p_array[i] > media) { + Console.WriteLine(SwitchMese(i + 1)); + } + } + } + static void LancioDelDado() { + //dichiarazione e inizializzazione variabili + const int FACCE_DEL_DADO = 6; + int r, somma = 0, facciaPrecedente = 0; + Random caso = new Random(); + + do { + r = caso.Next(1, FACCE_DEL_DADO + 1); + Console.WriteLine("Faccia del dado: " + r); + somma += r; + if (somma > 50) { + break; + } + else if (facciaPrecedente == FACCE_DEL_DADO && r == FACCE_DEL_DADO) { + break; + } + facciaPrecedente = r; + } while (true); + } } +} \ No newline at end of file