Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale

Transcript

Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale
Fondamenti di Informatica
Corsi di Laurea in Ingegneria
Gestionale
Canale AL
ESERCITAZIONE 8
ARGOMENTI:
I/O CON FLUSSI DI CARATTERI
Esercizio 1
Create con notepad.exe nella vostra
directory due file "pari.txt" e "dispari.txt"
copiando i versi del terzo canto dell'Inferno
trovati nella slide successiva. Come vedrete,
i versi appartengono alle prime tre strofe ma
sono raggruppati in versi pari e dispari.
Scrivete un programma LetturaDante che
crei un terzo file "dante.txt" in cui scriva le
linee lette alternativamente dai due file
riportando il testo a quello originale.
Versi da copiare
File "dispari.txt"
Per me si va ne la città dolente,
per me si va tra la perduta gente.
fecemi la divina podestate,
Dinanzi a me non fuor cose create
Lasciate ogne speranza, voi ch'intrate'.
File "pari.txt"
per me si va ne l'etterno dolore,
Giustizia mosse il mio alto fattore;
la somma sapïenza e 'l primo amore.
se non etterne, e io etterno duro.
Esercizio 2 – la classe Persona
Si vuole realizzare il sistema di gestione delle persone in una azienda.
A. La prima classe da realizzare è Persona e rappresenta tutte le
istanze di persone nell'azienda. Una persona viene caratterizzata
dalle seguenti proprietà:
– cognome e nome: una stringa di caratteri,
– data di nascita: una stringa di caratteri,
– sesso: un carattere 'M' o 'F',
– stipendio: un valore in euro.
La classe Persona deve avere i seguenti metodi delle istanze:
• costruttore con 4 argomenti per le 4 proprietà della persona,
• metodi get e set per ciascuna proprietà dell'oggetto,
• un metodo toString che restituisca una stringa con le 4 proprietà
elencate.
La classe Persona ha anche un metodo statico:
• creaPersona con un argomento BufferedReader che restituisce un
nuovo oggetto Persona inizializzato con i dati letti con l'argomento
BufferedReader da un file già aperto.
Esercizio 2 – la classe GestionePersone
B. La seconda classe da realizzare è GestionePersone che serve
alla gestione dell'insieme delle persone nell'azienda. L'unico oggetto
della classe ha tre variabili di istanza:
1. il numero di persone nell'azienda,
2. un array personale che contiene tutti gli oggetti Persona e
3. un oggetto BufferedReader br utilizzato per salvare/caricare dati
dal/nel file.
La classe deve avere i seguenti metodi:
• un costruttore con due argomenti: il numero di persone nell'azienda e
il nome del file dove si trovano informazioni su queste persone. Un
esempio del file si trova nella slide successiva;
• un metodo carica() che inizializzi l'array con le persone trovate nel
file memorizzato nell'oggetto;
• un metodo salva() che memorizzi nel file le informazioni delle
persone trovate nell'array,
• un metodo statico main() che:
– legge il numero di persone (diciamo 4) e il nome del file
("persone.txt") dalla riga di comando o con JOptionPane,
– legge con br dal file le informazioni creando degli oggetti Persona
e memorizzandoli nell'array,
– aumenta gli stipendi delle persone di 5%,
– salva le persone nel file.
Esercizio 2-Il contenuto del file "persone.txt"
Fabio De Simoni
20/3/1984
M
2040.00
Maurizio Bianchi
1/7/1983
M
2560.50
Maria Ricci
12/11/1982
F
2810.88
Giuseppe Cantori
30/12/1983
M
2040.00
Esercizio 3
Create con notepad.exe nella vostra directory un
file "dante.txt" copiando i versi iniziali del III canto
dell'Inferno trovati nella slide successiva. Come
si può vedere, i versi sono correttamente
numerati, ma non sono ordinati.
Scrivete un programma LetturaDante che:
1. legga il file "dante.txt", linea per linea,
memorizzando gli n versi in un array di n
elementi String. Il valore di n (in questo caso 9)
viene trasmesso dalla riga di comando. Se
manca n nella riga di comando il programma lo
richiede con JOptionPane.showInputDialog;
2. ordini nell'array i versi delle tre strofe;
3. visualizzi i versi in ordine corretto lasciando una
riga vuota tra le strofe.
Il file "dante.txt"
(da copiare)
8
6
3
9
4
2
1
5
7
se non etterne, e io etterno duro.
la somma sapïenza e 'l primo amore.
per me si va tra la perduta gente.
Lasciate ogne speranza, voi ch'intrate'.
Giustizia mosse il mio alto fattore;
per me si va ne l'etterno dolore,
Per me si va ne la città dolente,
fecemi la divina podestate,
Dinanzi a me non fuor cose create