Livello difficoltà: avanzato.
Nota. Esiste un video che sviluppa passo questo progetto: 56 minuti di videolezione 40 MByte click qui
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 (int32), data (string, 10 caratteri); realizzate l’accesso tramite properties.
Definire poi la classe ‘Ritardi’ per gestire un file di oggetti Pass: nello stato interno mettete il nome per un file di testo (ftesto) ed uno per un file binario (fbinario); mettete inoltre un vettore di 100 pass. Implementare poi i seguenti metodi:
- 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.
- Salva: trasferisce i pass dal vettore al file binario (che deve essere creato nuovo)
- Annulla: riceve la posizione nel file binario (1=primo, 2=secondo ecc.) di un pass che deve essere sovrascritto con spazi nei campi cognome e data e con il valore 0 nel campo ritardo.
- Cerca: riceve una data per localizzare sul file binario tutti i pass con quella data per azzerare i minuti di ritardo corrispondenti.
- Add per aggiungere un pass al vettore: se il vettore è diventato pieno lo stesso metodo prima lo ‘svuota’ salvando i pass in coda a quelli esistenti sul file binario.
- Export: salva sul file di testo i pass del vettore con ritardo superiore ad un certo numero di minuti.
- Aggiorna: riceve i nuovi dati e la posizione di un pass da aggiornare sul file binario.
- Azzera: riceve i dati vecchi di un pass che deve essere prima localizzato sul file binario per poi sovrascrivere tutti i sui campi (con spazi nei campi cognome e data e 0 come ritardo). |