elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Creo que ahora si me salio el array de longitud variable sin perder datos en: 25 Agosto 2011, 01:48 am
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;
}
2  Programación / Programación C/C++ / Como hacer un array de longitud variable? en: 24 Agosto 2011, 02:09 am
Buenas quisiera saber como crear un array sin longitud para hacer un programa donde hay que registrarse para acceder a un sistema de supermercado, hay que registrarse poniendo nombre y una contraseña y se accede con el nombre y la contraseña.
De hecho que eso lo guardo en un array de structuras pero se supone que el tamaño debe ir aumentando conforme se registren mas personas.
Me falta esa parte del programa y no como hacerlo, intente con arrays dinamicos pero  no se bien como se hace.

Gracias por su ayuda.  :D
3  Programación / Programación C/C++ / Problema al hacer una Agenda Telefonica en C++ en: 19 Agosto 2011, 16:42 pm
Veran, tengo que hacer una agenda telefonica donde el usuario introduzca el nombre y telefono de 10 personas , luego debe mostrar el menu con 3 opciones:
1) Buscar por nombre
2) Buscar por numero
3) Salir

el problema es que al buscar por nombre o por numero y programa se cuelga pero no me dice que hubo errores, este es el codigo:

#include <iostream>
#include <cstdlib>
#include <string.h>

using namespace std;

//Prototipos
void Leer_Datos();
void Buscar_Nombre();
void Buscar_Numero();
void Salir();
void Imprimir_Nombre(int pos);
void Imprimir_Numero(int pos);
int Menu();
//void(*Opciones[3])(void);

struct Datos
{
       int Numero;
       char Nombre[20];
}Persona[10];

void Leer_Datos()
{
     for(int i=0;i<10;i++)
     {
             cout<<"Persona "<<i+1<<": "<<endl;
             cout<<"Ingrese el Nombre: ";cin>>Persona.Nombre;
             cout<<"Ingrese Numero Telefonico: ";cin>>Persona.Numero;
             cout<<endl;
     }
}

int Menu()
{
    int opcion;
    cout<<"Agenda Telefonica"<<endl;
    cout<<"1) Buscar por Nombre\n2) Buscar por Numero de Telefono\n3) Salir"<<endl;
    cout<<"Ingrese una opcion: ";
    cin>>opcion;
    return opcion;
}

void Imprimir_Nombre(int pos)
{
     if(pos<0)
     cout<<"Dato no encontrado"<<endl;
     else
     cout<<Persona[pos].Numero;
}

void Imprimir_Numero(int pos)
{
     if(pos<0)
     cout<<"Dato no encontrado"<<endl;
     else
     cout<<Persona[pos].Nombre;
}



void Buscar_Nombre()
{
     char dato[20];
     cout<<"Ingrese el Nombre: ";cin>>dato;
     bool seguir=true;
     int i=0;
     signed int pos;
     while(i<10 && seguir)
     {
                if(strcmp(Persona.Nombre,dato)==0)   //if(strcmp(Persona.Nombre,Dato_Nombre())==0)
                {
                      seguir=false;
                      pos=i;
                }
     }
     if(seguir)
     pos=-1;
     Imprimir_Nombre(pos);
}
   

void Buscar_Numero()
{
     int dato;
     cout<<"Ingrese Numero de Telefono: ";cin>>dato;
     bool seguir=true;
     int i=0;
     signed int pos;
     while(i<10 && seguir)
     {
                if(Persona.Numero==dato)
                {
                      seguir=false;
                      pos=i;
                }
     }
     if(seguir)
     pos=-1;
     Imprimir_Numero(pos);
}


/*void Salir()  ////Eliminar
{
     exit(0);
}*/

//void(*Opciones[])(void)={Buscar_Nombre, Buscar_Numero, Salir};

int main(int argc, char *argv[])
{
    int opcion;
    Leer_Datos();
    opcion=Menu();
   
    do{
    switch(opcion)
    {
                  case 1:Buscar_Nombre();
                  case 2:Buscar_Numero();
    }
     }
    while(opcion!=3);
    //(Opciones[opcion-1])();
    system("PAUSE");
    return 0;
}
                                                           
Que  estoy haciendo mal???                 
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines