using Microsoft.Win32.SafeHandles; namespace vacanzeEstive_benzinaio; class Program { static void Main(string[] args) { Console.Clear(); Rifornimento[] rifornimentos = CreaBenzinaio(); Random r = new(); int indiceUltimaPompaBenzina = TrovaIndiceUltimaPompaBenzina(rifornimentos); int scelta = 0; do { Console.WriteLine("Inserire un'opzione:"); Console.WriteLine("1. Rifornimento benzina super"); Console.WriteLine("2. Rifornimento gasolio"); Console.WriteLine("3. Visualizza totali"); Console.WriteLine("0. Esci"); Console.Write("Scelta: "); try { scelta = Convert.ToInt32(Console.ReadLine()); switch (scelta) { case 0: break; case 1: Pausa(); break; case 2: Pausa(); break; case 3: Pausa(); break; default: Console.WriteLine("Opzione non valida."); Pausa(); break; } } catch (FormatException) { Console.WriteLine("Opzione non valida."); Pausa(); } } while (scelta != 0); } static void Pausa() { Console.WriteLine("Premere un tasto per continuare. . ."); Console.ReadKey(); } static Rifornimento[] CreaBenzinaio() { Random r = new(); int totalePompe = r.Next(1, 30); int totaleBenzina = r.Next(totalePompe); Rifornimento[] ritorno = new Rifornimento[totalePompe]; for (int i = 0; i < totaleBenzina; i++) { ritorno[i] = new Rifornimento("benzina super", 1.885); } for (int i = totaleBenzina; i < totalePompe; i++) { ritorno[i] = new Rifornimento("gasolio", 1.812); } return ritorno; } static int TrovaIndiceUltimaPompaBenzina(Rifornimento[] p_rifornimentos) { int i; bool exit = true; for (i = 0; i < p_rifornimentos.Length && exit; i++) { if (p_rifornimentos[i].GetTipoCarburante() == "gasolio") { exit = false; } } return i - 2; } }