Ayuda en estructuras como funcion

Iniciado por Kensei_G, 30 Mayo 2012, 19:01 PM

0 Miembros y 1 Visitante están viendo este tema.

Kensei_G

hola soy novato en programacion estudiante de ing ssitemas 

Código (cpp) [Seleccionar]
[font=Verdana]#include "conio.h"
#include "string.h"
#include "stdlib.h"
#include "stdio.h"
#include "iostream"
#define t 2
#define max 10
using namespace std;
struct cliente
{
  char nombre[15];
  char ape[15];
  int dni;
  float dinero;
  int edad;
  char telefono[10];
}persona[t];

//--------------Funciones prototipo-----------
void mostrar(struct cliente x[t]);
int Registrarse();
void Entrar(struct cliente x[t]);
int Salir();
//------------------------------------------------
int Registrarse()
{
     int N;
    do
    {
        cout << "Cuantas Personas va ha registrar ?: ";
        cin >>N;
    }while (N>max);
    for (int i=0;i<N;i++)
    {
        cout<<"\nCLIENTE "<<i+1;
        cout<< "\nDATOS PERSONALES:";
        cout<<"\n_______________________"<<endl;
        cout<< "\n\tIngrese nombre: ";
        cin>>persona[i].nombre;
        cout<<"\tApellido :";
        cin>>persona[i].ape;
        cout<<"\tDNI :" ;
        cin>>persona[i].dni;
        cout<<"\tEdad: ";
        cin>>persona[i].edad;
        cout<<"\tTelefono: ";
        cin>>persona[i].telefono;
        cout<<"\tCon cuanto va a aperturar su cuenta ? : ";
        cin>>persona[i].dinero;
        cout<<"\n_______________________"<<endl;
    }
    mostrar(persona);
    getch();
}

void mostrar(struct cliente x[t])
{
    for(int i=0;i<t;i++)
        {
            cout<<"\n\n"<<x[i].nombre<<" "<<x[i].ape<<" "<<x[i].dni<<" "<<x[i].edad<<"  "<<x[i].telefono;
            cout<<"\n su saldo es :"<<x[i].dinero;
        }
}
void Entrar(struct cliente x[t])
{
    int coincidencias,n;
    int b_dni;
    cout<<"\n\t Sr. CLIENTE ";
    cout<<"\n* Ingrese su n° DNI: ";
    cin>>b_dni;
    //coincidencias = Buscar_dni(b_dni);
    for(int i=0;i<t;i++)
    {
       // n=strcmp(b_dni, x[i].dni);
       if(b_dni==x[i].dni)
        {
        coincidencias++;
              cout<<"\n\n"<<x[i].nombre<<" "<<x[i].ape<<" "<<x[i].dni<<" "<<x[i].edad<<"  "<<x[i].telefono;
            cout<<"\n su saldo es :"<<x[i].dinero;
        }
    }
    if(coincidencias > 0)
{
        cout<<"\nHubo "<<coincidencias<<" coincidencias.\n"<<endl;
}
else
{
        cout<<"No se encuentra"<<endl;
}
}

int Salir()
{
getch();
}
main()
{
     int op1;
    //do
    //{
    cout<<"1.- Registrarse\n2.- Entrar\n3.-Salir";
    do
    {
        cout<<"\n\ningrese opcion :";
        cin>>op1;
    }while (op1<1 || op1>2);

    switch(op1)
    {
        case 1 : Registrarse();break;
        case 2: Entrar();break;
        case 3:Salir();
        default:/* menu1();*/break;
    }
    //}while(op1!='2');
    //Registrarse();
}
[/font]

durasno

Hola! pedis ayuda pero no especificas nada, error de compilacion?? no hace lo que esperas??? Si decis algo es mas facil de ayudarte...

El error que yo veo es hacer persona[t]; Deberia ser
persona[MAX];
Con el define t solo estas declarando un arreglo de estructura de 2 posiciones, y esto en la funcion Registrarse() te traeria problemas.

En la funcion entrar() en:
for(int i=0;i<t;i++)
la condicion debe ser i<N, siendo N el numero de personas a registrarse declarada en la funcion Registrarse(). Fijate como resolves esto

Saludos
Ahorrate una pregunta, lee el man