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;
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;
}

View File

@ -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;
}
}