Ti interessano anche i file di testo? Clic qui
Oppure file di testo usati insieme a file binari? Clic qui
Rubrica 24-02-09
Soluzione
|
LIVELLO DIFFICOLTA': avanzato - ambiente Windows. Si vuole realizzare una applicazione windows per gestire una rubrica di contatti telefonici:
Interfaccia La seguente è solo una proposta di realizzazione dell’interfaccia che rappresenta un discreto compromesso tra un programma ‘vero’ ed un livello di difficoltà adeguato all’uso didattico.
L’applicazione fa scegliere all’apertura file della rubrica da usare. L’utente può annullare se ha intenzione di creare una nuova rubrica (verranno chiesti su una scheda separata i dati del proprietario).
Nel pannello di sinistra si inseriscono i dati di un nuovo contatto che viene aggiunto con il bottone ‘Aggiungi’.
Per modificare i dati di un contatto già inserito o per eliminare un contatto bisogna prima cercarlo: si scrive un cognome (per intero e rispettando le maiscule/minuscole) nel pannello di sinistra e si fa clic sul bottone ‘Cerca’; nel listBox sulla destra verranno visualizzati i dati di tutti i contatti con quel cognome. Se per la ricerca si lascia vuoto il campo cognome il sistema fornirà l’elenco completo dei contatti. Poi:
Periodicamente l’utente potrà compattare la rubrica eliminando i contatti marcati come non attivi usando il bottone ‘Elimina’.
Proposte di miglioramento
|
Training01 10-02-09
Soluzione
|
LIVELLO DIFFICOLTA': principiante. 1. Creare un file binario ‘tombola.dat’ contenente 90 numeri estratti a caso (sono ammessi doppioni). 2. Riaprirlo nella modalità che consente di leggere/scrivere e calcolare la media (double) dei numeri prima registrati. 3. Aggiungere in fondo al file il valore della media (sfruttare la modalità attiva!). 4. Con il comando seek tornare indietro nel file di un numero di bytes pari alla dimensione del double (8 bytes) e rileggere la media visualizzandola sullo schermo come verifica delle operazioni eseguite. 5. Posizionarsi quindi prima del quinto numero presente nel file (gli int occupano 4 bytes). 6. Sovrascrivere con degli 0 tre numeri consecutivi a partire dalla posizione raggiunta. 7. Rileggere l’intero contenuto del file con ReadInt32: perché gli ultimi due numeri visualizzai hanno valori così ‘strani’ ? |
Training02 10-02-09
Soluzione
|
LIVELLO DIFFICOLTA': principiante. 1. Leggere da tastiera una serie di frasi e registrarle su un file binario usando il metodo PadRight(lunghezzaTotale, carattereRiempimento) delle stringhe per formattare tutte le stringhe alla lunghezza di 50 caratteri usando lo spazio come carattere riempitivo; se invece la stringa è più lunga di 50 i caratteri la stringa deve esser e troncata usando il metodo Substring(inizio, n. caratteri) della classe string. Il fatto di avere blocchi di dati di lunghezza uguale ci permetterà di usare il metodo seek per accedere in modo diretto ad una stringa qualsiasi; l’inserimento termina quando viene digitato ‘FINE’. NOTA: per la creazione attivare la modalità di accesso ReadWrite così da poter rileggere il file senza bisogno di chiuderlo. 2. Senza chiudere il file rileggerlo dall’inizio e visualizzare su righe separate tutte le stringhe. 3. Rileggere la terza frase e stamparla a video (usare il metodo seek per spostarsi). 4. Tornando ora indietro sovrascrivere la seconda stringa con degli asterischi. 5. Aggiungere in fondo al file 5 righe di 50 asterischi. 6. Rileggere il contenuto di tutto il file e visualizzarlo |
Training03 22-02-09
Soluzione
|
LIVELLO DIFFICOLTA': medio. PREMESSA. Per poter sfruttare al meglio il comando seek è necessario che le schede (tecnicamente si parla di record, cioè registrazioni) abbiano tutte una stessa lunghezza prefissata; quest’ultima è la somma di quelle dei campi informativi (field) che compongono ciascuna scheda (ad esempio cognome, nome, indirizzo ecc.).
Mentre per i tipi numerici standard l’occupazione in byte è nota e fissa (un int32 occuperà sempre 4 byte, un double o un DateTime sempre 8 byte) per le stringhe è necessaria qualche considerazione in più:
1. Definire la classe schedaRicambio che descrive un ricambio per moto; ogni ricambio è descritto da un codice intero, una descrizione ed un costo (double). Definite solo il costruttore che riceve tutti questi dati ed i tre metodi get… per ottenere il valore di tutte le variabili dello stato intero.
2. Creare il file ricambi.dat. Creare un oggetto schedaRicambio e salvarlo sul file. Chiudere il file.
3. Riaprire il file in append e salvare un secondo oggetto. Chiudere il file.
4. Aprire il file in lettura/scrittura e con il metodo seek posizionarsi all’inizio della seconda scheda, leggerla e stamparla a video; tornare sempre con il seek all’inizio, leggere la prima scheda e stamparla a video.
5. Usare la seek per posizionarsi prima del costo della prima scheda e sovrascriverlo con il valore 9999.0
6. Rileggere e ristampare a video la prima scheda verificando l’avvenuta modifica. |
Pass e ritardi
Soluzione
|
LIVELLO DIFFICOLTA': avanzato. NB: per questo esercizio esiste anche la versione video in cui sviluppo passo passo la soluzione! Clic qui per il vdeoEsercizio Implementare una classe che descrive un ‘Pass’, il foglietto che in alcune scuole consente agli alunni in ritardo di entrare comunque in aula registrando l’evento. Nello stato interno mettere: cognome (string, 29 caratteri), ritardo in minuti (int32), la data (string, 10 caratteri); realizzate l’accesso tramite properties. - Travasa: legge i dati di nuovi pass eventualmente presenti nel file di testo e li aggiunge al vettore; se il vettore diventa pieno i pass in più vengono ignorati.
|
Tutte le videolezioni sono ora su youtube (per ricevere notifiche di nuove videolezioni ISCRIVITI al mio canale) VAI su youtube
Mappa di tutte le playlist clic qui