Esercizio 1: Gara di MotoGP

Transcript

Esercizio 1: Gara di MotoGP
Esercizio 1: Gara di MotoGP
ƒ
Si progetti ed implementi un componente software che realizza un
flitro invocabile tramite interfaccia grafica (GUI).
ƒ
Il filtro cerca in un file sorgente le informazioni relative alle rilevazioni
cronometriche di una gara di MotoGP e le scrive su un file di output.
ƒ
L’interfaccia grafica consente di immettere il nome del pilota, di
visualizzarne miglior tempo sul giro e velocità massima toccata in
gara, e di comandare la scrittura di tali informazioni sul file di output.
Esercizio 1: Gara di MotoGP
ƒ
Il file sorgente (race.txt) è organizzato per gruppi di 3 linee, così
strutturate:
1. una linea secondo il formato:
nome:<nome_pilota>
2. 27 linee, una per ogni giro della gara, secondo il formato
ngiro <sp> tempo <sp> i1 <sp> i2 <sp> i3 <sp> i4 <sp> speed
ƒ
dove ngiro è il numero del giro;
tempo è il tempo totale di percorrenza del giro;
i1, i2, i3, i4 sono le rilevazioni cronometriche intermedie (in
secondi) su una porzione del giro (sommando gli intermedi si
ottiene il tempo totale);
speed è la massima velocità raggiunta nel giro
<sp> è un carattere di spazio;
3.
una linea vuota
Esercizio 1: Gara di MotoGP
ƒ
L’interfaccia grafica ha una struttura simile alla seguente figura:
ƒ
L’interfaccia include una finestra dal titolo “Filtro” ed un pannello.
ƒ
ƒ
ƒ
Il pannello ha tre etichette: “Rider”, “Best Lap”, “Top Speed”
tre campi di testo (di cui uno editabile e due non editabili) inizializzati
come mostrato in figura
e due bottoni: “Search” e “Report”.
Esercizio 1: Gara di MotoGP
ƒ
Inserendo il nome di un pilota nella casella di testo “Rider” e
premendo il bottone “Search”, l’applicazione analizza il file race.txt alla
ricerca delle linee che riguardano il pilota indicato.
ƒ
Se il file non contiene informazioni relative al pilota specificato, nel
campi di testo accanto alle etichette “Best Lap” e “Top Speed” viene
visualizzata la stringa “NOT FOUND”.
Esercizio 1: Gara di MotoGP
ƒ
Se il file contiene informazioni relativa al pilota specificato
ƒ nel campo di testo “Best Lap” viene il miglior tempo su giro (in
minuti e secondi)
ƒ nel campo “Top Speed” il valor massimo tra le velocità massime
relative ai 27 giri
Esercizio 1: Gara di MotoGP
ƒ
Se si preme il tasto “Report”, l’applicazione scrive nel file di output
data.txt le informazioni visualizzate nell’interfaccia, secondo il
seguente formato:
<nome pilota>
Best Lap:<sp><miglior tempo su giro><sp>(<numero giro>)
Top Speed:<sp><velocità massima in gara>
ƒ
Nel caso la ricerca precedente non abbia prodotto alcun risultato
(ossia non esistono dati relativi al pilota considerato), alla pressione
del tasto “Report” non deve seguire alcuna azione.
Esercizio 1: Gara di MotoGP
ƒ
Suggerimento per l’interfaccia grafica:
Per facilitare la disposizione dei componenti nel pannello, è possibile
specificare la seguente linea di codice prima di procedere con
l’aggiunta di etichette di testo e bottoni
setLayout(new GridLayout(4, 2, 5, 5));
che imposta per il pannello una griglia di 4 righe e 2 colonne.
ƒ
L’inserimento dei componenti nel pannello parte dalla casella in alto
a sinistra della griglia e procede per righe.
Esercizio 2: Ricerca parola
ƒ
Si progetti ed implementi un componente software che realizza un
flitro invocabile tramite interfaccia grafica (GUI).
ƒ
Il filtro cerca in un file sorgente le occorrenze di una determinata
parola.
ƒ
L’interfaccia grafica consente di immettere il nome del file sorgente, la
parola da cercare e di visualizzare il numero di occorrenze di tale
parola nel file.
Esercizio 2: Ricerca parola
ƒ
Il file sorgente è un qualunque file di testo, in cui le parole sono
separate da spazi e punteggiatura.
ƒ
Il pannello ha tre etichette:
ƒ Nome file
ƒ Parola da cercare
ƒ Numero di occorrenze
ƒ
Tre campi di testo associati alle rispettive etichette:
ƒ Campo in cui inserire il nome del file (editabile)
ƒ Campo in cui inserire la parola da cercare (editabile)
ƒ Campo in cui visualizzare il numero di occorrenze (non editabile)
ƒ
E un pulsante per avviare la ricerca.
Esercizio 2: Ricerca parola
ƒ
Inserendo il nome del file e la parola da cercare nei campi opportuni
dell’interfaccia, e premendo il pulsante di ricerca, viene avviata la
ricerca della parola.
ƒ
Se la parola è presente nel file, nel campo non editabile etichettato
con il numero di occorrenze deve essere visualizzato il risultato del
conteggio.
ƒ
Se la parola non è presente, nel campo non editabile etichettato con il
numero di occorrenze deve essere visualizzata la stringa “Not found”.
Esercizio 2: Ricerca parola
ƒ
Note: per punteggiatura si intendono i caratteri tra Space (‘ ‘) e ‘?’
Si veda la tabella ASCII allegata.
ƒ
Per disporre opportunamente gli elementi nel pannello, si suggerisce
di creare etichette vuote in modo da riempire gli spazi nel grid layout.