Paola Magillo, Univestita' di Genova, Corso di Programmazione II per SMID, a.a. 2009-2010.

Laboratorio 07:

ESERCIZI SUL CASO DI STUDIO DATA BASE ABBONAMENTI - PARTE I

In questi esercizi vediamo alcune delle classi che fanno parte dell'applicazione Java usata poi per l'esame (vedere lezione 12).

1) Scaricare il materiale

Prendere le classi:

Oppure prenderle tutte insieme in formato .zip: Mettere tutti questi file in una directory.

Prendere anche il data base di esempio, directory Pippo, che viene qui fornito in formato .zip: E decomprimerlo mettendo il file risultante nella stessa directory.

2) Generare la documentazione

Generare con javadoc la documentazione di tutte queste classi. Basta metterle tutte nella directory corrente e poi lanciare javadoc *.java.

Visualizzare la documentazione. Basta cliccare per aprirlo sul file principale di quelli generati da javadoc, che si chiama index.html (si trova nella directory corrente).

4) Esercizio facile

Scrivere una classe che ha un main nel quale:

  1. crea una persona,
  2. crea un abbonamento,
  3. costruisce con questi un abbonato,
  4. lo scrive su un file,
  5. lo rilegge dal file
  6. e lo scrive su standard output.
(per la lettura/scrittura usare la classe LeggiScriviAbbonati).

5) Esercizio medio

Per provare come funziona la ricerca nel data base, scrivere un main (nella classe DataBase o in una nuova classe separata) che esegue le seguenti operazioni:

  1. Crea un data base caricandolo dalla directory Pippo
  2. Carica tutto il contenuto del data base (chiamare la funzione "carica" con criterio di ricerca che non specifica nulla, quest'ultimo e' quello che risulta dal costruttore della classe Criterio).
  3. Scorre l'array dei risultati e li stampa tutti su standard output (usare la classe LeggiScriviAbbonati, ricorcarsi di separare in qualche modo le stampe dei vari attributi, es. scrivendo "Abbonato n.X su Y abbonati presenti:", con X=numero d'ordine di questo abbonato e Y=numero abbonati.
Provare poi a modificare impostando nel criterio qualche campo, per es. la durata o la categoria di abbonamento.

6) Esercizio serio su utente abbonato

Scrivere un main per la classe UtenteAbbonato, che esegua le seguenti operazioni (ved. anche dispense, lezione 12):

  1. Guarda quanti parametri ci sono sulla command line (basta guardare args.length)
  2. Se non e' esattamente uno, esce mostrando messaggio di errore.
  3. Se e' uno, lo usa come nome della directory contenente il data base, carica le informazioni del data base (basta costruire un UtenteAbbonato passando il nome dir come parametro).
  4. Chiede da standard input cognome, nome, anno di nascita e password da usare per accedere al database, e li memorizza in apposite variabili.
  5. Chiede accesso al data base (la funzione apposita carica anche i dati dell'abbonato se stesso).
  6. Stampa su standard output tale abbonato.
  7. Chiede da standard input nuovo email e lo memorizza.
  8. Cambia email dell'abbonato.
  9. Salva nel data base l'abbonato cosi' modificato.

7) Esercizio serio su utente gestore

Scrivere un main per la classe UtenteGestore, che esegua le seguenti operazioni (ved. anche dispense, lezione 12):

  1. Guarda quanti parametri ci sono sulla command line (basta guardare args.length)
  2. Se non e' esattamente uno, esce mostrando messaggio di errore.
  3. Se e' uno, lo usa come nome della directory contenente il data base, carica le informazioni del data base (basta costruire un UtenteGestore passando il nome dir come parametro).
  4. Crea un nuovo abbonato e lo salva.
  5. Crea un criterio di ricerca e ne imposta alcuni campi (a piacere, potete poi provare a variare)
  6. Effettua una ricerca nel data base con quel criterio.
  7. Stampa su standard output tutti gli abbonati trovati.