#include <string>
#include <cstdlib>
#include <iostream>
using namespace std;
///esempio di utilizzo delle strutture in C++
///il codice dichiara una struttura di nome studente, costituita dai campi: nome,
///genere, anni, voto, l'istanza della struttura è un array dinamico, che rappresenta
///gli allievi/e di una classe. lo scopo è quello di popolare la struttura, inserendo
///per ogni allieva/o i dati anagrafici e riempendo sempre per singolo allievo la
///pagella, costituita per semplicità da 4 materie. in output si stampa la struttura.
struct studente
{
string nome;
char genere;
int anni;
float voto;
} ;
studente *load(studente *vt, int dim, string *p)
{
int i, j;
for(i=0; i<dim; i++)
{
cin.ignore();
cout<<"inserisci il nome: "<<endl;
getline(cin,vt[i].nome);
cout<<"inserisci il genere: "<<endl;
cin>>vt[i].genere;
cout<<"inserisci gli anni: "<<endl;
cin>>vt[i].anni;
for(j=0; j<4; j++)
{
cout<<"inserisci il voto di: "<<p[j]<<endl;
cin>>vt[j].voto;
}
cout<<endl;
}
return vt;
}
void print(studente *vt, int dim, string *p)
{
int i, j;
for(i=0; i<dim; i++)
{
cout<<"il nome dello studente: "<<endl;
cout<<vt[i].nome<<endl;
cout<<"di anni: "<<vt[i].anni<<endl;
cout<<"genere: "<<vt[i].genere<<endl;
cout<<"la sua pagella: "<<endl;
for(j=0; j<4; j++)
{
cout<<p[j]<<" "<<vt[j].voto<<endl;
}
cout<<endl;
}
}
int main()
{
int n;
cout<<"inserisci la dimensione: "<<endl;
cin>>n;
while(n<2)
{
cout<<"errore, inserire una dimensione accettabile: "<<endl;
cin>>n;
}
cout<<endl;
studente *v=new studente [n]; ///istanza della struttura.
string *p=new string [4];
string x[4]={"matematica","fisica","informatica","chimica"};
p=x;
v=load(v,n,p);
cout<<endl;
print(v,n,p);
cout<<endl;
delete [] v, p;
cout<<endl;
cout<<"Potere ai Tecnici"<<endl;
cout<<"P.C.++"<<endl;
cout<<endl;
system("PAUSE");
return 0;
}