Problemas para consultar datos en una estructura

Iniciado por PJ Yeah, 11 Junio 2017, 02:32 AM

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

PJ Yeah

Tengo el siguiente programa que ingresa datos en una estructura pero al momento de querer consultar la información según el código que ingreso me muestra dicha información pero seguido del mensaje "Código no encontrado...!!!" que solo debería mostrarse cuando no encontrase dicho código. Gracias de antemano. La función donde tengo el error
//Función para consultar por codigo
void consultacodigo(struct datos agenda[5])

Programa:
Código (cpp) [Seleccionar]
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<iostream.h>

struct datos{
int codigo;
   char nombre[30];
   char ciudad[20];
};

//Funcion que realiza el menu
void menu(){
gotoxy(35,2); cout<<"AGENDA TELEFONICA";
   gotoxy(35,3); cout<<"*****************";
   gotoxy(35,4); cout<<"1. Ingresar";
   gotoxy(35,5); cout<<"2. Consultar";
gotoxy(35,6); cout<<"3. Fin";
   gotoxy(35,9); cout<<"Opci"<<(char)162<<"n [ ]";
}

//Funcion para ingresar datos en la estructura
void ingresar(struct datos agenda[5]){
   int cr=90, j, codigo;
system("cls");
   cout<<"Ingreso de Datos en la Agenda";
   for(int i=0;i<5;i++){
    cout<<"\nIngreso #"<<(i+1)<<endl;
      do{
    cout<<"\nIngrese el C"<<char(162)<<"digo: "; cin>>codigo; cout<<endl;
    for(j=0;j<5;j++){
    if(codigo==agenda[j].codigo){
    cout<<"No se aceptan codigos repetidos... "<<endl;
    cr=codigo;
         getch();
      }
}

}while(codigo==cr);
   agenda[i].codigo=codigo;
cout<<"Ingrese los Nombres: ";  gets(agenda[i].nombre); cout<<endl;
   flushall();
   cout<<"Ingrese la Ciudad: ";  gets(agenda[i].ciudad);  cout<<endl; cout<<endl;
   flushall();
      system("cls");
}
}
//Funcion de menu de consultar
void menu2(){
gotoxy(35,2); cout<<"CONSULTAR";
   gotoxy(35,3); cout<<"*********";
   gotoxy(35,4); cout<<"1. General";
   gotoxy(35,5); cout<<"2. Individual";
gotoxy(35,6); cout<<"3. Regresar";
   gotoxy(35,10); cout<<"Opci"<<(char)162<<"n [ ]";
}

//Funcion para consultar los resultados
void consultageneral(struct datos agenda[5]){
   int l=0;
   system ("cls");
   cout<<"DATOS ALMACENADOS"<<endl;
cout<<"Codigo \t Nombre \t Ciudad"<<endl;
   cout<<"================================================================================"<<endl;
if(agenda[l].codigo==NULL){
    cout<<"Sin datos...!!!";
      getch();
   }

   else{
    for (int i=0; i<5; i++){
    cout<<endl<<agenda[i].codigo<<"\t"<<agenda[i].nombre<<"\t"<<agenda[i].ciudad;
}
      getch();
}

}

//Funcion para consultar por codigo (En esta función esta el problema)
void consultacodigo(struct datos agenda[5]){
   system ("cls");
   int l=0, codigo, j=0;
system("cls");

   if(agenda[l].codigo==NULL){
    cout<<"Sin datos...!!!";
      getch();
   }
   else{
    cout<<"Ingrese el codigo a consultar: "; cin>>codigo;
      clrscr();
      for(j=0;j<5;j++){
    if(agenda[j].codigo==codigo){
         cout<<endl<<"DATOS ALMACENADOS DE CODIGO "<<agenda[j].codigo<<endl;
    cout<<"Codigo \t Nombre \t Ciudad"<<endl;
    cout<<"================================================================================"<<endl;
cout<<endl<<agenda[j].codigo<<"\t"<<agenda[j].nombre<<"\t"<<agenda[j].ciudad;
      getch();
         }}

    if (agenda[j].codigo!=codigo)
         cout<<"C"<<char(163)<<"digo no encontrado...!!!";



   }
   getch();
}

//Funcion para consultas del struct
void consultas(struct datos agenda[5]){
char opc2;
   bool salir=false;
   do{
      system("cls");
      menu2();
      gotoxy(43,10); opc2=getche();
      switch(opc2){
      case '1':
          system("cls");
                  consultageneral(agenda);
break;
         case '2':
          system("cls");
                  consultacodigo(agenda);
          break;
         case '3':
                   salir=true;
                   break;
         default:
          gotoxy(26,11); cout<<"AVISO: Opci"<<(char)162<<"n incorrecta...!!!";
          break;
      }

   }while(!salir);
}




main(){
struct datos agenda[5]={NULL};
   char opc;
   bool salir=false;
   do{
    system("cls");
      menu();
      gotoxy(43,9); opc=getche();
      switch(opc){
      case '1':
          ingresar(agenda);

          break;
         case '2':
          consultas(agenda);
          break;
         case '3':
                   salir=true;
          break;
         default:
          gotoxy(26,10); cout<<"AVISO: Opci"<<(char)162<<"n incorrecta...!!!";
          break;
      }

         system("pause>NUL");
}while(!salir);
}