ciao a tutti,
avevo un problema. HO costriution la gestione di una rubrica dove si puo inserire nome,cognome,numero di telefono e email.
Il programma mi va in Loop.. qualcuno saprebbe aiutarmi??
Qualcuno inoltre mi aiuterebbe a fare il metodo per cancellare un nome inserito nella rubrica? grazie!
codice:
 
#include <cstdlib>
#include <iostream>
#include <string.h>

using namespace std;
class reg
{
      protected:
                char*nome;
                char*tel;
      public:
             reg (char*n,char*t)
             {
                 nome=new char(strlen(n));
                 tel=new char(strlen(t));
                 strcpy(nome,n);
                 strcpy(tel,t);
             }
             char*Nome()
             {
                        return nome;
             }
             char*Telefono()
             {
                            return tel;
             }
};
class reg2: public reg
{
      char*mail;
      public:
             reg2(char*n,char*t,char*m):reg(n,t) 
             {
                                          mail=new char(strlen(m));
                                          strcpy(mail,m);
             }
             char*Email()
             {
                        return mail;
             }
};
int main()
{
    reg2 stud[50]=reg2("","","");
    char*nom=new char(30);
    int i,occup=0,risp;
    char*n=new char(30);
    char*t=new char(10);
    char*m=new char(20);
    
    for(i=0;i<50;i++)
        stud[i]=reg2("","","");
    
    /*strcpy(n,"");
    strcpy(t,"");
    strcpy(m,"");*/
    do{
    cout<<"scelta"<<endl;
    cout<<"1 inserisci"<<endl;
    cout<<"2 stampa"<<endl;
    cout<<"3 cancella persona"<<endl;
    cout<<"0 esci"<<endl;
    cin>>risp;
    
    switch (risp){
           case 1:
                cout<<"Inserisci nominativo, numero di telefono, email"<<endl;
                cout<<"nome"<<endl;
                cin>>n;
                cout<<"telefono"<<endl;
                cin>>t;
                cout<<"email"<<endl;
                cin>>m;
                stud[occup]=reg2(n,t,m);
                occup++;
                break;
           case 2:
                cout<<"Nominativo, Telefono, Email"<<endl;
                for(i=0;i<occup;i++)
                cout<<stud[i].Nome()<<"\t"<<stud[i].Telefono()<<"\t"<<stud[i].Email()<<endl;
                break;
           case 3:
                cout<<"Chi vuoi cancellare dall'elenco?"<<endl;
                cin>>nom;
                for(i=0;i<occup;i++)
                 if(!(strcmp(nom,stud[i].Nome()))){
                           stud[i]=reg2("","","");
                           if(i!=49)
                               stud[i]=reg2(stud[i+1].Nome(),stud[i+1].Telefono(),stud[i+1].Email());
                           occup--;
                 }    
                break;             
                }
    }while(risp != 0);
}