Sei sulla pagina 1di 2

Esercitazione fine corso 1 (1h 20’)

Utilizzando i principi della programmazione strutturata, progettare e implementare


un programma per la memorizzazione e la gestione dei risultati dei voti d’esame.

Il programma mette a disposizione un menù attraverso il quale l’utente può scegliere tra le
seguenti funzionalità:
- Stampa storico - stampa a video tutte le informazioni contenute nella struttura dati
“storico”. Richiama la funzione “stampa_esame().
- Inserisci nuovo esame - aggiunge un nuovo esame alla struttura dati, inizializzandone
i campi con le informazioni inserite da tastiera *opportunamente validate*
- Calcola media - data una matricola inserita dall’utente da tastiera, il programma
stampa a video la media degli esami sostenuti.
- Stampa voti sopra soglia - dato un voto minimo inserito dall’utente da tastiera, stampa
a video la lista di esami con voto maggiore o uguale a quello inserito.
- Cancella voti studente - data una matricola inserita dall’utente da tastiera, elimina le
informazioni di tutti gli esami relativi a quello studente.

Per l’implementazione del programma, seguire le indicazioni riportate di seguito.

Si preveda una opportuna struttura dati "storico" che permetta la memorizzazione di un


record "esame" contenente i seguenti campi informativi:
- matricola_studente (permette memorizzazione di 4 caratteri)
- nome_esame (il nome dell’esame è al massimo di 50 caratteri)
- voto (numero intero)
- lode (valore booleano)

La struttura dati “storico” gestisca al massimo 100 record di tipo “esame”. Definire una
struttura allocata staticamente (array di record esame).

La struttura dati sia inizializzata come di seguito riportato:


{ "1234", "Fondamenti di Informatica", 25, false}
{ "1235", "Fondamenti di Informatica", 28, false}
{ "1236", "Fondamenti di Informatica", 30, true}
{ "1234", "Analisi I", 18, false}
{ "1236", "Analisi I", 27, false}
{ "1235", "Fisica I", 28, false}
{ "1236", "Fisica I", 26, false}

Implementare le seguenti funzioni:


stampa_esame(). Prende in ingresso un singolo record di tipo esame e mostra a video le
informazioni in esso contenute nel formato seguente:

Matricola: 1236 - Esame: Fondamenti di Informatica - Voto: 30 e lode.

valida_esame(). Prende in ingresso un singolo record di tipo esame e restituisce un valore


booleano. I dati di un esame sono validi se 1) il voto è compreso tra 18 e 30 e 2) se il voto è
30 in caso di lode.
stampa voti sopra soglia(). Prende in ingresso la struttura dati “storico” (ed il suo
riempimento) ed una soglia voto. Stampa a video le informazioni di tutti gli esami il cui voto
è maggiore o uguale alla soglia.

calcola_media_studente(). Prende in ingresso la struttura dati “storico” (ed il suo


riempimento) ed una matricola e restituisce la media degli esami sostenuti dallo studente
associato alla matricola.

cancella voti studente(). Prende in ingresso la struttura dati “storico” (ed il suo riempimento)
ed una matricola. Elimina dalla struttura dati *tutti* gli esami sostenuti dallo studente avente
la matricola indicata.

N.B. le funzioni possono richiamare a loro volta alcune delle funzioni previste per la
realizzazione di compiti elementari.

E’ possibile utilizzare funzioni della libreria cstring, quali strcpy, strcmp, strlen, strcat.

Potrebbero piacerti anche