20 dicembre 2012 - PM
Fondamenti di Informatica modulo A - Compito A
Prof. Marco Gavanelli
20 dicembre 2012
Esercizio (punti 16)
Il docente di un insegnamento universitario salva i risultati di tutti gli appelli in un file di testo risultati.txt . Ciascun risultato è costituito dalle seguenti informazioni:
- cognome dello studente: stringa contenente al più 20 caratteri, senza spazi
- giorno, mese, anno: tre interi
- voto: intero
Il file contiene al più 100 risultati ed è ordinato in ordine crescente di data.
Uno studente può sostenere più volte l'esame. In caso lo studente decida di dare l'esame più volte, il voto finale è quello dell'ultimo esame che ha sostenuto.
Il docente desidera sapere il voto finale di ciascuno studente. Si scriva un programma C che risolve questo problema, utilizzando il seguente algoritmo:
- nel
main
, si invochi una procedura o funzione di lettura (punto 2), una di elaborazione (punto 3) e una di stampa (punto 4). - La procedura o funzione di lettura deve leggere il file risultati.txt e portarne il contenuto in un opportuno array di strutture, da fornire al
main
; si mostri a video l'array. - La procedura o funzione di elaborazione prende come parametro l'array letto al punto 2 (più eventualmente altri parametri) e fornisce al
main
un array che contiene, per ogni studente- il cognome
- il voto
- Infine, si stampi l'array prodotto al punto 3 con una opportuna procedura (o funzione).
Facoltativo (punti 4)
Si modifichi ora il programma in modo che funzioni anche se il file risultati.txt non è ordinato. Si mostri il risultato ordinato in ordine alfabetico del cognome dello studente.
Si consegnino i file:
- un file
main.c
che contiene ilmain
e le funzioni usate solo nell'esercizio base - un file
facoltativo.c
che contiene ilmain
e le funzioni usate solo nell'esercizio facoltativo - un file
funzioni.c
che contiene le funzioni comuni
più tutti i file header ritenuti necessari. Per correggere l'elaborato, il docente creerà due progetti
- in uno inserirà
main.c
efunzioni.c
- nell'altro inserirà
facoltativo.c
efunzioni.c