Tags:
create new tag
view all tags

Programmazione 1 (P-Z) a.a. 2007-08

Homework 5

Termine di consegna 7 Gennaio 2008, Ore 23:59

E' molto importante che prima di inviare le soluzioni leggiate le Indicazioni di consegna.

Esercizio 1

Si consideri un file di testo semplice file_input che contiene le informazioni Nome, cognome, data di nascita e numero di matricola di un gruppo di studenti, formattati all'interno del file nel seguente modo:
Nome1; Cognome1; gg/mm/aaaa; Matricola1;
.....
NomeN; CognomeN; gg/mm/aaaa; MatricolaN;
Si consideri inoltre il seguente tipo:
typedef struct Studente {
  char Nome [20];
  char Cognome [20];
  char data_di_nascita [11];
  unsigned int Matricola;
} record_studente;

Scrivere una funzione con prototipo:

int scrivi_dati(char* file_input, char* file_output);

che prende in input la stringa file_input che contiene il nome di un file di testo semplice, crea, per ogni riga (che corrisponde ad uno studente), una struttura di tipo record_studente e scrive tale record in un file binario dal nome contenuto nella stringa file_output . La funzione deve ritornare:

  • -1 In caso di errore.
  • 0 In caso di scrittura avvenuta con successo.

Esercizio 2

Si consideri il tipo di cui sopra. Scrivere una funzione con prototipo:
int cancella_doppioni(char* file_binario);
che prende in input la stringa file binario che contiene il nome di un file fatto di record_studente, e, per tutti i record che hanno valore uguale nel campo Matricola, pone il campo Matricola uguale a 0. La funzione da' in output:
  • -1 in caso di errore;
  • nr di "record cancellati" in caso di avvenuta "cancellazione".

Attenzione: In entrambi gli esercizi non dovete usare file di appoggio, ma dovete lavorare sui file i cui nomi vengono presi in input dalle funzioni.

Attenzione 2: Non dovete assolutamente utilizzare funzioni di librerie estese, ma solo funzioni delle librerie standard del linguaggio C.


-- JulindaStefa - 11 Dec 2007

Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r2 - 2007-12-21 - JulindaStefa






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback