Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    28

    [C/C++]problema in fase di compilazione!

    Ciao a tutti!
    vi chiedevo un aiuto riguardo un progetto che sto facendo...quando sta per compilare mi arriva l'avviso di un problema e il programma smette di funzionare...non riesco a capire il motivo..però quando accorcio il codice riesce a compilarlo..può essere un problema di lunghezza?..e se è così come faccio a risolverlo?..grazie di tutto!..

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Non e' un problema di "lunghezza" ...

    Ma non si puo' dire come risolverlo, a meno di avere una "sfera di cristallo" in cui vedere il tuo codice ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    28
    questo è il mio codice...
    codice:
    #include <iostream>
    #include <fstream>
    #include <string>
    using namespace std;
    int const dim_stud=20000;
    int const dim_ins=20000;
    int const dim_es=20000;
    struct DATA
    {
           int giorno;
           int mese;
           int anno;
    };
    class persona
    {
            protected:
               string nome;
               string cognome;
               DATA data_di_nascita;
               string indirizzo;
            public:
               persona()//costruttore 1 senza parametri
               {
                   nome="";
                   cognome="";
                   data_di_nascita.giorno=1;
                   data_di_nascita.mese=1;
                   data_di_nascita.anno=1;
                   indirizzo="";
               }
               persona(string n,string c)//costruttore 2 con 2 parametri
               {
                   nome=n;
                   cognome=c;
                   data_di_nascita.giorno=1;
                   data_di_nascita.mese=1;
                   data_di_nascita.anno=1;
                   indirizzo="";
               }
               persona(string n,string c,DATA d)//costruttore 3 con 3 parametri tra cui la data
               {
                   nome=n;
                   cognome=c;
                   if(d.giorno>31 || d.giorno<1 || d.mese>12 || d.mese<1 || d.anno<1)throw 0;
                   data_di_nascita.giorno=d.giorno;
                   data_di_nascita.mese=d.mese;
                   data_di_nascita.anno=d.anno;
                   indirizzo="";
               }
               persona(string n,string c,string i)//costruttore 4 con 3 parametri tra cui l'indirizzo
               {
                   nome=n;
                   cognome=c;
                   data_di_nascita.giorno=1;
                   data_di_nascita.mese=1;
                   data_di_nascita.anno=1;
                   indirizzo=i;
               }
               persona(string n,string c,DATA d,string i)//costruttore 5 con 4 parametri
               {
                   nome=n;
                   cognome=c;
                   if(d.giorno>31 || d.giorno<1 || d.mese>12 || d.mese<1 || d.anno<1)throw 0;
                   data_di_nascita.giorno=d.giorno;
                   data_di_nascita.mese=d.mese;
                   data_di_nascita.anno=d.anno;
                   indirizzo=i;
               }
               string get_nome()//selettore nome
               {
                   return nome;
               }
               string get_cognome()//selettore cognome
               {
                   return cognome;
               }
               string get_nome_cognome()//selettore nome e cognome
               {
                   return nome+" e "+cognome;
               }
               DATA get_data_di_nascita()//selettore data di nascita
               {
                   return data_di_nascita;
               }
               string get_indirizzo()//selettore indirizzo
               {
                   return indirizzo;
               }
               void leggi_nome(istream&SORG)
               {
                   string n;
                   SORG>>n;
                   nome=n;
                   return;
               }
               void leggi_cognome(istream&SORG)
               {
                   string c;
                   SORG>>c;
                   cognome=c;
                   return;
               }
               void leggi_indirizzo(istream&SORG)
               {
                   string i;
                   SORG>>i;
                   indirizzo=i;
                   return;
               }
               void leggi_data_di_nascita(istream&SORG)
               {
                   int g,m,a;
                   char sep;
                   SORG>>g>>sep>>m>>sep>>a;
                   data_di_nascita.giorno=g;
                   data_di_nascita.mese=m;
                   data_di_nascita.anno=a;
                   return;
               }
               void stampa_scheda_persona(ostream&DEST)
               {
                   DEST<<nome<<' '<<cognome<<endl;
                   DEST<<"nato/a il: ";
                   DEST<<data_di_nascita.giorno<<'/'<<data_di_nascita.mese<<'/'<<data_di_nascita.anno<<endl;
                   DEST<<"residente in via "<<indirizzo<<endl;
                   return;
               }           
    }
    class studente:public persona
    {
        private:
               int matricola;
               string facolta;
               int anno_corso;
               string email;
        public:
               studente()//costruttore 1 senza parametri
               {
                   matricola=0;
                   facolta="imprecisato";
                   anno_corso=0;
                   email="imprecisato";
               }
               studente(string n,string c):persona(n,c)
               {
                   matricola=0;
                   facolta="imprecisato";
                   anno_corso=0;
                   email=nome+"."+cognome+"@studenti.unipr.it";
               }
               studente(int m)
               {
                   if(m<0)throw 1;
                   matricola=m;
                   facolta="imprecisato";
                   anno_corso=0;
                   email="imprecisato";
               }
               studente(int m,string n,string c):persona(n,c)
               {
                   if(m<0)throw 1;
                   matricola=m;
                   facolta="imprecisato";
                   anno_corso=0;
                   email=nome+"."+cognome+"@studenti.unipr.it";
               }
               studente(string f)
               {
                   matricola=0;
                   facolta=f;
                   anno_corso=0;
                   email="imprecisato";
               }
               studente(string f,int m)
               {
                   if(m<0)throw 1;
                   matricola=m;
                   facolta=f;
                   anno_corso=0;
                   email="imprecisato";

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    28
    codice:
               }
               studente(string f,int m,string n,string c):persona(n,c)
               {
                   if(m<0)throw 1;
                   matricola=m;
                   facolta=f;
                   anno_corso=0;
                   email=nome+"."+cognome+"@studenti.unipr.it";
               }
               studente(int a,int m)
               {
                   if(m<0)throw 1;
                   matricola=m;
                   facolta="imprecisato";
                   anno_corso=a;
                   email="imprecisato";
               }
               studente(int a,int m,string f)
               {
                   if(m<0)throw 1;
                   matricola=m;
                   facolta=f;
                   anno_corso=a;
                   email="imprecisato";
               }
               studente(int a,int m, string f,string n,string c):persona(n,c)
               {
                   if(m<0)throw 1;
                   matricola=m;
                   facolta=f;
                   anno_corso=a;
                   email=nome+"."+cognome+"@studenti.unipr.it";
               }
               int get_matricola()
               {
                   return matricola;
               }
               string get_facolta()
               {
                   return facolta;
               }
               int get_anno_corso()
               {
                   return anno_corso;
               }
               string get_email()
               {
                   return email;
               }
               void leggi_matricola(istream&SORG)
               {
                   int m;
                   SORG>>m;
                   matricola=m;
                   return;
               }
               void leggi_facolta(istream&SORG)
               {
                   string f;
                   SORG>>f;
                   facolta=f;
                   return;
               }
               void leggi_anno_corso(istream&SORG)
               {
                   int a;
                   SORG>>a;
                   anno_corso=a;
                   return;
               }
               void stampa_scheda_studente(ostream&DEST)
               {
                   DEST<<"n.di matricola: "<<matricola<<endl;
                   DEST<<"facoltà: "<<facolta<<endl;
                   DEST<<"anno di corso: "<<anno_corso<<endl;
                   DEST<<"indirizzo e.mail: "<<email<<endl;
                   return;
               }
    }
    class corso
    {
        private:
               string nome_corso;
               int codice_corso;
               int cfu;
               int anno;
               int semestre;
        public:
               corso()//costruttore 1 senza parametri
               {
                   nome_corso="imprecisato";
                   codice_corso=0;
                   cfu=0;
                   anno=0;
                   semestre=0;
               }
               corso(string N)
               {
                   nome_corso=N;
                   codice_corso=0;
                   cfu=0;
                   anno=0;
                   semestre=0;
               }
               corso(string N,int cod)
               {
                   if(cod<0)throw 2;
                   nome_corso=N;
                   codice_corso=cod;
                   cfu=0;
                   anno=0;
                   semestre=0;
               }
               corso(int cod,int cred)
               {
                   if(cod<0)throw 2;
                   if(cred<0)throw 3;
                   nome_corso="imprecisato";
                   codice_corso=cod;
                   cfu=cred;
                   anno=0;
                   semestre=0;
               }
               corso(string N,int cod,int cred)
               {
                   if(cod<0)throw 2;
                   if(cred<0)throw 3;
                   nome_corso=N;
                   codice_corso=cod;
                   cfu=cred;
                   anno=0;
                   semestre=0;
               }
               corso(int cod,int cred,int an)
               {
                   if(cod<0) throw 2;
                   if(cred<0)throw 3;
                   if(an<0)throw 4;
                   nome_corso="imprecisato";
                   codice_corso=cod;
                   cfu=cred;
                   anno=an;
                   semestre=0;
               }
               corso(string N,int cod,int cred,int an)
               {
                   if(cod<0) throw 2;
                   if(cred<0)throw 3;
                   if(an<0)throw 4;
                   nome_corso=N;
                   codice_corso=cod;
                   cfu=cred;
                   anno=an;
                   semestre=0;
               }
               corso(int cod,int cred,int an,int sem)
               {
                   if(cod<0) throw 2;
                   if(cred<0)throw 3;
                   if(an<0)throw 4;
                   if(sem<0)throw 5;
                   nome_corso="imprecisato";
                   codice_corso=cod;
                   cfu=cred;
                   anno=an;
                   semestre=sem;
               }
               corso(string N,int cod,int cred,int an,int sem)
               {
                   if(cod<0) throw 2;
                   if(cred<0)throw 3;
                   if(an<0)throw 4;
                   if(sem<0)throw 5;
                   nome_corso=N;
                   codice_corso=cod;
                   cfu=cred;
                   anno=an;
                   semestre=sem;
               }
               string get_nome_corso()
               {
                   return nome_corso;
               }
               int get_codice_corso()
               {
                   return codice_corso;
               }
               int get_cfu()
               {
                   return cfu;
               }
               int get_anno()
               {
                   return anno;
               }
               int get_semestre()
               {
                   return semestre;
               }
               void leggi_nome_corso(istream&SORG)
               {
                   string N;
                   SORG>>N;
                   nome_corso=N;
                   return;
               }
               void leggi_codice_corso(istream&SORG)
               {
                   int cod;
                   SORG>>cod;
                   codice_corso=cod;
                   return;
               }
               void leggi_cfu(istream&SORG)
               {
                   int cred;
                   SORG>>cred;
                   cfu=cred;
                   return;
               }
               void leggi_anno(istream&SORG)
               {
                   int an;
                   SORG>>an;
                   anno=an;
                   return;
               }
               void leggi_semestre(istream&SORG)
               {
                   int sem;
                   SORG>>sem;
                   semestre=sem;
                   return;
               }
               void stampa_scheda_corso(ostream&DEST)
               {
                   DEST<<"nome corso: "<<nome_corso<<endl;
                   DEST<<"codice corso: "<<codice_corso<<endl;
                   DEST<<"crediti formativi: "<<cfu<<endl;
                   DEST<<"anno del corso: "<<anno<<endl;
                   DEST<<"semestre: "<<semestre<<endl;
                   return;
               }
    }
    class esame
    {
        private:
               int matricola_studente;
               int codice_insegnamento;
               DATA data_esame;
               int voto;
        public:
               esame()
               {
                   matricola_studente=0;
                   codice_insegnamento=0;
                   data_esame.giorno=1;
                   data_esame.mese=1;
                   data_esame.anno=1;
                   voto=0;
               }
               esame(int mat)
               {
                   if(mat<0)throw 1;
                   matricola_studente=mat;
                   codice_insegnamento=0;
                   data_esame.giorno=1;
                   data_esame.mese=1;
                   data_esame.anno=1;
                   voto=0;
               }
               esame(int mat,int codice)
               {
                   if(mat<0)throw 1;
                   if(codice<0)throw 2;
                   matricola_studente=mat;
                   codice_insegnamento=codice;
                   data_esame.giorno=1;
                   data_esame.mese=1;
                   data_esame.anno=1;
                   voto=0;
               }
               esame(int mat,int codice,int V)
               {
                   if(mat<0)throw 1;
                   if(codice<0)throw 2;
                   if(V<0)throw 6;
                   matricola_studente=mat;
                   codice_insegnamento=codice;
                   data_esame.giorno=1;
                   data_esame.mese=1;
                   data_esame.anno=1;
                   voto=V;
               }
               esame(int mat,int codice,int V,DATA data_es)
               {
                   if(mat<0)throw 1;
                   if(codice<0)throw 2;
                   if(V<0)throw 6;
                   if(data_es.giorno<1 || data_es.giorno>31 || data_es.mese<1 || data_es.mese>12 || data_es.anno<1)throw 0;
                   matricola_studente=mat;
                   codice_insegnamento=codice;
                   data_esame.giorno=data_es.giorno;
                   data_esame.mese=data_es.mese;
                   data_esame.anno=data_es.anno;
                   voto=V;
               }

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    28
    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;
        }

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    28
    codice:
        esame tutti_esami[dim_es];
        int MATRICOLA_STUD,CODICE_INS,VOTO,GIO,ANN,ME,k=0;
        ifstream f3;
        f3.open("esami.txt");
        f3>>MATRICOLA_STUD;
        while(!f3.eof() && i<dim_es)
        {
            tutti_esami[k].matricola_studente=MATRICOLA_STUD;
            f3>>CODICE_INS;
            tutti_esami[k].codice_insegnamento=CODICE_INS;
            f3>>GIO;
            tutti_esami[k].data_esame.giorno=GIO;
            f3>>ME;
            tutti_esami[k].data_esame.mese=ME;
            f3>>ANN;
            tutti_esami[k].data_esame.anno=ANN;
            f3>>VOTO;
            tutti_esami[k].voto=VOTO;
            k++;
            f3>>MATRICOLA_STUD;
        }
        int scelta1,num_mat,x;
        cout<<"PROGRAMMA DI ARCHIVIO STUDENTI ED ESAMI"<<endl<<endl<<endl;
        do
        {
            cout<<"menu principale:"<<endl<<endl;
            cout<<"1.(gestione studenti) immissione nuovo studente"<<endl<<endl;
            cout<<"2.(gestione studenti) cancellazione o modifica (possibile solo per recapito,indirizzo e.mail e anno di corso)"<<endl<<endl;
            cout<<"3.(gestione studenti) visualizzazione della scheda di uno studente"<<endl<<endl;
            cout<<"4.(gestione studenti) ricerca del numero totale di studenti iscritti a tutti gli anni"<<endl<<endl;
            cout<<"5.(gestione studenti) visualizzazione dell'elenco di tutti gli studenti divisi per anni"<<endl<<endl;
            cout<<"6.(gestione insegnamenti) immissione nuovo insegnamento"<<endl<<endl;
            cout<<"7.(gestione insegnamenti) cancellazione o modifica (possibile solo per anno e semestre)"<<endl<<endl;
            cout<<"8.(gestione insegnamenti) visualizzazione della scheda di un insegnamento"<<endl<<endl;
            cout<<"9.(gestione esami) registrazione esame"<<endl<<endl;
            cout<<"10.(gestione esami) ricerca un singolo studente e stampa l'elenco degli esami sostenuti dallo stesso"<<endl<<endl;
            cout<<"11.(gestione esami) ricerca un singolo studente e stampa la media dei voti riportati"<<endl<<endl;
            cout<<"12.(gestione esami) ricerca un singolo esame e stampa quanti e quali studenti hanno sostenuto l'esame in un dato intervallo di tempo"<<endl<<endl;
            cout<<"13.(gestione esami) ricerca un singolo esame e stampa la media dei voti ottenuti in quell'esame da tutti gli studenti"<<endl<<endl;
            cout<<"14.termina"<<endl<<endl<<endl;
            cout<<"digita il numero dell'operazione scelta"<<endl<<endl;
            cin>>scelta1;
            switch(scelta1)
           {
                case 1: cout<<"inserisci il nome"<<endl;
                        i=0;
                        while(i<dim_stud)
                        {
                            if(tutti_gli_studenti[i].nome=="")
                            {
                                tutti_gli_studenti[i].persona::leggi_nome(cin);
                                break;
                            }
                            i++;
                        }
                        cout<<"inserisci il cognome"<<endl;
                        tutti_gli_studenti[i].persona::leggi_cognome(cin);
                        cout<<"inserisci l'indirizzo"<<endl;
                        tutti_gli_studenti[i].persona::leggi_indirizzo(cin);
                        cout<<"inserisci la data di nascita(con questo formato giorno/mese/anno)"<<endl;
                        tutti_gli_studenti[i].persona::leggi_data_di_nascita(cin);
                        cout<<"inserisci il numero di matricola"<<endl;
                        tutti_gli_studenti[i].leggi_matricola(cin);
                        cout<<"inserisci il nome della facoltà"<<endl;
                        tutti_gli_studenti[i].leggi_facolta(cin);
                        cout<<"inserisci l'anno di corso"<<endl;
                        tutti_gli_studenti[i].leggi_anno_corso(cin);
                        break;
                case 2: int scelta2,scelta3;
                        cout<<"inserisci il numero di matricola dello studente del quale vuoi modificare o cancellare alcuni dati"<<endl;
                        cin>>num_mat;
                        x=tutti_gli_studenti[dim_stud].ricerca_per_matricola_studente(dim_stud,num_mat);
                        while(x==0)
                        {
                            cout<<"lo studente con tale matricola non è stato trovato"<<endl;
                            cout<<"reinserisci il numero di matricola"<<endl;
                            cin>>num_mat;
                            x=tutti_gli_studenti[dim_stud].ricerca_per_matricola_studente(dim_stud,num_mat);
                        }
                        cout<<"se vuoi modificare alcuni dati digita 1,se vuoi cancellare la scheda di uno studente digita 2"<<endl;
                        cin>>scelta2;
                        string ind_em;
                        switch(scelta2)
                        {
                            case 1: cout<<"se vuoi modificare il recapito digita 1"<<endl<<endl;
                                    cout<<"se vuoi modificare l'indirizzo e.mail digita 2"<<endl<<endl;
                                    cout<<"se vuoi modificare l'anno di corso digita 3"<<endl<<endl;
                                    cin>>scelta3;
                                    switch(scelta3)
                                    {
                                        case 1: cout<<"inserisci il nuovo recapito"<<endl;
                                                tutti_gli_studenti[x].persona::leggi_indirizzo(cin);
                                                break;
                                        case 2: cout<<"inserisci il nuovo indirizzo e.mail"<<endl;
                                                cin>>ind_em;
                                                tutti_gli_studenti[x].email=ind_em;
                                                break;
                                        case 3: cout<<"inserisci il nuovo anno di corso"<<endl;
                                                tutti_gli_studenti[x].leggi_anno_corso(cin);
                                                break;
                                        default: cout<<"scelta non valida";
                                    }
                                    break;
                            case 2: cout<<"ora sarà cancellata la scheda dello studente con matricola "<<tutti_gli_studenti[x].matricola;
                                    for(int j=x;j<dim_stud;j++)
                                    {
                                        tutti_gli_studenti[j].nome=tutti_gli_studenti[j++].nome;
                                        tutti_gli_studenti[j].cognome=tutti_gli_studenti[j++].cognome;
                                        tutti_gli_studenti[j].data_di_nascita.g=tutti_gli_studenti[j++].data_di_nascita.g;
                                        tutti_gli_studenti[j].data_di_nascita.m=tutti_gli_studenti[j++].data_di_nascita.m;
                                        tutti_gli_studenti[j].data_di_nascita.a=tutti_gli_studenti[j++].data_di_nascita.a;
                                        tutti_gli_studenti[j].indirizzo=tutti_gli_studenti[j++].indirizzo;
                                        tutti_gli_studenti[j].matricola=tutti_gli_studenti[j++].matricola;
                                        tutti_gli_studenti[j].facolta=tutti_gli_studenti[j++].facolta;
                                        tutti_gli_studenti[j].anno_corso=tutti_gli_studenti[j++].anno_corso;
                                        tutti_gli_studenti[j].email=tutti_gli_studenti[j++].email;
                                    }
                                    dim_stud--;
                                    break;
                            default: cout<<"scelta non valida"<<endl<<endl;
                        }
                        break;
                case 3: int scelta4,matr_stud,y;
                        string sott_str;
                        cout<<"se vuoi ricercare lo studente in base alla matricola digita 1"<<endl<<endl;
                        cout<<"se vuoi ricercarlo in base ad una sottostringa del cognome digita 2"<<endl<<endl;
                        cin>>scelta4;
                        switch(scelta 4)
                        {
                            case 1: cout<<"inserisci la matricola dello studente"<<endl;
                                         cin>>matr_stud;
                                          y=tutti_gli_studenti[dim_stud].ricerca_per_matricola_studente(dim_stud,matr_stud);
                                         while(y==0)
                                        {
                                             cout<<"lo studente con tale matricola non è stato trovato"<<endl;
                                             cout<<"reinserisci il numero di matricola"<<endl;
                                             cin>>matr_stud;
                                             y=tutti_gli_studenti[dim_stud].ricerca_per_matricola_studente(dim_stud,matr_stud);
                                        }
                                        cout<<"questa è la scheda dello studente che hai appena ricercato:"<<endl<<endl;
                                    tutti_gli_studenti[y].stampa_scheda_persona(cout);
                                    tutti_gli_studenti[y].stampa_scheda_studente(cout);
                                    break;
                            case 2: cout<<"inserisci la sottostringa del cognome"<<endl;
                                    cin>>sott_str;
                                    y=tutti_gli_studenti[dim_stud].ricerca_per_sottostringa_cognome(dim_stud,sott_str);
                                    while(y==0)
                                    {
                                         cout<<"lo studente con tale sottostringa del cognome non è stato trovato"<<endl;
                                         cout<<"reinserisci la sottostringa"<<endl;
                                         cin>>sott_str;
                                         y=tutti_gli_studenti[dim_stud].ricerca_per_sottostringa_cognome(dim_stud,sott_str);
                                    }
                                    cout<<"questa è la scheda dello studente che hai appena ricercato:"<<endl<<endl;
                                    tutti_gli_studenti[y].persona::stampa_scheda_persona(cout);
                                    tutti_gli_studenti[y].stampa_scheda_studente(cout);
                                    break;
                            default: cout<<"scelta non valida"<<endl;
                        }
                        break;

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    28
    codice:
    case 4: int g;
                        cout<<"questo è il numero totale degli studenti iscritti di tutti gli anni:"<<endl;
                        g=tutti_gli_studenti[dim_stud].numero_tot_iscritti(dim_stud);
                        cout<<g;
                        break;
                case 5: cout<<"gli iscritti al primo anno sono:"<<endl<<endl;
                        for(int h=0;h<dim_stud;h++)
                        {
                            if(tutti_gli_studenti[h].anno_corso==1)
                            {
                                cout<<tutti_gli_studenti[h].nome<<" "<<tutti_gli_studenti[h].cognome<<endl;
                            }
                        }
                        cout<<"gli iscritti al secondo anno sono:"<<endl<<endl;
                        for(int h=0;h<dim_stud;h++)
                        {
                            if(tutti_gli_studenti[h].anno_corso==2)
                            {
                                cout<<tutti_gli_studenti[h].nome<<" "<<tutti_gli_studenti[h].cognome<<endl;
                            }
                        }
                        cout<<"gli iscritti al terzo anno sono:"<<endl<<endl;
                        for(int h=0;h<dim_stud;h++)
                        {
                            if(tutti_gli_studenti[h].anno_corso==3)
                            {
                                cout<<tutti_gli_studenti[h].nome<<" "<<tutti_gli_studenti[h].cognome<<endl;
                            }
                        }
                        break;
                case 6: cout<<"inserisci il nome del corso"<<endl;
                        i=0;
                        while(i<dim_ins)
                        {
                            if(tutti_corsi[i].nome_corso=="")
                            {
                                tutti_corsi[i].leggi_nome_corso(cin);
                                break;
                            }
                            i++;
                        }
                        cout<<"inserisci il codice del corso"<<endl;
                        tutti_corsi[i].leggi_codice_corso(cin);
                        cout<<"inserisci il numero di crediti formativi del corso"<<endl;
                        tutti_corsi[i].leggi_cfu(cin);
                        cout<<"inserisci l'anno del corso"<<endl;
                        tutti_corsi[i].leggi_anno(cin);
                        cout<<"inserisci il semestre del corso"<<endl;
                        tutti_corsi[i].leggi_semestre(cin);
                        break;
                case 7: int scelta5,scelta6,cod_cor;
                        cout<<"inserisci il codice del corso del quale vuoi modificare o cancellare alcuni dati"<<endl;
                        cin>>cod_cor;
                        f=tutti_corsi[dim_ins].ricerca_per_codice(dim_ins,cod_cor);
                        while(f==0)
                        {
                            cout<<"il corso con tale codice non è stato trovato"<<endl;
                            cout<<"reinserisci il codice"<<endl;
                            cin>>cod_cor;
                            f=tutti_corsi[dim_ins].ricerca_per_codice(dim_ins,cod_cor);
                        }
                        cout<<"se vuoi modificare alcuni dati digita 1,se vuoi cancellare la scheda di un corso digita 2"<<endl;
                        cin>>scelta5;
                        switch(scelta5)
                        {
                            case 1: cout<<"se vuoi modificare l'anno digita 1"<<endl<<endl;
                                    cout<<"se vuoi modificare il semestre digita 2"<<endl<<endl;
                                    cin>>scelta6;
                                    switch(scelta6)
                                    {
                                        case 1: cout<<"inserisci il nuovo anno"<<endl;
                                                tutti_corsi[f].leggi_anno(cin);
                                                break;
                                        case 2: cout<<"inserisci il nuovo semestre"<<endl;
                                                tutti_corsi[f].leggi_semestre(cin);
                                                break;
                                        default: cout<<"scelta non valida";
                                    }
                                    break;
                             case 2: cout<<"ora sarà cancellata la scheda del corso con tale codice "<<tutti_corsi[f].codice_corso;
                                     for(int j=f;j<dim_ins;j++)
                                     {
                                        tutti_corsi[j].nome_corso=tutti_corsi[j++].nome_corso;
                                        tutti_corsi[j].codice_corso=tutti_corsi[j++].codice_corso;
                                        tutti_corsi[j].cfu=tutti_corsi[j++].cfu;
                                        tutti_corsi[j].anno=tutti_corsi[j++].anno;
                                        tutti_corsi[j].semestre=tutti_corsi[j++].semestre;
                                     }
                                     dim_ins--;
                                     break;
                             default: cout<<"scelta non valida"<<endl<<endl;
                        }
                        break;
                case 8: int scelta7,cod_in,t;
                        string sott_ins;
                        cout<<"se vuoi ricercare l'insegnamento in base al suo codice digita 1"<<endl<<endl;
                        cout<<"se vuoi ricercarlo in base ad una sottostringa del titolo digita 2"<<endl<<endl;
                        cin>>scelta7;
                        switch(scelta 7)
                        {
                             case 1: cout<<"inserisci il codice del corso"<<endl;
                                     cin>>cod_in;
                                     t=tutti_corsi[dim_ins].ricerca_per_codice(dim_ins,cod_in);
                                     while(t==0)
                                     {
                                          cout<<"il corso con tale codice non è stato trovato"<<endl;
                                          cout<<"reinserisci il codice"<<endl;
                                          cin>>cod_in;
                                          t=tutti_corsi[dim_ins].ricerca_per_codice(dim_ins,cod_in);
                                      }
                                     cout<<"questa è la scheda del corso che hai appena ricercato:"<<endl<<endl;
                                     tutti_corsi[t].stampa_scheda_corso(cout);
                                     break;
                             case 2: cout<<"inserisci la sottostringa del titolo"<<endl;
                                     cin>>sott_ins;
                                     t=tutti_corsi[dim_ins].ricerca_per_sottostringa_titolo(dim_ins,sott_ins);
                                     while(t==0)
                                     {
                                         cout<<"il corso il cui titolo ha tale sottostringa non è stato trovato"<<endl;
                                         cout<<"reinserisci la sottostringa"<<endl;
                                         cin>>sott_ins;
                                         t=tutti_corsi[dim_ins].ricerca_per_sottostringa_titolo(dim_ins,sott_ins);
                                     }
                                     cout<<"questa è la scheda dello studente che hai appena ricercato:"<<endl<<endl;
                                     tutti_corsi[t].stampa_scheda_corso(cout);
                                     break;
                             default: cout<<"scelta non valida"<<endl;
                        }
                        break;
                case 9: cout<<"inserisci il numero di matricola dello studente"<<endl;
                        i=0;
                        while(i<dim_es)
                        {
                            if(tutti_esami[i].matricola_studente==0)
                            {
                                tutti_gli_studenti[i].leggi_matricola_studente(cin);
                                break;
                            }
                            i++;
                        }
                        cout<<"inserisci il codice dell'insegnamento"<<endl;
                        tutti_esami[i].leggi_codice_insegnamento(cin);
                        cout<<"inserisci la data dell'esame(con questo formato giorno/mese/anno)"<<endl;
                        tutti_esami[i].leggi_data_esame(cin);
                        cout<<"inserisci il voto"<<endl;
                        tutti_esami[i].leggi_voto(cin);
                        break;

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    28
    codice:
    case 10: int ma_s,q,s;
                         string no_c;//nome del corso
                         cout<<"inserisci la matricola dello studente"<<endl<<endl;
                         cin>>ma_s;
                         q=tutti_esami[dim_es].ricerca_per_matricola_studente(dim_es,ma_s,0);
                         while(q==0)
                         {
                             cout<<"lo studente con tale matricola non è stato trovato"<<endl;
                             cout<<"reinserisci il numero di matricola"<<endl;
                             cin>>ma_s;
                             q=tutti_esami[dim_es].ricerca_per_matricola_studente(dim_es,ma_s,0);
                         }
                         no_c=tutti_corsi[dim_ins].ricerca_codice_per_titolo(dim_ins,tutti_corsi[q].codice_insegnamento);
                         cout<<"esame: "<<endl<<endl;
                         cout<<"titolo del corso: "<<no_c;
                         cout<<"data dell'esame: ";
                         tutti_corsi[q].stampa_data_esame(cout);
                         tutti_corsi[q].stampa_voto(cout);
                         while(q<dim_es)
                         {
                             s=tutti_esami[dim_es].ricerca_per_matricola_studente(dim_es,ma_s,q);
                             no_c=tutti_corsi[dim_ins].ricerca_codice_per_titolo(dim_ins,tutti_corsi[s].codice_insegnamento);
                             cout<<"esame: "<<endl<<endl;
                             cout<<"titolo del corso: "<<no_c;
                             cout<<"data dell'esame: ";
                             tutti_corsi[s].stampa_data_esame(cout);
                             tutti_corsi[s].stampa_voto(cout);
                             q=s;
                         }
                         if(q==dim_es)cout<<"non sono presenti altri esami sostenuti da quello studente"<<endl;
                         break;
                case 11: int mat_s,d,w,somma=0,num_voti=0;
                         float media;
                         cout<<"inserisci la matricola dello studente"<<endl<<endl;
                         cin>>mat_s;
                         d=tutti_esami[dim_es].ricerca_per_matricola_studente(dim_es,mat_s,0);
                         while(d==0)
                         {
                             cout<<"lo studente con tale matricola non è stato trovato"<<endl;
                             cout<<"reinserisci il numero di matricola"<<endl;
                             cin>>mat_s;
                             d=tutti_esami[dim_es].ricerca_per_matricola_studente(dim_es,mat_s,0);
                         }
                         somma=somma+tutti_esami[d].voto;
                         num_voti++;
                         while(d<dim_es)
                         {
                             w=tutti_esami[dim_es].ricerca_per_matricola_studente(dim_es,mat_s,d);
                             somma=somma+tutti_esami[w].voto;
                             num_voti++;
                             d=w;
                         }
                         media=somma/num_voti;
                         cout<<"la media dei voti è "<<media;
                         break;
                case 12: int b,a,num_stu=0,codi_ins;
                         DATA data1,data2;
                         char sep;
                         cout<<"inserisci il codice dell'insegnamento"<<endl<<endl;
                         cin>>codi_ins;
                         cout<<"inserisci la prima data dalla quale vuoi iniziare la ricerca(in questo formato g/m/a)"<<endl<<endl;
                         cin>>data1.giorno>>sep>>data1.mese>>sep>>data1.anno;
                         cout<<"inserisci la seconda data che rappresenta il termine della ricerca(sempre nello stesso formato)"<<endl<<endl;
                         cin>>data2.giorno>>sep>>data2.mese>>sep>>data2.anno;
                         b=tutti_esami[dim_es].ricerca_esame_per_codice_insegnamento(dim_es,codi_ins,0);
                         while(b==0)
                         {
                             cout<<"l'insegnamento con tale codice non è stato trovato"<<endl;
                             cout<<"reinserisci il codice"<<endl;
                             cin>>codi_ins;
                             b=tutti_esami[dim_es].ricerca_esame_per_codice_insegnamento(dim_es,codi_ins,0);
                         }
                         if(data1.giorno<tutti_esami[b].data_esame.giorno<data2.giorno && data1.mese<tutti_esami[b].data_esame.mese<data2.mese && data1.anno<tutti_esami[b].data_esame.anno<data2.anno)
                         {
                             cout<<"l'esame è stato sostenuto dallo studente il cui numero di matricola è: "<<tutti_esami[b].matricola_studente<<endl;
                             num_stu++;
                         }
                         while(b<dim_es)
                         {
                             a=tutti_esami[dim_es].ricerca_esame_per_codice_insegnamento(dim_es,codi_ins,b);
                             if(data1.giorno<tutti_esami[a].data_esame.giorno<data2.giorno && data1.mese<tutti_esami[a].data_esame.mese<data2.mese && data1.anno<tutti_esami[a].data_esame.anno<data2.anno)
                             {
                                 cout<<"l'esame è stato sostenuto dallo studente il cui numero di matricola è: "<<tutti_esami[a].matricola_studente<<endl;
                                 num_stu++;
                             }
                             b=a;
                         }
                         cout<<"l'esame è stato sostenuto da "<<num_stu<<" studenti"<<endl<<endl;
                         break;
                case 13: int f,r,codi_in,num_tot=0,somma2=0;
                         float media_es;
                         cout<<"inserisci il codice dell'insegnamento"<<endl<<endl;
                         cin>>codi_in;
                         f=tutti_esami[dim_es].ricerca_esame_per_codice_insegnamento(dim_es,codi_in,0);
                         while(f==0)
                         {
                             cout<<"l'insegnamento con tale codice non è stato trovato"<<endl;
                             cout<<"reinserisci il codice"<<endl;
                             cin>>codi_in;
                             f=tutti_esami[dim_es].ricerca_esame_per_codice_insegnamento(dim_es,codi_in,0);
                         }
                         somma=somma+tutti_esami[f].voto;
                         num_tot++;
                         while(f<dim_es)
                         {
                             r=tutti_esami[dim_es].ricerca_per_matricola_studente(dim_es,mat_s,f);
                             somma=somma+tutti_esami[r].voto;
                             num_tot++;
                             f=r;
                         }
                         media_es=somma2/num_tot;
                         cout<<"la media delle votazioni ottenute da tutti gli studenti in tale esame è: "<<media_es<<endl<<endl;
                         break;
                case 14: cout<<"operazioni terminate,arrivederci"<<endl<<endl;
                         break;
                default: cout<<"scelta non valida";
           }
        }
        while(scelta1!=14);
        f1.close();
        f2.close();
        f3.close();
        ofstream f4("studenti.txt");
        for(int i=0;i<dim_stud;i++)
        {
            f4<<tutti_gli_studenti[i].nome;
            f4.put('/n');
            f4<<tutti_gli_studenti[i].cognome;
            f4.put('/n');
            f4<<tutti_gli_studenti[i].data_di_nascita.giorno;
            f4.put('/');
            f4<<tutti_gli_studenti[i].data_di_nascita.mese;
            f4.put('/');
            f4<<tutti_gli_studenti[i].data_di_nascita.anno;
            f4.put('/n');
            f4<<tutti_gli_studenti[i].indirizzo;
            f4.put('/n');
            f4<<tutti_gli_studenti[i].matricola;
            f4.put('/n');
            f4<<tutti_gli_studenti[i].facolta;
            f4.put('/n');
            f4<<tutti_gli_studenti[i].anno_corso;
            f4.put('/n');
            f4<<tutti_gli_studenti[i].email;
            f4.put('/n');
        }
        f4.close();
        ofstream f5("corsi.txt");
        for(int i=0;i<dim_stud;i++)
        {
            f5<<tutti_corsi[i].nome_corso;
            f5.put('/n');
            f5<<tutti_corsi[i].codice_corso;
            f5.put('/n');
            f5<<tutti_corsi[i].cfu;
            f5.put('/n');
            f5<<tutti_corsi[i].anno;
            f5.put('/n');
            f5<<tutti_corsi[i].semestre;
            f5.put('/n');
        }
        f5.close();
        ofstream f6("esami.txt");
        for(int i=0;i<dim_stud;i++)
        {
            f6<<tutti_esami[i].matricola_studente;
            f6.put('/n');
            f6<<tutti_esami[i].codice_insegnamento;
            f6.put('/n');
            f6<<tutti_esami[i].data_esame.giorno;
            f6.put('/');
            f6<<tutti_esami[i].data_esame.mese;
            f6.put('/');
            f6<<tutti_esami[i].data_esame.anno;
            f6.put('/n');
            f6<<tutti_esami[i].voto;
            f6.put('/n');
        }
        f6.close();
        return 0;
    }

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Molto bello ma era meglio postare un link da cui scaricare il progetto, dato che e' cosi' corposo.

    Dovresti anche dare qualche indicazione di quando avviene il problema (in quale fase del programma) perche' non penso che qualcuno prendera' tutto il codice, lo compilera', lo testera' finche' non trova il problema ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Dovresti anche dare qualche indicazione di quando avviene il problema (in quale fase del programma) perche' non penso che qualcuno prendera' tutto il codice, lo compilera', lo testera' finche' non trova il problema ...
    Be', io ci ho provato, con risultati tragici...
    • Manca il ; alla fine della dichiarazione di diverse classi.
    • Manca la graffa di chiusura della classe collezione_corsi.
    • Nella classe collezione_studenti in alcuni metodi si fa riferimento all'inesistente array st, probabilmente intendendo coll_stud.
    • In molte classi (come persona, studente, corso, esame) dichiari dei campi come private o protected ma poi da altre classi o dal main cerchi di accedervi come se fossero pubblici.
    • Nella classe collezione_corsi in alcuni metodi si fa riferimento all'inesistente array co, probabilmente intendendo coll_corso.
    • Nella classe collezione_esami in alcuni metodi si fa riferimento all'inesistente array es, probabilmente intendendo coll_es.
    • Alla riga 823 (del mio file) hai scritto F1 invece di f1.
    • Alla riga 920 (del mio file) cerchi di invocare il metodo ricerca_per_matricola_studente su un oggetto studente, che non lo fornisce.
    • ... e qui mi sono stufato perché gli errori sono davvero tanti, e sono tutti errori di compilazione che puoi risolvere benissimo da solo, nulla di trascendentale se sai come funziona il tuo progetto. Le dimensioni del file non c'entrano niente (il compilatore trangugia senza problemi sorgenti di centinaia di migliaia di righe), sono proprio errori di sintassi. Come monito ti lascio la lista degli errori rimanenti dopo che ho sistemato i primi 7 punti della lista (flag del compilatore: /O2 /Og /EHsc /W4):
      codice:
      Microsoft (R) 32-bit C/C++ Optimizing Compiler versione 13.10.6030 per 80x86
      Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
      
      Test_RikyToro.cpp
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(617) : warning C4100: "DEST": parametro formale senza riferimenti
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(635) : warning C4389: "!=": errata corrispondenza tra signed e unsigned
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(697) : warning C4100: "DEST": parametro formale senza riferimenti
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(721) : warning C4389: "!=": errata corrispondenza tra signed e unsigned
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(920) : error C2039: "ricerca_per_matricola_studente": non Š un membro di "studente"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(130): vedere la dichiarazione di "studente"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(926) : error C2039: "ricerca_per_matricola_studente": non Š un membro di "studente"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(130): vedere la dichiarazione di "studente"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(957) : error C2039: "g": non Š un membro di "DATA"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(9): vedere la dichiarazione di "DATA"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(957) : error C2039: "g": non Š un membro di "DATA"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(9): vedere la dichiarazione di "DATA"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(958) : error C2039: "m": non Š un membro di "DATA"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(9): vedere la dichiarazione di "DATA"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(958) : error C2039: "m": non Š un membro di "DATA"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(9): vedere la dichiarazione di "DATA"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(959) : error C2039: "a": non Š un membro di "DATA"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(9): vedere la dichiarazione di "DATA"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(959) : error C2039: "a": non Š un membro di "DATA"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(9): vedere la dichiarazione di "DATA"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(966) : error C2105: "--" richiede un l-value
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(971) : error C2360: inizializzazione di "ind_em" ignorata da un'etichetta "case"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(930): vedere la dichiarazione di "ind_em"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(976) : error C2065: "scelta": identificatore non dichiarato
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(976) : error C2143: errore di sintassi: ")" mancante prima di "constant"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(976) : error C2050: espressione switch non integrale
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(976) : error C2059: errore di sintassi: ")"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(977) : error C2143: errore di sintassi: ";" mancante prima di "{"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(977) : warning C4060: istruzione switch senza etichette "case" o "default"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(978) : error C2360: inizializzazione di "sott_str" ignorata da un'etichetta "case"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(972): vedere la dichiarazione di "sott_str"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(978) : error C2360: inizializzazione di "ind_em" ignorata da un'etichetta "case"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(930): vedere la dichiarazione di "ind_em"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(978) : error C2196: valore case "1" gi… utilizzato
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(980) : error C2039: "ricerca_per_matricola_studente": non Š un membro di "studente"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(130): vedere la dichiarazione di "studente"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(986) : error C2039: "ricerca_per_matricola_studente": non Š un membro di "studente"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(130): vedere la dichiarazione di "studente"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(992) : error C2360: inizializzazione di "sott_str" ignorata da un'etichetta "case"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(972): vedere la dichiarazione di "sott_str"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(992) : error C2360: inizializzazione di "ind_em" ignorata da un'etichetta "case"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(930): vedere la dichiarazione di "ind_em"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(992) : error C2196: valore case "2" gi… utilizzato
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(994) : error C2039: "ricerca_per_sottostringa_cognome": non Š un membro di "studente"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(130): vedere la dichiarazione di "studente"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(1000) : error C2039: "ricerca_per_sottostringa_cognome": non Š un membro di "studente"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(130): vedere la dichiarazione di "studente"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(1006) : error C2361: inizializzazione di "sott_str" ignorata da un'etichetta "default"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(972): vedere la dichiarazione di "sott_str"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(1006) : error C2361: inizializzazione di "ind_em" ignorata da un'etichetta "default"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(930): vedere la dichiarazione di "ind_em"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(1009) : error C2360: inizializzazione di "sott_str" ignorata da un'etichetta "case"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(972): vedere la dichiarazione di "sott_str"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(1009) : error C2360: inizializzazione di "ind_em" ignorata da un'etichetta "case"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(930): vedere la dichiarazione di "ind_em"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(1011) : error C2039: "numero_tot_iscritti": non Š un membro di "studente"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(130): vedere la dichiarazione di "studente"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(1014) : error C2360: inizializzazione di "sott_str" ignorata da un'etichetta "case"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(972): vedere la dichiarazione di "sott_str"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(1014) : error C2360: inizializzazione di "ind_em" ignorata da un'etichetta "case"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(930): vedere la dichiarazione di "ind_em"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(1039) : error C2360: inizializzazione di "sott_str" ignorata da un'etichetta "case"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(972): vedere la dichiarazione di "sott_str"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(1039) : error C2360: inizializzazione di "ind_em" ignorata da un'etichetta "case"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(930): vedere la dichiarazione di "ind_em"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(1059) : error C2360: inizializzazione di "sott_str" ignorata da un'etichetta "case"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(972): vedere la dichiarazione di "sott_str"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(1059) : error C2360: inizializzazione di "ind_em" ignorata da un'etichetta "case"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(930): vedere la dichiarazione di "ind_em"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(1062) : error C2065: "f": identificatore non dichiarato
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(1062) : error C2039: "ricerca_per_codice": non Š un membro di "corso"
              D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(263): vedere la dichiarazione di "corso"
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(1063) : error C3861: "f": identificatore non trovato nemmeno con una ricerca dipendente dall'argomento
      D:\Documents and Settings\Matteo\Documenti\cpp\test\Test_RikyToro.cpp(1063) : fatal error C1903: impossibile recuperare l'errore o gli errori precedenti. Interruzione della compilazione
      
      Process completed, Exit Code 2.
      Execution time: 00.00.359


    Ah, dimenticavo, link al file con le prime correzioni. Nota che, per sfoltire la massa degli errori, ho impostato a public la visibilità di tutti i campi che mi davano problemi di accesso, ma questo è solo un palliativo, in seguito dovrai ripristinare le impostazioni di accesso precedenti ed incapsulare i campi in questione in funzioni wrapper. Per facilitarti il compito ho lasciato un commento
    codice:
    //TODO: descrizione cambiamento, cosa da fare
    per ogni private o protected cambiato in public.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.