Esercizio 1: archivio CD e DVD
Realizzare un’applicazione Java per la creazione e la consultazione di
un archivio di dischi ottici (CD e DVD).
L’applicazione riceve da standard input in maniera interattiva le
informazioni necessarie e le scrive, nel formato indicato nelle slide
successive, in un file chiamato cd_dvd.xml.
Ciascun CD è descritto dalle seguenti informazioni:
ƒ titolo
ƒ autore
ƒ anno
ƒ numero delle tracce
ƒ genere
Ad ogni DVD, invece, sono associati i campi:
ƒ titolo
ƒ regista
ƒ anno
ƒ cast
ƒ genere
Esercizio 1: archivio CD e DVD
La struttura del file deve essere analoga a quella del file di esempio
cd_dvd_example.xml allegato a queste slide (per la visualizzazione del file,
usare il browser web o l’applicazione “Blocco Note”)
Alcune note:
… il file si apre sempre con le due linee
<?xml version="1.0" encoding="iso-8859-1" ?>
<archivio_dischi>
e si chiude con la linea
</archivio_dischi>
… Non è posto alcun vincolo sull’ordine delle informazioni relative al singolo
CD / DVD
… Non è possibile ipotizzare che il file contenga prima tutti i descrittori dei
CD e poi quelli dei DVD (o viceversa)
Esercizio 1: archivio CD e DVD
L’applicazione deve essere anche in grado di leggere il file cd_dvd.xml da
essa stessa generato, costruendo un array di istanze dei dischi ottici
popolate con le informazioni specificate nel file [si ricorda che le dimensioni di
un array non possono essere variate a runtime, quindi è necessario contare
quanti elementi occorrerà inserire]
Per l’estrazione delle informazioni dal file, è conveniente servirsi della classe
java.io.StreamTokenizer.
Facoltativamente, è possibile definire una serie di metodi che permettano di
fare ricerche nell’array creato o direttamente nel file (ad esempio, ricerca cd di
un certo autore, dvd di un certo anno, ecc.).
Nel primo caso, è possibile distinguere tra le istanze di CD o DVD utilizzando
l’operatore instanceof, che verifica la classe da cui deriva un’istanza.
Esempi:
String s = new String(“Prova”);
if (s instanceof String)
// l’espressione è true: s è di classe String
if (s instanceof Object)
// l’espressione è true: String è sottoclasse di Object
if (s instanceof char[])
// l’espressione è false: s non è un array di char
Esercizio 2: contabilità domestica
Realizzare un’applicazione Java per gestire voci e importi di spesa.
L’applicazione riceve da standard input in maniera interattiva le
informazioni necessarie e le scrive in un file specificato come parametro
del metodo main.
Il formato delle informazioni scritte nel file è il seguente:
VoceDiSpesa_Importo
dove VoceDiSpesa è il genere di spesa (cibo, abbigliamento, cinema,
ecc) e Importo è l’importo in € corrispondente.
Ciascuna entry occupa una riga del file. Ad esempio:
abbigliamento_250
alimentari_130
vacanze_1200
E’ possibile vincolare il numero di tipologie di spesa trattabili oppure
consentire la massima flessibilità lasciando definire a runtime le
diverse categorie. La scelta è lasciata all’implementazione, purchè
siano rispettate le implicazioni sul codice (controlli, ecc.)
Esercizio 2: contabilità domestica
L’applicazione deve inoltre essere in grado di leggere il file
generato e fornire alcune funzionalità di elaborazione dei
dati.
In particolare, deve poter essere possibile calcolare:
…l’importo medio per ciascuna voce di spesa;
…totale per ciascuna voce di spesa;
…il totale delle spese.
Per passare i parametri al metodo main utilizzando Eclipse,
si veda in fondo a queste stesse slide.
Esercizio 3: filtraggio file di testo
Realizzare un’applicazione Java in grado di cercare una
qualunque parola all’interno del file testo.txt allegato a
queste slide, contando il numero di occorrenze.
L’applicazione deve inoltre essere in grado di creare un
nuovo file testo2.txt ottenuto da testo.txt sostituendo a
tutte le occorrenze di un vocabolo il medesimo vocabolo con
però tutte le lettere maiuscole.
Per analizzare il file di testo, è possibile ricorrere alla classe
java.util.StringTokenizer (si veda la documentazione sulle
API Java).
Passaggio parametri al main (1)
Passaggio parametri al main (2)
Nella finestra che si apre, cliccare su New. Viene creata una nuova configurazione di
esecuzione per la classe selezionata nell’editor (la finestra rimane la stessa, cambia solo il
campo “Name” e si aggiunge un elemento nell’albero delle Java Application a sinistra.
Passaggio parametri al main (3)
Selezionando la tab “Arguments”, è possibile specificare i parametri da passare al main
nel campo “Program arguments”