ciao a tutti,
chi mi saprebbe aiutare a far funzionare il mio programma? si blocca appena avviato.. penso che sia una banalità ma nn capisco..
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);
}