Leggete bene tutte le istruzioni! In particolare i paragrafi modalità e raccomandazioni.
Si richiede di implementare un programma che, tramite un'interfaccia grafica, consenta di cifrare testi utilizzando un banale algoritmo di crittografia che si limita a
n
posizioni più avanti nell'alfabeto. Il numero di posizioni n
deve essere un parametro passato al programma sulla
linea di comando.
Il programma deve permettere di inserire un testo e cifrarlo o decifrarlo. Il risultato della cifratura dipende dal parametro passato al programma sulla linea di comando. Se ad esempio il programma viene invocato con
java nomeProgramma 2
e poi si prova a cifrare azzurro, il risultato sarà cbbwttq. Infatti la lettera a è stata sostituita con c, la z con b (notate che si deve andare avanti di n posizioni in modo "ciclico"), la u con w e così via.
Una possibile interfaccia è mostrata in figura. Notate che se si cifra un testo e poi lo si decifra, non si ottiene il testo esattamente uguale all'originale perché gli spazi, la punteggiatura, quali lettere erano maiuscole e quali minuscole, sono tutte informazioni che vengono perse.
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 come, ad esempio, aggiungere metodi di crittografia oppure permettere di specificare il numero di posizioni anche tramite l'interfaccia grafica.
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 (leggete bene le raccomandazioni!). 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 assolutamente in gruppi di 3 persone e tutti i componenti di
un gruppo devono conoscere tutti i dettagli del
progetto, come se l'avessero realizzato da soli.
Progetti realizzati da gruppi di meno o più persone non verranno valutati. In caso
di difficoltà nel trovare compagni è possibile mandare una email ai docenti che provvederanno
ad assegnare i compagni mancanti.
Va preparata una breve relazione, preferibilmente (ma non necessariamente) in XHTML + CSS, sul lavoro effettuato. La relazione deve contenere:
come
questo: la "i" e la "m" occupano la stessa larghezza
) e
opportunamente incolonnato ("indentato").Il progetto va consegnato inderogabilmente entro l'inizio
della prova scritta dell'appello, ossia il 2 settembre 2004 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:
Il progetto in forma cartacea può essere consegnato a mano subito prima del compito scritto oppure può essere consegnato nei giorni precedenti lo scritto direttamente a uno dei docenti o nella casella della posta del dipartimento di matematica e informatica.
NOTA Questo progetto è valido per chi intende sostenere il quarto appello estivo (02, 09 settembre 2004), e va quindi consegnato entro la scadenza. Non si accetteranno ritardi per nessun motivo. Per gli appelli successivi saranno predisposti altri progetti.
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:
setResizable(false)
)? E quindi la si può
usare su schermi di varie dimensioni?Altre raccomandazioni:
setPreferredSize
. Piuttosto
pensate ad un layout che funzioni con qualsiasi dimensione
sensata.x = 2; //assegno 2 a x
:
qualunque programmatore sa cosa vuol dire x=2;
!!static
solo perché il compilatore dà
errore. Usatelo solo se serve veramente.public
solo perché il compilatore dà
errore. Usatelo solo se serve veramente.Per eventuali dubbi rivolgersi ai docenti, o durante l'orario di ricevimento o per posta elettronica.