This commit is contained in:
La Programmatrice Verde 2025-10-09 17:35:04 +02:00
parent 6d9e922ee8
commit 357cc2189d
2 changed files with 56 additions and 17 deletions

View File

@ -4,6 +4,8 @@
*/ */
package benzinaio_java; package benzinaio_java;
import java.util.Random;
/** /**
* *
* @author Verde * @author Verde
@ -12,6 +14,8 @@ public class Rifornimento {
final String tipoCarburante; final String tipoCarburante;
double litriErogatiComplessivi = 0; double litriErogatiComplessivi = 0;
double costoComplessivo = 0; double costoComplessivo = 0;
double litriErogati;
double costo;
final double costoAlLitro; final double costoAlLitro;
public Rifornimento(String p_tipoCarburante, double p_costoAlLitro) { public Rifornimento(String p_tipoCarburante, double p_costoAlLitro) {
@ -19,15 +23,14 @@ public class Rifornimento {
this.costoAlLitro = p_costoAlLitro; this.costoAlLitro = p_costoAlLitro;
} }
/*public (double, double) Erogazione() { public void Erogazione() {
Random r = new(); Random r = new Random();
(double, double) ritorno;
ritorno.Item1 = double.Round(r.Next(1, 30) + r.NextDouble(), 3); //arrotonda l'erogazione casuale a 3 cifre decimali this.litriErogati = r.nextInt(1, 30) + r.nextDouble(); // Limite tra 1 e 30 litri.
ritorno.Item2 = double.Round(ritorno.Item1 * costoAlLitro, 2); //arrotonda il costo a 2 cifre decimali this.costo = this.litriErogati * costoAlLitro;
this.litriErogatiComplessivi += ritorno.Item1; this.litriErogatiComplessivi += this.litriErogati;
this.costoComplessivo = ritorno.Item2; this.costoComplessivo += this.costo;
return ritorno; }
}*/
public double GetLitriErogatiComplessivi() { public double GetLitriErogatiComplessivi() {
return this.litriErogatiComplessivi; return this.litriErogatiComplessivi;
@ -37,6 +40,14 @@ public class Rifornimento {
return this.costoComplessivo; return this.costoComplessivo;
} }
public double GetLitriErogati() {
return this.litriErogati;
}
public double GetCosto() {
return this.costo;
}
public String GetTipoCarburante() { public String GetTipoCarburante() {
return this.tipoCarburante; return this.tipoCarburante;
} }

View File

@ -4,6 +4,7 @@
*/ */
package benzinaio_java; package benzinaio_java;
import java.io.Console;
import java.util.InputMismatchException; import java.util.InputMismatchException;
import java.util.Random; import java.util.Random;
import java.util.Scanner; import java.util.Scanner;
@ -19,9 +20,13 @@ public class benzinaio_java {
*/ */
static Scanner sc = new Scanner(System.in); static Scanner sc = new Scanner(System.in);
static Random r = new Random();
public static void main(String[] args) { public static void main(String[] args) {
Rifornimento rifornimenti[] = CreaBenzinaio(); Rifornimento rifornimenti[] = CreaBenzinaio();
int indiceUltimaPompaBenzina = TrovaIndiceUltimaPompaBenzina(rifornimenti);
int indicePompaInUso;
double totali[];
int scelta = -1; int scelta = -1;
do { do {
@ -39,16 +44,20 @@ public class benzinaio_java {
switch (scelta) { switch (scelta) {
case 0: case 0:
break; break;
case 1: case 1,2:
indicePompaInUso = r.nextInt(scelta == 1 ? indiceUltimaPompaBenzina + 1 : indiceUltimaPompaBenzina + 1, rifornimenti.length);
Pausa(); rifornimenti[indicePompaInUso].Erogazione();
break; System.out.println((scelta == 1 ? "Benzina" : "Gasolio") + " erogat" + (scelta == 1 ? "a" : "o") + ": " + rifornimenti[indicePompaInUso].GetLitriErogati() + " L");
case 2: System.out.println("Costo: €" + rifornimenti[indicePompaInUso].GetCosto());
Pausa(); Pausa();
break; break;
case 3: 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(); Pausa();
break; break;
default: default:
@ -69,7 +78,6 @@ public class benzinaio_java {
} }
static Rifornimento[] CreaBenzinaio() { static Rifornimento[] CreaBenzinaio() {
Random r = new Random();
Rifornimento ritorno[]; Rifornimento ritorno[];
final double COSTO_BENZINA = 1.885; final double COSTO_BENZINA = 1.885;
@ -104,4 +112,24 @@ public class benzinaio_java {
} }
return i - 2; 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;
}
} }