Codice:
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
const int MAX=10;
struct data {
int a; //anno
int m; //mese
int g; //giorno
};
struct nominativo {
char nome[40];
struct data nasc; //data di nascita
struct data dipl; //data del diploma
};
typedef struct nominativo elenco;
elenco studin[MAX], studout[MAX]; //studente input, studente output
int richiesta (int sx, int dx){
int n;
cin >> n;
while (n<sx || n >dx) {
cout << "Puoi inserire ";
if (sx==dx) cout << "solo il numero " << sx << ": ";
else cout << "solo numeri compresi tra " << sx << " e " << dx << ": ";
cin >> n;
}
return n;
} //funzione che restituisce un numero compreso tra due estremi
int main (){
int i=0;
//fase di input
cout << "Introdurre nome e cognome dello studente :\n";
cin.getline(studin[i].nome,40);
cout << "Introdurre la data di nascita di " << studin[i].nome << "\n";
cout << "Giorno: ";
studin[i].nasc.g=richiesta(1,31);
cout << "Mese: ";
studin[i].nasc.m=richiesta(1,12);
cout << "Anno: ";
studin[i].nasc.a=richiesta(1900,2100);
cout << "Introdurre la data del conseguimento del diploma di " << studin[i].nome << ".\n";
cout << "Giorno: ";
studin[i].dipl.g=richiesta(1,31);
cout << "Mese: ";
studin[i].dipl.m=richiesta(1,12);
cout << "Anno: ";
studin[i].dipl.a=richiesta(1900,2100);
//fase di calcolo
int k=0;
strcpy(studin[i].nome,studout[k].nome);
studin[i].nasc.g=studout[k].nasc.g;
studin[i].nasc.m=studout[k].nasc.m;
studin[i].nasc.a=studout[k].nasc.a;
studin[i].dipl.g=studout[k].dipl.g;
studin[i].dipl.m=studout[k].dipl.m;
studin[i].dipl.a=studout[k].dipl.a;
//fase di output
cout << "\n\n" << studout[i].nome << "\n";
cout << "Nascita: " << studout[i].nasc.g << " ";
cout << studout[i].nasc.m << " ";
cout << studout[i].nasc.a << " ";
cout << "Diploma: " << studout[i].dipl.g << " ";
cout << studout[i].dipl.m << " ";
cout << studout[i].dipl.a << "\n";
//fase d'attesa per visualizzazione input
char q;
q=getch();
return 0;
}