Pues eso, creo que ahora si me salio el array de longitud variable sin perder datos que necesitaba en mi tema anterior (Como hacer un array de longitud variable?)
Ahora quisiera que me digan si realmente esta bien y puedo implemetarlo en mi programa, que es de registrarse y luego acceder a tu al sistema con tu nombre y contraseña
#include <iostream>
#include <cstdlib>
using namespace std;
struct Registro
{
string Codigo;
string Nombre;
int Edad;
int DNI;
//void Acceder();
};
int Menu_Principal();
void Registrarse(Registro *P,int x);
//int i=1;
int Menu_Principal()
{
int opcion;
cout<<"MENU PRINCIPAL\n"<<endl;
cout<<"1) Acceder\n2) Registrarse\n3) Salir\n\nIngrese una opcion: "<<endl;
cin>>opcion;
return opcion;
}
void Registrarse(Registro *P,int x)
{
cout<<"PROCESO DE REGISTRO\n"<<endl;
cout<<"Ingrese su Nombre Completo: ";
getline(cin,(*(P+(x-1))).Nombre);
cout<<"Ingrese su codigo de acceso (Solo 5 digitos): ";
getline(cin,(*(P+(x-1))).Codigo);
cout<<"Ingrese su edad: ";
cin>>(*(P+(x-1))).Edad;
cout<<"Ingrese su DNI: ";
cin>>(*(P+(x-1))).DNI;
}
int main()
{
int j=1;
int i;
string nom,cod;
Registro *Persona;
Registro *Persona2;
do
{
if(j<2)
Persona=new Registro[j];
if(j%2==1)//si es impar
Registrarse(Persona,j);
else
Registrarse(Persona2,j);
j=j+1;
fflush(stdin);
if(j%2==0)//si es par
Persona2= new Registro[j];
else
Persona=new Registro[j];
for(i=0;i<j-1;i++)
{
if(j%2==0)
nom=Persona.Nombre;
else
nom=Persona2.Nombre;
if(j%2==0)
cod=Persona.Codigo;
else
cod=Persona2.Codigo;
if(j%2==0)
Persona2.Nombre=nom;
else
Persona.Nombre=nom;
if(j%2==0)
Persona2.Codigo=cod;
else
Persona.Codigo=cod;
}
if(j%2==0)
cout<<Persona2[0].Nombre<<endl;
else
cout<<Persona[0].Nombre<<endl; /*Esto es para comprobar que no hay perdida de datos al copiar los datos y que primer dato siempre es el mismo*/
if(j%2==0)
delete []Persona;
else
delete []Persona2;
system("CLS");
}
while(1);
getchar();getchar();
return 0;
}
Ahora quisiera que me digan si realmente esta bien y puedo implemetarlo en mi programa, que es de registrarse y luego acceder a tu al sistema con tu nombre y contraseña
#include <iostream>
#include <cstdlib>
using namespace std;
struct Registro
{
string Codigo;
string Nombre;
int Edad;
int DNI;
//void Acceder();
};
int Menu_Principal();
void Registrarse(Registro *P,int x);
//int i=1;
int Menu_Principal()
{
int opcion;
cout<<"MENU PRINCIPAL\n"<<endl;
cout<<"1) Acceder\n2) Registrarse\n3) Salir\n\nIngrese una opcion: "<<endl;
cin>>opcion;
return opcion;
}
void Registrarse(Registro *P,int x)
{
cout<<"PROCESO DE REGISTRO\n"<<endl;
cout<<"Ingrese su Nombre Completo: ";
getline(cin,(*(P+(x-1))).Nombre);
cout<<"Ingrese su codigo de acceso (Solo 5 digitos): ";
getline(cin,(*(P+(x-1))).Codigo);
cout<<"Ingrese su edad: ";
cin>>(*(P+(x-1))).Edad;
cout<<"Ingrese su DNI: ";
cin>>(*(P+(x-1))).DNI;
}
int main()
{
int j=1;
int i;
string nom,cod;
Registro *Persona;
Registro *Persona2;
do
{
if(j<2)
Persona=new Registro[j];
if(j%2==1)//si es impar
Registrarse(Persona,j);
else
Registrarse(Persona2,j);
j=j+1;
fflush(stdin);
if(j%2==0)//si es par
Persona2= new Registro[j];
else
Persona=new Registro[j];
for(i=0;i<j-1;i++)
{
if(j%2==0)
nom=Persona.Nombre;
else
nom=Persona2.Nombre;
if(j%2==0)
cod=Persona.Codigo;
else
cod=Persona2.Codigo;
if(j%2==0)
Persona2.Nombre=nom;
else
Persona.Nombre=nom;
if(j%2==0)
Persona2.Codigo=cod;
else
Persona.Codigo=cod;
}
if(j%2==0)
cout<<Persona2[0].Nombre<<endl;
else
cout<<Persona[0].Nombre<<endl; /*Esto es para comprobar que no hay perdida de datos al copiar los datos y que primer dato siempre es el mismo*/
if(j%2==0)
delete []Persona;
else
delete []Persona2;
system("CLS");
}
while(1);
getchar();getchar();
return 0;
}