codice:int get_matricola_studente() { return matricola_studente; } int get_codice_insegnamento() { return codice_insegnamento; } DATA get_data_esame() { return data_esame; } int get_voto() { return voto; } void leggi_matricola_studente(istream&SORG) { int mat; SORG>>mat; matricola_studente=mat; return; } void leggi_codice_insegnamento(istream&SORG) { int codice; SORG>>codice; codice_insegnamento=codice; return; } void leggi_data_esame(istream&SORG) { int g,m,a; char sep; SORG>>g>>sep>>m>>sep>>a; data_esame.giorno=g; data_esame.mese=m; data_esame.anno=a; return; } void leggi_voto(istream&SORG) { int V; SORG>>V; voto=V; return; } void stampa_data_esame(ostream&DEST) { DEST<<data_esame.giorno<<'/'<<data_esame.mese<<'/'<<data_esame.anno<<endl; return; } void stampa_voto(ostream&DEST) { DEST<<"voto: "<<voto<<endl; return; } } class collezione_studenti { private: studente coll_stud[dim_stud]; public: collezione_studenti() { for(int i=0;i<dim;i++) { coll_stud[i].nome=""; coll_stud[i].cognome=""; coll_stud[i].data_di_nascita.giorno=1; coll_stud[i].data_di_nascita.mese=1; coll_stud[i].data_di_nascita.anno=1; coll_stud[i].indirizzo=""; coll_stud[i].matricola=1; coll_stud[i].facolta=""; coll_stud[i].anno_corso=1; coll_stud[i].email=""; } } collezione_studenti(studente st[dim_stud])//costruttore con parametro { for(int i=0;i<dim_stud;i++) for(int j=0;j<dim_stud;j++) { coll_stud[i].persona::nome=st[j].nome;//oggetto di studente campo di persona coll_stud[i].cognome=st[j].cognome; coll_stud[i].data_di_nascita.giorno=st[j].data_di_nascita.giorno; coll_stud[i].data_di_nascita.mese=st[j].data_di_nascita.mese; coll_stud[i].data_di_nascita.anno=st[j].data_di_nascita.anno; coll_stud[i].indirizzo=st[j].indirizzo; coll_stud[i].matricola=st[j].matricola; coll_stud[i].facolta=st[j].facolta; coll_stud[i].anno_corso=st[j].anno_corso; coll_stud[i].email=st[j].email; } } void leggi_coll_stud(istream&SORG) { studente st[dim_stud]; for(int i=0;i<dim_stud;i++) for(int j=0;j<dim_stud;j++) { SORG>>st[j].persona::nome; SORG>>st[j].cognome; SORG>>st[j].data_di_nascita.giorno; SORG>>st[j].data_di_nascita.mese; SORG>>st[j].data_di_nascita.anno; SORG>>st[j].indirizzo; SORG>>st[j].matricola; SORG>>st[j].facolta; SORG>>st[j].anno_corso; SORG>>st[j].email; coll_stud[i].nome=st[j].nome; coll_stud[i].cognome=st[j].cognome; coll_stud[i].data_di_nascita.giorno=st[j].data_di_nascita.giorno; coll_stud[i].data_di_nascita.mese=st[j].data_di_nascita.mese; coll_stud[i].data_di_nascita.anno=st[j].data_di_nascita.anno; coll_stud[i].indirizzo=st[j].indirizzo; coll_stud[i].matricola=st[j].matricola; coll_stud[i].facolta=st[j].facolta; coll_stud[i].anno_corso=st[j].anno_corso; coll_stud[i].email=st[j].email; } return; } void stampa_coll_stud(ostream&DEST) { for(int i=0;i<dim_stud;i++) coll_stud[i].stampa_scheda_studente(cout); return; } int ricerca_per_matricola(int dim_stud,int n_matricola) { for(int i=0;i<dim_stud;i++) if(st[i].matricola==n_matricola)return i; return 0; } int ricerca_per_sottostringa_cognome(int dim_stud,string sottostringa) { for(int i=0;i<dim_stud;i++) { int j; j=(st[i].cognome).find(sottostringa,0); if(j!=string::npos)return i; } return 0; } int numero_tot_iscritti(int dim_stud) { int cont=0; for(int i=0;i<dim_stud;i++) if(st[i].nome!="")cont++; return cont; } } class collezione_corsi { private: corso coll_corso[dim_ins]; public: collezione_corsi() { for(int i=0;i<dim_ins;i++) { coll_corso[i].nome_corso=""; coll_corso[i].codice_corso=0; coll_corso[i].cfu=0; coll_corso[i].anno=1; coll_corso[i].semestre=1; } } collezione_corsi(corso co[dim_ins]) { for(int i=0;i<dim_ins;i++) for(int j=0;j<dim_ins;j++) { coll_corso[i].nome_corso=co[j].nome_corso; coll_corso[i].codice_corso=co[j].codice_corso; coll_corso[i].cfu=co[j].cfu; coll_corso[i].anno=co[j].anno; coll_corso[i].semestre=co[j].semestre; } } void leggi_coll_corso(istream&SORG) { corso co[dim_ins]; for(int i=0;i<dim_ins;i++) for(int j=0;j<dim_ins;j++) { SORG>>co[j].nome_corso; SORG>>co[j].codice_corso; SORG>>co[j].cfu; SORG>>co[j].anno; SORG>>co[j].semestre; coll_corso[i].nome_corso=co[j].nome_corso; coll_corso[i].codice_corso=co[j].codice_corso; coll_corso[i].cfu=co[j].cfu; coll_corso[i].anno=co[j].anno; coll_corso[i].semestre=co[j].semestre; } return; } void stampa_coll_corso(ostream&DEST) { for(int i=0;i<dim_ins;i++) coll_corso[i].stampa_scheda_corso(cout); return; } int ricerca_per_codice(int dim_ins,int n_codice) { for(int i=0;i<dim_ins;i++) if(co[i].codice_corso==n_codice)return i; return 0; } string ricerca_codice_per_titolo(int dim_ins,int n_codice) { for(int i=0;i<dim_ins;i++) if(co[i].codice_corso==n_codice)return co[i].nome_corso; return "/"; } int ricerca_per_sottostringa_titolo(int dim_ins,string sottostringa_titolo) { for(int i=0;i<dim_ins;i++) { int j; j=(co[i].nome_corso).find(sottostringa_titolo,0); if(j!=string::npos)return i; } return 0; } class collezione_esami { private: esame coll_es[dim_es]; public: collezione_esami() { for(int i=0;i<dim_es;i++) { coll_es[i].matricola_studente=0; coll_es[i].codice_insegnamento=0; coll_es[i].data_esame.giorno=1; coll_es[i].data_esame.mese=1; coll_es[i].data_esame.anno=1; coll_es[i].voto=1; } } collezione_esami(esame es[dim_es]) { for(int i=0;i<dim_es;i++) for(int j=0;j<dim_es;j++) { coll_es[i].matricola_studente=es[j].matricola_studente; coll_es[i].codice_insegnamento=es[j].codice_insegnamento; coll_es[i].data_esame.giorno=es[j].data_esame.giorno; coll_es[i].data_esame.mese=es[j].data_esame.mese; coll_es[i].data_esame.anno=es[j].data_esame.anno; coll_es[i].voto=es[j].voto; } } void leggi_coll_es(istream&SORG) { esame es[dim_es]; for(int i=0;i<dim_es;i++) for(int j=0;j<dim_es;j++) { SORG>>es[j].matricola_studente; SORG>>es[j].codice_insegnamento; SORG>>es[j].data_esame.giorno; SORG>>es[j].data_esame.mese; SORG>>es[j].data_esame.anno; SORG>>es[j].voto; coll_es[i].matricola_studente=es[j].matricola_studente; coll_es[i].codice_insegnamento=es[j].codice_insegnamento; coll_es[i].data_esame.giorno=es[j].data_esame.giorno; coll_es[i].data_esame.mese=es[j].data_esame.mese; coll_es[i].data_esame.anno=es[j].data_esame.anno; coll_es[i].voto=es[j].voto; } return; } int ricerca_per_matricola_studente(int dim_es,int n_matricola_stud,int pos_iniz) { for(int i=pos_iniz;i<dim_es;i++) if(es[i].matricola_studente==n_matricola_stud) return i; return 0; } int ricerca_esame_per_codice_insegnamento(int dim_es,int n_cod_insegnamento,int po_iniz) { for(int i=po_iniz;i<dim_es;i++) if(es[i].codice_insegnamento==n_cod_insegnamento)return i; return 0; } } int main() { string NOME; string COGNOME; string INDIRIZZO; string FACOLTA; string EMAIL; int GIORNO,MESE,ANNO,ANNO_CORSO,MATRICOLA; int i=0; studente tutti_gli_studenti[dim_stud]; ifstream f1; f1.open("studenti.txt"); f1>>NOME; while(!f1.eof() && i<dim_stud) { tutti_gli_studenti[i].nome=NOME; f1>>COGNOME; tutti_gli_studenti[i].cognome=COGNOME; f1>>GIORNO; tutti_gli_studenti[i].data_di_nascita.giorno=GIORNO; f1>>MESE; tutti_gli_studenti[i].data_di_nascita.mese=MESE; f1>>ANNO; tutti_gli_studenti[i].data_di_nascita.anno=ANNO; f1>>INDIRIZZO; tutti_gli_studenti[i].indirizzo=INDIRIZZO; f1>>MATRICOLA; tutti_gli_studenti[i].matricola=MATRICOLA; f1>>FACOLTA; tutti_gli_studenti[i].facolta=FACOLTA; f1>>ANNO_CORSO; tutti_gli_studenti[i].anno_corso=ANNO_CORSO; F1>>EMAIL; tutti_gli_studenti[i].email=EMAIL; i++; f1>>NOME; } int j=0; string NOME_CORSO; int CODICE_CORSO,CFU,AN,SEMESTRE; corso tutti_corsi[dim_ins]; ifstream f2; f2.open("corsi.txt"); f2>>NOME_CORSO; while(!f2.eof() && j<dim_ins) { tutti_corsi[j].nome_corso=NOME_CORSO; f2>>CODICE_CORSO; tutti_corsi[j].codice_corso=CODICE_CORSO; f2>>CFU; tutti_corsi[j].cfu=CFU; f2>>AN; tutti_corsi[j].anno=AN; f2>>SEMESTRE; tutti_corsi[j].semestre=SEMESTRE; j++; f2>>NOME_CORSO; }