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!