Per gestire l’agenda annuale di alcune persone con interessi in comune, si desidera disporre di un programma interattivo che permetta all’utente di dare comandi per richiedere le seguenti prestazioni:
- Indicare il nome dell’agenda su cui si intende lavorare e, ove essa non esistesse crearne la struttura vuota.
Per l’agenda indicata con il comando A: - Svuotare parte dell’agenda fra due date indicate dall’utente dandone mese e giorno, eliminando tutte le annotazioni del periodo indicato.
- Visualizzare la pagina relativa ad una data di cui l’utente indica mese e giorno, con una intestazione che comprenda anche il giorno della settimana, seguita dalla lista degli appuntamenti in ordine di ora.
Per esempio:
AGENDA 1984 di: Giovannini
Mercoledì 9 maggio
06:00 Volo AZ 715
09:00 Colazione con Turoldi
….. ….
e così via. - Stampare, su sette colonne affiancate con le note della stessa ora allineate sulla stessa riga, le pagine di una settimana con formato simile a quello adottato per il comando III.
Le stampe relative alla prima e all’ultima settimana dell’anno avranno, in genere, qualche colonna bianca. - Inserire una nuova nota dandone mese, giorno, ora.
- Eliminare una nota dandone mese, giorno, ora.
- Terminare il lavoro sull’agenda in esame.
- Terminare l’esecuzione.
- Eliminare un’agenda dal sistema di gestione.
Il candidato dovrà produrre quanto segue:
- Un “manuale d’utente” del programma desiderato che ne illustri almeno:
- le caratteristiche di fondo (limitazioni e/o facilitazioni peculiari del sistema scelto dal candidato, altri particolari, ecc.);
- formati di stampa;
- schermi video e messaggi;
- come dargli i comandi
- i casi in cui il programma rifiuti i comandi, con quali messaggi e/o comportamenti, ed i suggerimenti del caso all’utente;
- le forme con cui indicare i dati di ingresso e loro eventuali limiti;
- tutte le prestazioni che il candidato avrà ritenuto opportuno aggiungere a quelle sopra elencate.
- Una chiara illustrazione delle strutture dati adottate sia in memoria di lavoro sia su memoria di massa, nonché degli algoritmi per gestirle.
- Un programma, scritto per un sistema di programmazione da dichiarare, che esibisca esattamente le prestazioni descritte nel “manuale d’utente”.
Per questo valgano le seguenti direttive:- le agende sono da conservare su memoria di massa;
- una singola agenda è interamente contenuta in memoria di lavoro, anche a costo di limitare il numero di note giornaliere e la lunghezza massima di ciascuna di essi.
È in facoltà del candidato:
- non presentare la codifica dell’intero programma richiesto ma solo delle parti che ritiene più significative, motivando la scelta con riferimento alla documentazione prodotta;
- in fase di creazione di una nuova agenda, chiedere all’utente oltre all’anno, anche se si tratti di un bisestile ed il giorno della settimana del capodanno;
- riformulare il tema, riferendolo ad un ambiente batch anziché interattivo, ma senza introdurvi variazioni per quanto attiene alle richieste.