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.