Si vuole realizzare un programma per la gestione di un mercato ortofrutticolo. Per ogni partita di frutta è necessario rappresentare le seguenti informazioni: tipo della frutta, peso (in Kg), prezzo di vendita al Kg (in migliaia di euro), il numero di giorni dalla raccolta.
Scrivere una classe PartitaFrutta per rappresentare le
informazioni relative ad una partita di frutta con la seguente
interfaccia:
- PartitaFrutta(String frutta, float peso, int giorni):
costruttore con 3 argomenti: frutta, peso, il numero di giorni dalla
raccolta, prezzo; il costruttore inizializza a 0 il prezzo al Kg.;
- String getFrutta( ) : restituisce il tipo di frutta della
partita;
- float getPeso( ) : restituisce il peso della partita di
frutta;
- int getGiorni( ) : restituisce il numero di giorni dalla
raccolta della partita di frutta;
- float getPrezzo( ) : restituisce il prezzo al Kg. della
frutta;
- void setPrezzo(boolean pregiata, float p) : se pregiata
è true il prezzo viene messo pari a p*1.2, altrimenti pari al
valore di p;
- boolean isFresca(int n): restituisce true se il numero di
giorni dalla raccolta della partita di frutta è minore di n;
- boolean uguale( PartitaFrutta x ) : restituisce true se la
partita di frutta su cui il metodo è invocato è uguale a
x (indipendentemente dal numero di giorni dalla raccolta), e false
altrimenti.
Programma di esempio: ProvaPartitaFrutta.java
public class ProvaPartitaFrutta {
public static void main (String[] args) {
PartitaFrutta p1 = new PartitaFrutta("Arance Sicilia",100.3f,0);
System.out.println(p1.getFrutta());
System.out.println(p1.getPeso());
System.out.println(p1.getGiorni());
System.out.println(p1.getPrezzo());
p1.setPrezzo(true,2);
System.out.println(p1.getPrezzo());
PartitaFrutta p2 =
new PartitaFrutta("mele Trentino",100.3f,2);
if (p1.uguale(p2)) System.out.println("p1 e p2 sono uguali");
else System.out.println("p1 e p2 sono diverse");
PartitaFrutta p3 =
new PartitaFrutta(p1.getFrutta(),p1.getPeso(),p1.getGiorni());
if (p1.uguale(p3)) System.out.println("p1 e p3 sono uguali");
else System.out.println("p1 e p3 sono diverse");
}
}
PartitaFrutta leggiPartitaFrutta(String frutta, float peso, int giorni);che prenda in input da tastiera i dati relativi ad una partita di frutta e restituisca l'oggetto di tipo PartitaFrutta costruito a partire da essi;
Viene fornita una classe MercatoFrutta
che mette a disposizione un metodo PartitaFrutta[] leggi(String)che
legge da un file avente il nome passato come argomento un insieme di
record rappresentanti oggetti della classe PartitaFrutta,
e ritorna un array di partite di frutta opportunamente istanziato.
Programma di prova per MercatoFrutta1
import java.io.*;
class ProvaMercatoFrutta1 {
public static void main (String[] args) throws IOException {
String frutta = "Arance Sicilia";
PartitaFrutta[] f1;
f1 = MercatoFrutta.leggi("frutta1.dat");
PartitaFrutta p = MercatoFrutta1.massimoPeso(f1, frutta);
System.out.println("Partita piu' consistente di: " + frutta + ": "
+ p.getPeso());
frutta = "Pere Veneto";
p = MercatoFrutta1.massimoPeso(f1, frutta);
System.out.println("Partita piu' consistente di: " + frutta + ": "
+ p.getPeso());
}
}
Programma di prova per MercatoFrutta2
import java.io.*;
class ProvaMercatoFrutta2 {
public static void main (String[] args) throws IOException{
PartitaFrutta[] f1;
String frutta = "Arance Sicilia";
f1 = MercatoFrutta.leggi("frutta1.dat");
System.out.println("Numero di grosse partite di " + frutta + ": "
+ MercatoFrutta2.grossePartite(f1, frutta));
frutta = "Pere veneto";
f1 = MercatoFrutta.leggi("frutta1.dat");
System.out.println("Numero di grosse partite di " + frutta + ": "
+ MercatoFrutta2.grossePartite(f1, frutta));
}
}