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)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema al hacer una Agenda Telefonica en C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Problema al hacer una Agenda Telefonica en C++  (Leído 17,834 veces)
Y2J

Desconectado Desconectado

Mensajes: 10



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


En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Problema al hacer una Agenda Telefonica en C++
« Respuesta #1 en: 19 Agosto 2011, 16:55 pm »

Hola

El fallo lo tienes aquí:
Código
  1. void Leer_Datos()
  2. {
  3.     for(int i=0;i<10;i++)
  4.     {
  5.             cout<<"Persona "<<i+1<<": "<<endl;
  6.             cout<<"Ingrese el Nombre: ";cin>>Persona.Nombre;
  7.             cout<<"Ingrese Numero Telefonico: ";cin>>Persona.Numero;
  8.             cout<<endl;
  9.     }
  10. }
  11.  

Deberías poner:
Código
  1. void Leer_Datos()
  2. {
  3.     for(int i=0;i<10;i++)
  4.     {
  5.             cout<<"Persona "<<i+1<<": "<<endl;
  6.             cout<<"Ingrese el Nombre: ";cin>>Persona[i].Nombre;
  7.             cout<<"Ingrese Numero Telefonico: ";cin>>Persona[i].Numero;
  8.             cout<<endl;
  9.     }
  10. }
  11.  

Saludos


En línea

Breakbeat como forma de vida
Y2J

Desconectado Desconectado

Mensajes: 10



Ver Perfil
Re: Problema al hacer una Agenda Telefonica en C++
« Respuesta #2 en: 19 Agosto 2011, 17:09 pm »

Gracias por tu respuesta hice lo que me dijiste pero al ejecutar el programa cuando pongo 1, osea buscar por nombre  luego de escribir el nombre el programa se cuelga y no me dice donde esta el error , lo mismo me pasa cundo pongo para buscar por numero, que esta mal??
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Problema al hacer una Agenda Telefonica en C++
« Respuesta #3 en: 19 Agosto 2011, 17:19 pm »

En esas dos funciones tienes el mismo error que ya te indicaron (debes indicar el indice del elemento al cual quieres acceder).

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Problema al hacer una Agenda Telefonica en C++
« Respuesta #4 en: 19 Agosto 2011, 17:21 pm »

Hola

Se me había escapado pero en las 2 funciones de buscar haces lo mismo, te falta poner el índice:
Código
  1. Persona[i].Nombre
  2. Persona[i].Numero
  3.  

Saludos
En línea

Breakbeat como forma de vida
Y2J

Desconectado Desconectado

Mensajes: 10



Ver Perfil
Re: Problema al hacer una Agenda Telefonica en C++
« Respuesta #5 en: 19 Agosto 2011, 17:31 pm »

Ya corregi todos los lugares donde me falta poner las indices pero al ejecutar se me cuelga luego de escribir el nombre o numero a buscar, no se que pasa
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Problema al hacer una Agenda Telefonica en C++
« Respuesta #6 en: 19 Agosto 2011, 17:39 pm »

Así es muy difícil ayudarte salvo utilizando la bola de cristal o, mejor todavía, la mascara vudú y la gallina.

Publica el código fuente completo de tu programa y lo revisamos.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Problema al hacer una Agenda Telefonica en C++
« Respuesta #7 en: 19 Agosto 2011, 17:42 pm »

Hola

Te falta avanzar el índice cuando no coinciden los resultados:
Código
  1. if()
  2.    .......
  3. else
  4.    i++;
  5.  

Saludos
En línea

Breakbeat como forma de vida
Y2J

Desconectado Desconectado

Mensajes: 10



Ver Perfil
Re: Problema al hacer una Agenda Telefonica en C++
« Respuesta #8 en: 19 Agosto 2011, 17:59 pm »

Mother of God!!!!! no puedo creer que se me haya olvidado poner el i++ ese era el problema ahora si me funciona gracias satu y a los demas por su respuesta, esque soy nuevo en c++ y estoy aprendiendo con un libro y un curso de internet. Gracias tios

Saludos 
En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Problema al hacer una Agenda Telefonica en C++
« Respuesta #9 en: 19 Agosto 2011, 18:13 pm »

Hola

De nada hombre, para eso estamos.

Estoy revisando el código y veo que te faltan los break de cada case del switch. Además deberías meter el menú dentro del do-while si quieres que se muestre más veces.

Saludos
En línea

Breakbeat como forma de vida
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como hacer una agenda
PHP
cuerty 1 11,250 Último mensaje 30 Octubre 2008, 01:17 am
por :ohk<any>
Agenda Telefónica en la Web ...???
Dudas Generales
4971231 1 2,666 Último mensaje 28 Octubre 2010, 21:13 pm
por [u]nsigned
Agenda telefónica en vbs...!!!
Programación Visual Basic
user_foro 0 1,822 Último mensaje 16 Agosto 2015, 20:27 pm
por user_foro
Agenda telefonica
Programación C/C++
Marsi 3 3,348 Último mensaje 4 Junio 2020, 11:17 am
por K-YreX
Agenda telefonica
Programación C/C++
roma7776 1 2,118 Último mensaje 1 Septiembre 2023, 01:50 am
por Locura_23
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines