Si vuole realizzare un programma per la gestione delle prove ufficiali dei gran premi di Formula 1.Per ogni pilota e' necessario mantenere le seguenti informazioni: cognome, casa automobilistica, secondi e centesimi di secondo del giro di prova.
Scrivere una classe Pilota per rappresentare le informazioni relative
ad un Pilota con la seguente interfaccia:
- Pilota(String cognome, String casa) : costruttore con
due argomenti: cognome e casa automobilistica; il costruttore inizializza secondi e centesimi di secondo a
0;
- Pilota(String cognome, String casa, int secondi, int centesimi) : costruttore con
quattro argomenti: cognome, casa automobilistica, secondi e centesimi di secondo;
- String getCognome( ) : restituisce il cognome del pilota;
- String getCasa( ) : restituisce la casa automobilistica del pilota;
- int getSecondi( ) restituisce i secondi del giro di qualificazione;
- int getCentesimi( ) : restituisce i centesimi di secondo del giro di qualificazione;
- void setSecondi( ) : modifica i secondi del giro;
- void setCentesimi( ) : modifica i centesimi di secondo del giro;
- boolean piuVeloceDi(Pilota x): restituisce true se il pilota su cui il
metodo è invocato è stato piu' veloce del Pilota x, e false altrimenti;
- boolean uguale( Pilota x ) : restituisce true se il cognome e casa automobilistica del pilota su cui il
metodo è invocato è uguale a x (indipendentemente da minuti,secondi e centesimi),
e false altrimenti;
Programma di esempio: ProvaPilota.java
public class ProvaPilota {
public static void main (String[] args) {
Pilota p1 = new Pilota("Schumacher", "Ferrari",80,96);
System.out.println("Pilota: "+p1.getCognome());
System.out.println("Casa: "+p1.getCasa());
int minuti=p1.getSecondi()/60;
int secondi=p1.getSecondi()%60;
System.out.println("Tempo: "+minuti+ ":"+secondi+":"+p1.getCentesimi());
Pilota p2 = new Pilota("Montoya","Williams");
System.out.println("P1 e P2 sono uguali:"+p1.uguale(p2));
p2.setSecondi(81);
p2.setCentesimi(10);
System.out.println("P1 piu' veloce di P2:"+p1.piuVeloceDi(p2));
}
}
Viene fornita una classe qualificazioni.java che
mette a disposizione un metodo Pilota[] leggi(String) che legge
da un file avente il nome passato come argomento un insieme di record rappresentanti
oggetti della classe Pilota, e ritorna un array di oggetti Pilota
opportunamente istanziato.
Programma di prova per Qualificazioni1
import java.io.*;
class provaQualificazioni1 {
public static void main (String[] args) throws IOException {
Pilota[] r = qualificazioni.leggi("monza.txt");
Pilota p = Qualificazioni1.polePosition(r);
System.out.println("Pole Position a monza per "+ p.getCognome()+"!");
}
}
Programma di prova per Qualificazioni2
import java.io.*;
class provaQualificazioni2 {
public static void main (String[] args) throws IOException {
Pilota[] r = qualificazioni.leggi("monza.txt");
int e = Qualificazioni2.esclusi(r);
System.out.println("Piloti esclusi a monza: "+ e+".");
}
}