Progetto di Programmazione Internet A.A. 2002/03 riservato agli studenti in debito.

Versione preliminare

Il presente progetto può essere consegnato solo dagli studenti in debito che non abbiano consegnato entro il termine previsto il progetto 2002/03. Data la sua relativa facilità la massima valutazione prevista è di 26/30.

Descrizione del progetto

Il progetto consiste nell'implementazione di una semplice agenda testuale degli appuntamenti.

Il programma permette di operare sull'agenda come segue:

Tutte le funzionalità sopra indicate vanno attivate dall'utente attraverso l'immissione di appositi comandi. I comandi vanno digitati dall'utente e devono aderire alla seguente sintassi:

  1. appuntamento <descrizione> <data> <ora> <durata> <priorità>
  2. cancella <data> <ora>
  3. lista <periodo> [<ordinamento>]
  4. esci

Dettaglio dei comandi

  1. inserisce nell'agenda un nuovo appuntamento. <descrizione> è una sequenza di testo delimitata dal carattere "; <data> è espressa nel formato gg/mm/aaaa; <ora> è espressa nel formato hh:mm; <durata> è espressa in minuti; <priorità> è un valore numerico compreso fra 1 (bassa) e 10 (alta).
    La data e l'ora di inizio devono essere ammissibili e se precedono il momento attuale il programma non deve accettare l'appuntamento e visualizzare un messaggio di errore per l'utente.
    Esempio:
    appuntamento "correzione progetti" 1/4/2004 10:30 60 5
  2. cancella tutti gli appuntamenti (se ne esistono) che hanno inizio alla data e all'ora specificata.
    Esempio:
    cancella 1/4/2004 10:30
  3. visualizza la lista degli appuntamenti per il periodo specificato. Il periodo può essere: oggi, settimana, mese, tutti. Se non diversamente specificato (senza cioè il campo <ordinamento>) gli appuntamenti visualizzati vengono ordinati per data; se il campo ordinamento è impostato a "per priorità" gli appuntamenti vengono ordinati per priorità.
    Esempi:
    lista oggi
    lista settimana per priorità
  4. esce dal programma dopo avere salvato su file i dati degli appuntamenti. Tali dati dovranno essere ricaricati automaticamente alla successiva esecuzione del programma.

In fase di lancio il programma deve verificare se esistono precedenti dati salvati ed eventualmente caricarli. Nel caso dovrà poi verificare se esistono appuntamenti scaduti. Gli appuntamenti scaduti vengono visualizzati e automaticamente cancellati dall'agenda.

Note sull'implementazione.

Il programma non dovrà fare uso di classi che non siano parte del programma stesso o che non siano parte della libreria di classi standard di Java 2, Standard Edition versione 1.4.

Tempi di consegna

Chi intende sostenere lo scritto a febbraio (non la prova in itinere, ma lo scritto per gli studenti in debito di esame) dovrà consegnare il presente progetto entro le ore 9 del giorno 10 Febbraio 2004; chi invece intende sostenere lo scritto in date successive, dovrà consegnare il presente progetto entro le ore 9 del giorno 1 Giugno 2004.
Nota bene: chi tra gli studenti in debito non intende sostenere lo scritto di febbraio potrà scegliere se conseganre il presente progetto oppure se consegnare quello previsto per l'A.A. 2003/04 (progetto le cui specifiche verranno pubblicate non prima di Pasqua) e poter ambire al voto pieno.

Modalità di consegna

Occorre consegnare in formato digitale (mail a turrini@cs.unibo.it) un file in formato jar (per info sul formato jar fare riferimento a:
http://developer.java.sun.com/developer/Books/JAR/basics/index.html) contenente le seguenti directory:

La mail deve avere subjet "consegna progetto <nomeGruppo>" e in attachment il file <nomeGruppo.jar>.
Il nome gruppo deve essere di al massimo 6 digit (lettere o numeri) (può essere formato con le sillabe iniziali dei cognomi) e deve contenere solo lettere e numeri; all'interno del messaggio vanno specificati i nomi degli appartenenti al gruppo.

La documentazione deve essere consegnata anche in formato cartaceo lasciandola nella casella di posta dei dottorandi (che si trova al primo piano del dipartimento di informatica) indirizzata alla dott. Turrini.

Vanno consegnati in forma cartacea il file project.html e tutti i file sorgenti stampati in orizzontale (sotto linux si puo' usare enscript -r nomefile). Ogni stampa deve essere graffettata nell'angolo in alto a sinistra.

I tempi per la consegna della documentazione cartacea sono gli stessi della consegna del progetto.