Corso di Laurea in Tecnologie Web e Multimediali
Esame di Programmazione e laboratorio, A.A. 2002/03
Progetto per l'appello straordinario (9,15/12/2003):
Implementazione di un semplice programma per la gestione delle statistiche di una squadra di pallacanestro

Introduzione

Si richiede di implementare un programma che, tramite un'interfaccia grafica, consenta di gestire alcune statistiche di una squadra di pallacanestro.

Descrizione del lavoro

Il programma elabora una serie di file che contengono i dati delle singole partite, calcola e visualizza le classifiche marcatori, media punti e numero falli. Si invoca con

java Statistiche <nomeFileListaPartite>

Il file <nomeFileListaPartite> contiene nella prima riga il numero di partite, in quelle successive i nomi dei file che contengono i dati delle partite. Ad esempio:

3
partita1.dat
partita2.dat
partita3.dat

Ogni file contenente i dati di una partita è composto da tre sezioni ed è fatto così:

//giocatori
numgiocatori
nomegiocatore1  numeromaglia
nomegiocatore2  numeromaglia
...
//falli
numeromaglia numerofalli
numeromaglia numerofallli
...
//canestri
numeromaglia punti
numeromaglia punti 

Ad esempio:

//giocatori
2
Mauro 4
Piero 5
//falli
4 2
5 3
//canestri
4 2
4 2
5 3
4 1
5 2
4 2 

Questo file rappresenta una partita con 2 giocatori: Mauro con la maglia numero 4 e Piero con la maglia numero 5. Mauro (num. 4) ha fatto 2 falli e ha segnato 3 canestri da 2 punti ed uno da 1 punto. Piero ha 3 falli, un canestro da 3 e un canestro da 2. Osservate che mentre la somma del numero di falli è già indicata nel file (perché, possiamo immaginare, viene scritta a fine partita), la somma dei punti realizzati da ogni giocatore non lo è (perché viene aggiunta una riga ad ogni canestro realizzato), e quindi, ad esempio, per capire quanti falli ha commesso Piero basta leggere una riga mentre per capire quanti punti ha realizzato Piero bisogna leggere più righe e fare una somma.

Una volta invocato, il programma Statistiche deve elaborare tutti i file che contengono i dati delle partite e permettere di visualizzare:

Un esempio di interfaccia del programma è visibile nelle figure seguenti. Nella prima è riportata la classifica dei marcatori (scelta dal menu corrispondente); nella seconda la media di punti realizzati per partita.

GUI1

GUI2

Le videate sono state ottenute usando questi file.

Ovviamente, questa è solo una delle molte possibili implementazioni, che viene fornita solo per esempio, e che quindi siete liberissimi di modificare. Potete anche apportare delle migliorie. Ad esempio, potete permettere il salvataggio della classifica in formato HTML, o la visualizzazione delle classifiche dopo una giornata, dopo 2 giornate, dopo 3 e così via; potete scrivere l'interfaccia che consente di scrivere i vari file; potete usare pulsanti e campi di testo per lettura da e salvataggio su file; ecc. ecc.

Modalità

Il livello di complessità del programma prodotto può essere deciso liberamente dagli studenti; ovviamente, progetti più articolati e complessi otterranno una valutazione migliore di progetti più semplici, ma si consiglia di fare "poco e bene" piuttosto che "tanto e male": progetti semplici possono comunque ottenere il massimo punteggio, purché ben fatti. La durata prevista del lavoro, considerando un gruppo di 3 persone che lavorano a tempo pieno, è di una settimana al massimo.

Il progetto va realizzato in gruppi di 3 persone (a meno di accordi particolari con il docente, possibili solo in casi di reale e comprovata necessità), e tutti i componenti di un gruppo devono conoscere tutti i dettagli del progetto, come se l'avessero realizzato da soli.

Va preparata una breve relazione, preferibilmente (ma non necessariamente) in XHTML + CSS, sul lavoro effettuato. La relazione deve contenere:

  1. Una breve analisi del problema ed una descrizione intuitiva delle specifiche (meno di 2 pagine!).
  2. Le eventuali semplificazioni apportate rispetto alla versione completa richiesta (poche righe). Ovviamente, le semplificazioni porteranno a valutazioni inferiori. Inoltre, le semplificazioni vanno adeguatamente motivate. (A scanso di equivoci, i programmi che si limitino a visualizzare i file senza nessuna elaborazione saranno considerati insufficienti)
  3. Eventuali aggiunte (cose in più non richieste; ad esempio uso di componenti dell'AWT non spiegati a lezione, uso delle Swing, aggiunta di funzionalità non richieste, aggiunta di menu, ecc. ecc.).
  4. Le motivazioni di tutte le scelte effettuate (ad esempio, perché avete apportato una semplificazione, perché avete deciso di usare certi componenti grafici e non altri, perché avete fatto certe scelte di progetto piuttosto che altre, e così via).
  5. Il listato completo del programma, con commenti (in javadoc, ma non solo), scritto in font non proporzionale (come questo: la "i" e la "m" occupano la stessa larghezza) e opportunamente incolonnato ("indentato").
  6. Una "prova di esecuzione" (di circa 3 pagine) che illustri il funzionamento del programma: una spiegazione con testo e figure del modo in cui il programma funziona (aspetto dell'interfaccia utente, esempio di esecuzione adeguatamente spiegato, ecc.)

Il progetto va consegnato inderogabilmente entro l'inizio della prova scritta dell'appello, ossia il 9 dicembre 2003 ore 9:00, sia in forma cartacea (1 copia), sia via posta elettronica (2 copie, una per docente, indirizzi: coppola@dimi.uniud.it e mizzaro@dimi.uniud.it). Si richiede un unico messaggio:

NOTA Questo progetto è valido per chi intende sostenere l'esame nell'appello straordinario (9, 15 dicembre 2003), e va quindi consegnato entro la scadenza. Non si accetteranno ritardi per nessun motivo. Per gli appelli successivi saranno predisposti altri progetti.

Raccomandazioni

Alla valutazione del progetto concorrono vari aspetti (rilevanza delle semplificazioni apportate, qualità della relazione, ecc.), ma è di prioritaria importanza la qualità del programma prodotto, soprattutto per quanto concerne le caratteristiche di leggibilità, modificabilità...Esempi di criteri per la valutazione:

Altre raccomandazioni:

Per eventuali dubbi rivolgersi ai docenti, o durante l'orario di ricevimento o per posta elettronica.


Valid XHTML 1.1! Stefano Mizzaro Last modified: Mon Nov 10 18:42:16 ora solare Europa occidentale 2003