Ciao a tutti!!sono riuscito a compilare il mio progetto!..però quando eseguo sullo schermo non viene scritto nulla..penso ci sia un problema nella gestione dei file...questa è la parte di codice corrispondentei...
codice:
    collezione_studenti tutti_gli_studenti;
    ifstream f1;
    f1.open("studenti.txt");
    tutti_gli_studenti.leggi_coll_stud(f1);        
    ifstream f2;
    f2.open("corsi.txt");
    collezione_corsi tutti_corsi;
    tutti_corsi.leggi_coll_corso(f2);
    collezione_esami tutti_esami;
    ifstream f3;
    f3.open("esami.txt");
    tutti_esami.leggi_coll_es(f3);
queste sono le funzioni proprie di lettura delle classi collezione_studenti,collezione_corsi,collezione_es ami che hanno in private un vettore di elementi di tipi definiti da altre classi...
codice:
void leggi_coll_stud(istream&SORG)
           {
               string NOME,COGNOME,INDIRIZZO,FACOLTA,EMAIL;
               int MATRICOLA,ANNO_CORSO;
               DATA DATA_DI_NASCITA;
               char SEP;
               for(int i=0;i<dim_stud;i++)
               {
                   SORG>>NOME;
                   SORG>>COGNOME;
                   SORG>>DATA_DI_NASCITA.giorno;
                   SORG>>SEP;
                   SORG>>DATA_DI_NASCITA.mese;
                   SORG>>SEP;
                   SORG>>DATA_DI_NASCITA.anno;
                   SORG>>INDIRIZZO;
                   SORG>>MATRICOLA;
                   SORG>>FACOLTA;
                   SORG>>ANNO_CORSO;
                   SORG>>EMAIL;
                   coll_stud[i]=studente(MATRICOLA, ANNO_CORSO, NOME, COGNOME, INDIRIZZO, DATA_DI_NASCITA, FACOLTA, EMAIL);
               }
               return;
           }
codice:
void leggi_coll_corso(istream&SORG)
           {
               string NOME_C;
               int CODICE,CFU,ANNO,SEMESTRE;
               for(int i=0;i<dim_ins;i++)
                 for(int j=0;j<dim_ins;j++)
                  {
                      SORG>>NOME_C;
                      SORG>>CODICE;
                      SORG>>CFU;
                      SORG>>ANNO;
                      SORG>>SEMESTRE;
                      coll_corso[i]=corso(NOME_C,CODICE,CFU,ANNO,SEMESTRE);
                  }
                return;
           }
codice:
void leggi_coll_es(istream&SORG)
           {
               int MATRICOLA_STUD,CODICE_INS,VOTO;
               DATA DATA_ES; 
               char SEP; 
               for(int i=0;i<dim_es;i++)
               {
                      SORG>>MATRICOLA_STUD;
                      SORG>>CODICE_INS;
                      SORG>>VOTO;
                      SORG>>DATA_ES.giorno;
                      SORG>>SEP;
                      SORG>>DATA_ES.mese;
                      SORG>>SEP;
                      SORG>>DATA_ES.anno;
                      coll_es[i]=esame(MATRICOLA_STUD,CODICE_INS,VOTO,DATA_ES);
               }
                return;
           }
in più ci dovrebbe essere un errore anche nell'immissione di un nuovo nome perchè automaticamente dice che l'array è già pieno anche se non ho inserito alcun dato...
questo è il codice nel programma principale:
codice:
k=tutti_gli_studenti.get_nome_coll_stud();
if(k!=0)
{
      cout<<"inserisci il nome"<<endl;
      tutti_gli_studenti.leggi_un_nome(cin,k);
}
else cout<<"file già pieno"<<endl;
questa è la funzione che utilizzo per trovare il primo elemento vuoto dell'array:
codice:
int get_nome_coll_stud()
           {
                 for(int i=0;i<dim_stud;i++)
                     if(coll_stud[i].get_nome()=="") return i;
                 return 0;
           }
invece questa è la funzione di lettura del nome
codice:
void leggi_un_nome(istream&SORG,int i)
           {
                coll_stud[i].leggi_nome(SORG);
                return;
           }
grazie per il vostro aiuto!