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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Creo que ahora si me salio el array de longitud variable sin perder datos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Creo que ahora si me salio el array de longitud variable sin perder datos  (Leído 2,653 veces)
Y2J

Desconectado Desconectado

Mensajes: 10



Ver Perfil
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;
}


En línea

Khronos14


Desconectado Desconectado

Mensajes: 443


A lie is a lie


Ver Perfil WWW
Re: Creo que ahora si me salio el array de longitud variable sin perder datos
« Respuesta #1 en: 25 Agosto 2011, 02:37 am »

Pues tienes dos formas de hacer un array de longitud variable: arrays redimensionables y listas enlazadas.

Los arrays redimensionales consiste en crear una copia temporal de los datos de tu array, crear un nuevo array con new() con un tamaño superior para el nuevo registro, y a continuación vuelcas toda la información del array temporal en el nuevo.

Las listas enlazadas tienen un poco más de trabajo, pero son más ágiles. En google encontrarás información sobre ellas o mismo en el foro.

Saludos.


En línea

Y2J

Desconectado Desconectado

Mensajes: 10



Ver Perfil
Re: Creo que ahora si me salio el array de longitud variable sin perder datos
« Respuesta #2 en: 25 Agosto 2011, 02:53 am »

ya lo se pero queria hacerlo sin esas cosas, ademas que aun no llego al tema de listas enlazadas y stl, pero queria saber si mi algoritmo esta bien
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
cual es la longitud maxima de una variable por get.
PHP
SERBice 0 1,996 Último mensaje 29 Agosto 2007, 12:25 pm
por SERBice
Ya salio el GTA IV, ahora si!!!! « 1 2 »
Juegos y Consolas
offspring13 11 5,753 Último mensaje 5 Diciembre 2008, 16:36 pm
por Embusterillo de bolsillo
Como hacer un array de longitud variable?
Programación C/C++
Y2J 3 7,638 Último mensaje 24 Agosto 2011, 02:30 am
por rir3760
¿Como se recogian datos en un array?
.NET (C#, VB.NET, ASP)
lessionone 2 2,851 Último mensaje 15 Abril 2012, 12:08 pm
por lessionone
Obtener longitud de un array de enteros en C
Programación C/C++
geeke 2 2,275 Último mensaje 14 Enero 2015, 15:04 pm
por geeke
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines