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???