Fondamenti di Informatica- Compito G1

Prof. Evelina Lamma


26 Giugno 2013


Esercizio (punti 20)


In un file di testo  uno.txt sono memorizzati dati riguardanti alcune persone. Ciascuna riga del file contiene:

La stessa persona può comparire più volte nel file.

Si realizzi un programma C, organizzato in almeno due funzioni, rispettivamente dedicate a:

  1. costruire una lista L in memoria centrale, ordinata sui campi cognome e nome, che riporta in ciascun nodo: cognome e nome della persona, totale dei redditi (se la persona compare più volte nel file, essa compare una sola volta nella lista e il campo intero nella lista è il totale dei suoi redditi;
  2. accedendo a L, stampare con una funzione ricorsiva, il contenuto della lista in un file di uscita output.txt da consegnare con il codice sorgente


Ad esempio, se il file uno.txt contiene:

Rossi Luigi 1000
Rossi Franco 1300
Bianchi Franco 1200
Rossi Franco 600

Il file output.txt dovrà contenere

Bianchi Franco 1200
Rossi Franco 1900
Rossi Luigi 1000

Per chi svolge il compito A+B (+30 min, tot 2,5 h):

Si carichino i dati del file uno.txt in un vettore di strutture, lo si ordini sui campi cognome e nome della persona e lo si stampi in uscita sul file outputAB.txt.

I dati nel file uno.txt sono al massimo 100.


NOTA BENE:   si consegnino i sorgenti, eseguibile e i due file di uscita generati. È possibile utilizzare librerie C (ad esempio per le stringhe). Nel caso si strutturi a moduli l'applicazione qualunque libreria utente va riportata nello svolgimento.