diff --git a/Program.cs b/Program.cs index d425987..9729c1f 100644 --- a/Program.cs +++ b/Program.cs @@ -1,12 +1,11 @@ -using Microsoft.Win32.SafeHandles; - -namespace vacanzeEstive_benzinaio; +namespace vacanzeEstive_benzinaio; class Program { static void Main(string[] args) { Console.Clear(); Rifornimento[] rifornimentos = CreaBenzinaio(); (bool, double, double) rifornimento; + double[] totali; int scelta = 0; do { @@ -41,6 +40,12 @@ class Program { Pausa(); break; case 3: + totali = CalcoloTotali(rifornimentos); + Console.WriteLine($"Litri di benzina erogati: {totali[0]}"); + Console.WriteLine($"Guadagno benzina: {totali[1]}"); + Console.WriteLine($"Litri di gasolio erogati: {totali[2]}"); + Console.WriteLine($"Guadagno gasolio: {totali[3]}"); + Console.WriteLine($"Guadagno complessivo: {totali[4]}"); Pausa(); break; default: @@ -64,14 +69,17 @@ class Program { static Rifornimento[] CreaBenzinaio() { Random r = new(); + + const double COSTO_BENZINA = 1.885; + const double COSTO_GASOLIO = 1.812; int totalePompe = r.Next(1, 30); //limito il numero di pompe totali a 30 per evitare di usare 10 GB di RAM int totaleBenzina = r.Next(totalePompe); //creo un numero casuale di pompe di benzina. Se non ce ne sono, allora sono fuori servizio Rifornimento[] ritorno = new Rifornimento[totalePompe]; for (int i = 0; i < totaleBenzina; i++) { - ritorno[i] = new Rifornimento("benzina super", 1.885); + ritorno[i] = new Rifornimento("benzina super", COSTO_BENZINA); } for (int i = totaleBenzina; i < totalePompe; i++) {//riempio il resto dell'array con pompe di gasolio. Non possono essere fuori servizio - ritorno[i] = new Rifornimento("gasolio", 1.812); + ritorno[i] = new Rifornimento("gasolio", COSTO_GASOLIO); } return ritorno; } @@ -117,11 +125,31 @@ class Program { int indiceUltimaPompaBenzina = TrovaIndiceUltimaPompaBenzina(p_rifornimentos); erogazione = p_rifornimentos[r.Next(indiceUltimaPompaBenzina + 1, p_rifornimentos.Length)].Erogazione(); - + ritorno.Item1 = false; ritorno.Item2 = erogazione.Item1; ritorno.Item3 = erogazione.Item2; return ritorno; } + + static double[] CalcoloTotali(Rifornimento[] p_rifornimentos) { + double[] ritorno = new double[5]; + int indiceUltimaPompaBenzina = TrovaIndiceUltimaPompaBenzina(p_rifornimentos); + + for (int i = 0; i < indiceUltimaPompaBenzina; i++) { + + ritorno[0] += p_rifornimentos[i].GetLitriErogatiComplessivi(); //tutti i litri delle pompe di benzina + ritorno[1] += p_rifornimentos[i].GetCostoComplessivo(); //tutti gli incassi delle pompe di benzina + } + + for (int i = indiceUltimaPompaBenzina + 1; i < p_rifornimentos.Length; i++) { + ritorno[2] += p_rifornimentos[i].GetLitriErogatiComplessivi(); //tutti i litri delle pompe di gasolio + ritorno[3] += p_rifornimentos[i].GetCostoComplessivo(); //tutti gli incassi delle pompe di gasolio + } + + ritorno[4] = ritorno[1] + ritorno[3]; + + return ritorno; + } } diff --git a/bin/Debug/net9.0/vacanzeEstive_benzinaio.dll b/bin/Debug/net9.0/vacanzeEstive_benzinaio.dll index a528602..8911bc8 100644 Binary files a/bin/Debug/net9.0/vacanzeEstive_benzinaio.dll and b/bin/Debug/net9.0/vacanzeEstive_benzinaio.dll differ diff --git a/bin/Debug/net9.0/vacanzeEstive_benzinaio.pdb b/bin/Debug/net9.0/vacanzeEstive_benzinaio.pdb index 3d54d25..81454fe 100644 Binary files a/bin/Debug/net9.0/vacanzeEstive_benzinaio.pdb and b/bin/Debug/net9.0/vacanzeEstive_benzinaio.pdb differ diff --git a/obj/Debug/net9.0/ref/vacanzeEstive_benzinaio.dll b/obj/Debug/net9.0/ref/vacanzeEstive_benzinaio.dll index af1b8ee..0bc6519 100644 Binary files a/obj/Debug/net9.0/ref/vacanzeEstive_benzinaio.dll and b/obj/Debug/net9.0/ref/vacanzeEstive_benzinaio.dll differ diff --git a/obj/Debug/net9.0/refint/vacanzeEstive_benzinaio.dll b/obj/Debug/net9.0/refint/vacanzeEstive_benzinaio.dll index af1b8ee..0bc6519 100644 Binary files a/obj/Debug/net9.0/refint/vacanzeEstive_benzinaio.dll and b/obj/Debug/net9.0/refint/vacanzeEstive_benzinaio.dll differ diff --git a/obj/Debug/net9.0/vacanzeEstive_benzinaio.AssemblyInfo.cs b/obj/Debug/net9.0/vacanzeEstive_benzinaio.AssemblyInfo.cs index 9ac603e..862f959 100644 --- a/obj/Debug/net9.0/vacanzeEstive_benzinaio.AssemblyInfo.cs +++ b/obj/Debug/net9.0/vacanzeEstive_benzinaio.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("vacanzeEstive_benzinaio")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+65ca5953b465607bd2914b089ffb227096216243")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+68fce1e25d045fe0451f6f20a27808ec70889cd5")] [assembly: System.Reflection.AssemblyProductAttribute("vacanzeEstive_benzinaio")] [assembly: System.Reflection.AssemblyTitleAttribute("vacanzeEstive_benzinaio")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/obj/Debug/net9.0/vacanzeEstive_benzinaio.AssemblyInfoInputs.cache b/obj/Debug/net9.0/vacanzeEstive_benzinaio.AssemblyInfoInputs.cache index 5d3dde7..4afefaa 100644 --- a/obj/Debug/net9.0/vacanzeEstive_benzinaio.AssemblyInfoInputs.cache +++ b/obj/Debug/net9.0/vacanzeEstive_benzinaio.AssemblyInfoInputs.cache @@ -1 +1 @@ -e582eb33653bc9c49a63e51e76550ffc23d095b9a773769a24b4e149c0e6f14a +5797421c61a714ec074458b94f85e608343d13b32e22a84af55b6c574b6b40b9 diff --git a/obj/Debug/net9.0/vacanzeEstive_benzinaio.dll b/obj/Debug/net9.0/vacanzeEstive_benzinaio.dll index a528602..8911bc8 100644 Binary files a/obj/Debug/net9.0/vacanzeEstive_benzinaio.dll and b/obj/Debug/net9.0/vacanzeEstive_benzinaio.dll differ diff --git a/obj/Debug/net9.0/vacanzeEstive_benzinaio.pdb b/obj/Debug/net9.0/vacanzeEstive_benzinaio.pdb index 3d54d25..81454fe 100644 Binary files a/obj/Debug/net9.0/vacanzeEstive_benzinaio.pdb and b/obj/Debug/net9.0/vacanzeEstive_benzinaio.pdb differ