Prezzo medio blu in intervallo

This commit is contained in:
La Programmatrice Verde
2026-03-17 09:38:24 +01:00
parent b74d3033e5
commit 6cb2bbc1d3
2 changed files with 54 additions and 8 deletions

View File

@@ -4,9 +4,8 @@ import java.util.Calendar;
public class Automobile {
private String numeroTelaio;
private Calendar dataDiVendita;
private Calendar dataDiVendita;
private String colore;
private double prezzoDiVendita;
private int etaAcquirente;
@@ -26,4 +25,12 @@ public class Automobile {
public int getEtaAcquirente() {
return etaAcquirente;
}
public Calendar getDataDiVendita() {
return dataDiVendita;
}
public double getPrezzoDiVendita() {
return prezzoDiVendita;
}
}

View File

@@ -52,11 +52,19 @@ public class ConcessionariaLista {
pausa();
break;
case 2:
System.out.println(etaMediaPerColore(concessionaria));
if (concessionaria.isEmpty()) {
System.out.println("Inserire almeno un'auto prima di proseguire.");
} else {
System.out.println(etaMediaPerColore(concessionaria));
}
pausa();
break;
case 3:
if (concessionaria.isEmpty()) {
System.out.println("Inserire almeno un'auto prima di proseguire.");
} else {
System.out.println(prezzoMedioBluInIntervallo(concessionaria));
}
pausa();
break;
default:
@@ -86,7 +94,7 @@ public class ConcessionariaLista {
System.out.print("Inserire il numero di telaio: ");
numeroTelaio = sc.nextLine();
dataDiVendita.setTime(dataDiVendita());
dataDiVendita.setTime(data("di vendita"));
colore = colore();
@@ -97,7 +105,7 @@ public class ConcessionariaLista {
concessionaria.add(new Automobile(numeroTelaio, dataDiVendita, colore, prezzoDiVendita, etaAcquirente));
}
private static Date dataDiVendita() {
private static Date data(String diCheCosa) {
SimpleDateFormat sdf = new SimpleDateFormat(FORMATO_DATA);
boolean error;
Date data = null;
@@ -105,7 +113,7 @@ public class ConcessionariaLista {
do {
error = false;
System.out.print("Inserire la data di vendita nel formato " + FORMATO_DATA + ": ");
System.out.print("Inserire la data " + diCheCosa + " nel formato " + FORMATO_DATA + ": ");
try {
data = sdf.parse(sc.nextLine());
} catch (ParseException _) {
@@ -475,9 +483,40 @@ public class ConcessionariaLista {
if (quantitaEta == 0) {
etaMediaPerColore = "Nessuno acquista un'auto di colore " + colore.toLowerCase();
} else {
etaMediaPerColore = "L'età media di chi acquista un'auto di colore " + colore.toLowerCase() + " è " + (etaTotale/quantitaEta);
etaMediaPerColore = "L'età media di chi acquista un'auto di colore " + colore.toLowerCase() + " è "
+ ((double) etaTotale / quantitaEta);
}
return etaMediaPerColore;
}
private static String prezzoMedioBluInIntervallo(LinkedList<Automobile> concessionaria) {
String prezzoMedioBluInIntervallo;
ListIterator<Automobile> iterator = concessionaria.listIterator();
Calendar inizioIntervallo = Calendar.getInstance();
Calendar fineIntervallo = Calendar.getInstance();
Automobile corrente;
double prezzoTotale = 0;
int quantitaPrezzo = 0;
inizioIntervallo.setTime(data("dell'inizio dell'intervallo in cui cercare"));
fineIntervallo.setTime(data("della fine dell'intervallo in cui cercare"));
while (iterator.hasNext()) {
corrente = iterator.next();
if (corrente.getDataDiVendita().after(inizioIntervallo) && corrente.getDataDiVendita().before(fineIntervallo)) {
prezzoTotale += corrente.getPrezzoDiVendita();
quantitaPrezzo++;
}
}
if (quantitaPrezzo == 0) {
prezzoMedioBluInIntervallo = "Nessuno acquista un'auto di colore blu";
} else {
prezzoMedioBluInIntervallo = "Il prezzo medio di un'auto di colore blu è "
+ (prezzoTotale / quantitaPrezzo);
}
return prezzoMedioBluInIntervallo;
}
}