nikpez
Ominide
3 min. di lettura
Vota 4 / 5

Concetti Chiave

  • Il programma creaPittori.c gestisce un file binario PITTORI con tracciato record che include CodPittore, CognomePittore, DataNascita e Genere.
  • CodPittore è la chiave primaria, ma non viene effettuato alcun controllo per evitare duplicati, affidandosi all'utente per l'inserimento corretto.
  • Il programma mostra.c offre funzioni per inserire, ricercare, stampare e aggiornare record, oltre a cancellazioni logiche e fisiche.
  • La funzione di ricerca utilizza CodPittore per trovare e stampare dettagli, o per aggiornare e cancellare record specifici.
  • Cancellazione logica contrassegna un record con CodPittore 0, mentre la cancellazione fisica rimuove definitivamente i record contrassegnati.
Esercizio file binari

Esercizio file binari
· organizzazione sequenziale
· accesso sequenziale e diretto
Scrivi un pgm C (creaPittori.c) che crea un file PITTORI avente il seguente tracciato record:
PITTORI (CodPittore, CognomePittore, DataNascita, Genere)
· CodPittore: chiave primaria, numero intero, per semplicità la inserisce l’utente da tastiera e il
sistema non fa alcun controllo. Stai attento/a a non inserire 2 record con la stessa chiave.
· CognomePittore: cognome del pittore, stringa di 25 caratteri effettivi, per semplicità
memorizziamo solo il cognome del pittore.
· DataNascita: di tipo data (struct di 3 interi: giorno, mese e anno).

Non effettuare, per semplicità,
alcun controllo.
· Genere: genere del pittore, stringa di 15 caratteri effettivi. Supponiamo che ad un pittore sia
associato un unico genere.
Esempio:
CodPittore CognomePittore DataNascita Genere
001 Rossi 01/01/1945 paesaggista
002 Bianchi 12/09/1900 ritrattista
003 Verdi 02/04/1950 paesaggista
Scrivi poi un secondo pgm C (mostra.c) che gestisce l’archivio PITTORI.
Devono poter essere eseguite le seguenti funzioni (logiche):
a) Inserimento, in coda, di un nuovo record nel file. Per semplicità evita di controllare che la
chiave (CodPittore) sia già presente nell’archivio. Stai attento/a a non inserire 2 record con la
stessa chiave. La funzione ritorna 1 se il record è stato inserito, 0 altrimenti.
b) Ricerca di un record, data la chiave (CodPittore). La chiave deve essere un parametro di
ingresso della funzione. La funzione ritorna la posizione relativa del record nel file se il record è
presente (0, 1, 2 , ...) altrimenti -1.
c) Stampa delle informazioni di un pittore. Riceve come chiave il CodPittore, chiama la ricerca()
(vedi punto b)): se il record è presente lo stampa, altrimenti scrive un msg.
d) Stampa tutti i record dell’archivio.
e) Stampa tutte le informazioni dei pittori di un certo genere (parametro di ingresso, chiave
secondaria). Se nessun record viene trovato, la funzione stampa un msg.
f) Aggiorna il genere di un determinato pittore. Riceve il codice, chiama la ricerca, se il record è
presente aggiorna il record e la funzione (aggiorna()) ritorna 1, se il record non è presente la
funzione (aggiorna()) ritorna 0.
g) Cancella (logicamente) un certo pittore. Il parametro di ingresso è la chiave (CodPittore). Se il
record è presente (chiama la ricerca()), cancella logicamente il record mettendo nel campo
CodPittore il valore 0. In questo caso la funzione ritornerà 1, altrimenti 0 (se il pittore non è
presente). Modifica poi tutte le altre funzioni che hai già codificato, in quanto i record cancellati
(logicamente) non devono essere elaborati.
h) Cancellazione fisica dell’archivio: cancellare fisicamente tutti i record cancellati solo
logicamente.

Domande da interrogazione

  1. Qual è la struttura del file PITTORI e quali sono i suoi campi principali?
  2. Il file PITTORI ha una struttura sequenziale e include i seguenti campi: CodPittore (chiave primaria, numero intero), CognomePittore (stringa di 25 caratteri), DataNascita (struct di 3 interi: giorno, mese e anno), e Genere (stringa di 15 caratteri).

  3. Quali funzioni deve gestire il programma mostra.c per l'archivio PITTORI?
  4. Il programma mostra.c deve gestire le seguenti funzioni: inserimento di un nuovo record, ricerca di un record tramite CodPittore, stampa delle informazioni di un pittore, stampa di tutti i record, stampa dei pittori di un certo genere, aggiornamento del genere di un pittore, cancellazione logica di un pittore, e cancellazione fisica dei record cancellati logicamente.

  5. Come viene gestita la cancellazione di un pittore nell'archivio PITTORI?
  6. La cancellazione di un pittore avviene in due fasi: cancellazione logica, dove il CodPittore viene impostato a 0, e cancellazione fisica, che rimuove definitivamente i record cancellati logicamente dall'archivio.

  7. Quali sono le limitazioni imposte nella gestione dei dati nel file PITTORI?
  8. Le limitazioni includono l'assenza di controlli sulla duplicazione della chiave CodPittore e sulla validità dei dati inseriti, come la data di nascita e il genere del pittore.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community