/**
Scrivere una function C che ha come input i dati che identificano uno studente (nome,
cognome, matricola) e che restituisce in output una struttura dati opportuna, che
contiene i dati di identificazione e il libretto universitario con al massimo 20 esami.
Ogni esame è caratterizzato da denominazione, cfu e voto.
**/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// DEFINISCO LE STRUCT
struct libretto {
char desame[10];
int cfu;
int voto;
};
typedef struct libretto libretto;
struct studente{
char nome[10];
char cognome[10];
char matricola[10];
int esami_svolti;
libretto esami[20];
};
typedef struct studente studente;
void stampa(char a[],char b[],char c[], studente studenti[]) {
int i=0,n=10,ie=0;
// Controllo in tutti i record
for (i=0;i<n;i++) {
// Quando le credenziali inserite corrispondono al record all'interno dell'array
if( strcmp(a
,studenti
[i
].
nome)==0 && strcmp(b
,studenti
[i
].
cognome)==0 && strcmp(c
,studenti
[i
].
matricola)==0) { // Ristampo le credenziali
printf("Nome : %s\n",studenti
[i
].
nome); printf("Cognome : %s\n",studenti
[i
].
cognome); printf("Matricola : %s\n",studenti
[i
].
matricola); // E gli esami svolti
for(ie=0;ie<studenti[i].esami_svolti;ie++) {
printf("Denominazione Esame : %s\n",studenti
[i
].
esami[ie
].
desame); printf("CFU : %d\n",studenti
[i
].
esami[ie
].
cfu); printf("VOTO : %d\n",studenti
[i
].
esami[ie
].
voto); }
// Trovato lo studente, brecko e interrompo il for di ricerca
break;
}
}
}
int main () {
// Inizializzo array con i record definiti dalle struct
studente studenti[10];
// strcpy per le stringhe e = per valori numerici
strcpy(studenti
[0].
nome, "Antonio");
strcpy(studenti
[0].
cognome,"Lee"); strcpy(studenti
[0].
matricola,"800023"); studenti[0].esami_svolti=2;
strcpy(studenti
[0].
esami[0].
desame,"PROG1"); studenti[0].esami[0].cfu = 12;
studenti[0].esami[0].voto = 24;
strcpy(studenti
[0].
esami[1].
desame,"ARCH1"); studenti[0].esami[1].cfu = 12;
studenti[0].esami[1].voto = 25;
// Definisco gli array di char che manderò nella procedura
char a[10],b[10],c[10];
// Leggo i dati
printf("Inserisci il nome dello studente:\n"); printf("Inserisci il cognome:\n"); printf("Inserisci la matricola");
// LI mando nella procedura
stampa(a,b,c,studenti);
}