diff --git a/src/benzinaio_java/Rifornimento.java b/src/benzinaio_java/Rifornimento.java index 051db8d..adde3c8 100644 --- a/src/benzinaio_java/Rifornimento.java +++ b/src/benzinaio_java/Rifornimento.java @@ -4,6 +4,8 @@ */ package benzinaio_java; +import java.util.Random; + /** * * @author Verde @@ -12,6 +14,8 @@ public class Rifornimento { final String tipoCarburante; double litriErogatiComplessivi = 0; double costoComplessivo = 0; + double litriErogati; + double costo; final double costoAlLitro; public Rifornimento(String p_tipoCarburante, double p_costoAlLitro) { @@ -19,15 +23,14 @@ public class Rifornimento { this.costoAlLitro = p_costoAlLitro; } - /*public (double, double) Erogazione() { - Random r = new(); - (double, double) ritorno; - ritorno.Item1 = double.Round(r.Next(1, 30) + r.NextDouble(), 3); //arrotonda l'erogazione casuale a 3 cifre decimali - ritorno.Item2 = double.Round(ritorno.Item1 * costoAlLitro, 2); //arrotonda il costo a 2 cifre decimali - this.litriErogatiComplessivi += ritorno.Item1; - this.costoComplessivo = ritorno.Item2; - return ritorno; - }*/ + public void Erogazione() { + Random r = new Random(); + + this.litriErogati = r.nextInt(1, 30) + r.nextDouble(); // Limite tra 1 e 30 litri. + this.costo = this.litriErogati * costoAlLitro; + this.litriErogatiComplessivi += this.litriErogati; + this.costoComplessivo += this.costo; + } public double GetLitriErogatiComplessivi() { return this.litriErogatiComplessivi; @@ -37,6 +40,14 @@ public class Rifornimento { return this.costoComplessivo; } + public double GetLitriErogati() { + return this.litriErogati; + } + + public double GetCosto() { + return this.costo; + } + public String GetTipoCarburante() { return this.tipoCarburante; } diff --git a/src/benzinaio_java/benzinaio_java.java b/src/benzinaio_java/benzinaio_java.java index 6f95d32..02beb20 100644 --- a/src/benzinaio_java/benzinaio_java.java +++ b/src/benzinaio_java/benzinaio_java.java @@ -4,6 +4,7 @@ */ package benzinaio_java; +import java.io.Console; import java.util.InputMismatchException; import java.util.Random; import java.util.Scanner; @@ -19,9 +20,13 @@ public class benzinaio_java { */ static Scanner sc = new Scanner(System.in); + static Random r = new Random(); public static void main(String[] args) { Rifornimento rifornimenti[] = CreaBenzinaio(); + int indiceUltimaPompaBenzina = TrovaIndiceUltimaPompaBenzina(rifornimenti); + int indicePompaInUso; + double totali[]; int scelta = -1; do { @@ -39,16 +44,20 @@ public class benzinaio_java { switch (scelta) { case 0: break; - case 1: - - Pausa(); - break; - case 2: - + case 1,2: + indicePompaInUso = r.nextInt(scelta == 1 ? indiceUltimaPompaBenzina + 1 : indiceUltimaPompaBenzina + 1, rifornimenti.length); + rifornimenti[indicePompaInUso].Erogazione(); + System.out.println((scelta == 1 ? "Benzina" : "Gasolio") + " erogat" + (scelta == 1 ? "a" : "o") + ": " + rifornimenti[indicePompaInUso].GetLitriErogati() + " L"); + System.out.println("Costo: €" + rifornimenti[indicePompaInUso].GetCosto()); Pausa(); break; case 3: - + totali = CalcoloTotali(rifornimenti); + System.out.println("Litri di benzina erogati: " + totali[0]); + System.out.println("Guadagno benzina: " + totali[1]); + System.out.println("Litri di gasolio erogati: " + totali[2]); + System.out.println("Guadagno gasolio: " + totali[3]); + System.out.println("Guadagno complessivo: " + totali[4]); Pausa(); break; default: @@ -69,7 +78,6 @@ public class benzinaio_java { } static Rifornimento[] CreaBenzinaio() { - Random r = new Random(); Rifornimento ritorno[]; final double COSTO_BENZINA = 1.885; @@ -104,4 +112,24 @@ public class benzinaio_java { } return i - 2; } + + static double[] CalcoloTotali(Rifornimento[] p_rifornimenti) { + double[] ritorno = new double[5]; + int indiceUltimaPompaBenzina = TrovaIndiceUltimaPompaBenzina(p_rifornimenti); + + for (int i = 0; i < indiceUltimaPompaBenzina; i++) { + + ritorno[0] += p_rifornimenti[i].GetLitriErogatiComplessivi(); //tutti i litri delle pompe di benzina + ritorno[1] += p_rifornimenti[i].GetCostoComplessivo(); //tutti gli incassi delle pompe di benzina + } + + for (int i = indiceUltimaPompaBenzina + 1; i < p_rifornimenti.length; i++) { + ritorno[2] += p_rifornimenti[i].GetLitriErogatiComplessivi(); //tutti i litri delle pompe di gasolio + ritorno[3] += p_rifornimenti[i].GetCostoComplessivo(); //tutti gli incassi delle pompe di gasolio + } + + ritorno[4] = ritorno[1] + ritorno[3]; //totale complessivo incassi + + return ritorno; + } }