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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  implemente un codigo que pida 6 datos a 5 personas pero no hace la busqueda bien
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: implemente un codigo que pida 6 datos a 5 personas pero no hace la busqueda bien  (Leído 1,718 veces)
a.9471

Desconectado Desconectado

Mensajes: 1


Ver Perfil
implemente un codigo que pida 6 datos a 5 personas pero no hace la busqueda bien
« en: 6 Diciembre 2014, 07:14 am »

Código
  1. //*el problema es que no realiza la busqueda completa solo encuentra un registro si la opcion ingresada es 0 y por defecto tampoco me deja hacer una eliminacion por busqueda ni modificacion*//
  2. #include <stdio.h>
  3. #include <conio.h>
  4. #include <stdlib.h>
  5. #define p printf
  6. #define s scanf
  7. #define MAX 5
  8. int buscar(int x);
  9.  
  10. using namespace std;
  11. struct usuario
  12. {
  13.       char nombre[20],apellido[20], sexo[20], nivel[40],carrera[30];
  14.       int telefono,no_lista;
  15.       }
  16.  
  17.  
  18.        e[MAX];
  19.       int cont=0;
  20.       int buscar(int x);
  21.  
  22.       void capturar()
  23.       {
  24.            p("Nombre: "); fflush(stdin); gets(e[cont].nombre);
  25.            p("Apellido: "); fflush(stdin); gets(e[cont].apellido);
  26.            p("Sexo: "); fflush(stdin); gets(e[cont].sexo);
  27.            p("Numero telefonico: "); s("%d",&e[cont].telefono);
  28.            p("Nivel Maximo de Estudios: "); fflush(stdin); gets(e[cont].nivel);
  29.            p("Carrera de Especialidad: "); fflush(stdin); gets(e[cont].carrera);
  30.            cont++;
  31.            }
  32.            void mostrar()
  33.            {
  34.                 for(int i=0; i<cont; i++)
  35.                 {
  36.                         p("\nNombre:\t %s",e[i].nombre);
  37.                         p("\nApellido:\t %s",e[i].apellido);
  38.                         p("\nSexo:\t %s",e[i].apellido);
  39.                         p("\nNumero Telefonico:\t %d",e[i].telefono);
  40.                         p("\nNivel Maximo de Estudios:\t %s",e[i].nivel);
  41.                         p("\nCarrera de Especialidad:\t %s",e[i].carrera);
  42.                         p("\nOPRIME ENTER PARA CONTINUAR");
  43.                          getch();
  44.                          system("cls");
  45.                         }
  46.                 }
  47.  
  48.                 void modificar()
  49.                 {
  50.                      int op,i,pr;
  51.                      pr=buscar(5);
  52.                      if(pr!=-1)
  53.                      {
  54.                      do
  55.                               {
  56.                                     p("\n1) Nombre: %s",e[pr].nombre);
  57.                                     p("\n2) Apellido: %s",e[pr].apellido);
  58.                                     p("\n3) Sexo: %s",e[pr].sexo);
  59.                                     p("\n4) Numero Telefonico: %d",e[pr].telefono);
  60.                                     p("\n5) Nivel Maximo de Estudios: %s",e[pr].nivel);
  61.                                     p("\n6) Carrera de especialidad: %s",e[pr].carrera);
  62.                                     p("\n7) Salir)   ");
  63.                                     p("\n¿QUE DECEA MODIFICAR?");
  64.                                     s("%d",&op);
  65.                                     switch(op)
  66.                                     {
  67.                                               case 1: p("Nombre: "); fflush(stdin); gets(e[pr].nombre); break;
  68.  
  69.                                               case 2: p("Apellido: "); fflush(stdin); gets(e[pr].apellido); break;
  70.  
  71.                                               case 3: p("Sexo: "); fflush(stdin); gets(e[pr].sexo); break;
  72.  
  73.                                               case 4: p("Numero telefonico: "); s("%d",&e[pr].telefono); break;
  74.  
  75.                                               case 5: p("Nivel Maximo de Estudios: "); fflush(stdin); gets(e[pr].nivel); break;
  76.  
  77.                                               case 6: p("Carrera de Especialidad: "); fflush(stdin); gets(e[pr].carrera); break;
  78.                                               }
  79.                                               }while(op!=7);
  80.                                               }
  81.                                               }
  82.                                               void eliminar()
  83.                                               {
  84.                                                    int pr,i;
  85.                                                    char r;
  86.                                                    pr=buscar(4);
  87.                                                    if(pr!=-1)
  88.                                                    {
  89.                                                             p("¿LO DECEA ELIMINAR S/N)?   ");
  90.                                                             s("%s", &r);
  91.                                                             if(r=='s'||r=='S')
  92.                                                             {
  93.                                                             for(i=pr; i<=cont; i++)
  94.                                                             e[i]=e[i+1];
  95.                                                             cont=cont+1;
  96.                                                             }
  97.                                                             }
  98.                                                    }
  99.  
  100.  
  101.                                                    int buscar(int x)
  102.                                                             {
  103.                                                                 int nl,b=0,pos;
  104.  
  105.                                                                 if(x==4)  p("\n Dame el Numero de lista a eliminar:");
  106.  
  107.  
  108.                                                                 else if(x==5)
  109.                                                                 p("Introduce el numero de lista a modificar:");
  110.  
  111.  
  112.                                                                 else
  113.                                                                 p("introduce el numero de lista a buscar:");
  114.                                                                 s("%d",&nl);
  115.                                                                 if(cont==0)
  116.                                                                 p("\n EL REGISTRO NO EXISTE");
  117.                                                                 else
  118.                                                                 for(int i=0; i<cont; i++)
  119.  
  120.                                                                 if(nl==e[i].no_lista)
  121.                                                                 {
  122.                                                                 if(x!=5)
  123.                                                                 {
  124.                                                                         p("\n Nombre: %s",e[i].nombre);
  125.                                                                         p("\n Apellido %s",e[i].apellido);
  126.                                                                         p("\n Sexo  %s",e[i].sexo);
  127.                                                                         p("\n Numero Telefonico %d",e[i].telefono);
  128.                                                                         p("\n Nivel Maximo de Estudios %s",e[i].nivel);
  129.                                                                         p("\n Carrera de Especialidad %s",e[i].carrera);
  130.                                                                         }
  131.                                                                         b=1; pos=i; break;
  132.                                                                         }
  133.                                                                         if(b==0)
  134.                                                                         {
  135.                                                                                 p("\nNO EXISTE REGISTRO");
  136.                                                                                 pos=-1;
  137.                                                                                 }
  138.                                                                                 if(x==3)
  139.                                                                                 {
  140.                                                                                         p("\nOPRIME ENTER PARA CONTINUAR");
  141.                                                                                         getch();
  142.                                                                                         }
  143.                                                                                         return(pos);
  144.                                                                                         }
  145.  
  146.                                                                                         int main()                                                                          
  147.                                                                                         {
  148.                                                                                               int opc; cont=0;
  149.  
  150.                                                                                               do
  151.                                                                                               {
  152.                                                                                                       system("cls");
  153.                                                                                                       p("\n1) AGREGAR \n 2) MOSTRAR\n 3) BUSCAR\n 4) ELIMINAR\n 5) MODIFICAR\n 6) SALIR\n");
  154.                                                                                                       s("%d",&opc);
  155.                                                                                                       if(opc==1)
  156.                                                                                                       capturar();
  157.                                                                                                       if(opc==2)
  158.                                                                                                       mostrar();
  159.                                                                                                       if(opc==3)
  160.                                                                                                       buscar(3);
  161.                                                                                                       if(opc==4)
  162.                                                                                                       eliminar();
  163.                                                                                                       if(opc==5)
  164.                                                                                                       modificar();
  165.                                                                                                       }while (opc!=6);
  166.                                                                                              return 0;
  167.                                                                                                       }
                                                                                                     
                                                                                                        
                                                                                              
                                                                        
                                                                
                                                              
                                              
                                              
          
            
                                    


« Última modificación: 6 Diciembre 2014, 09:43 am por #!drvy » En línea

soyloqbuskas

Desconectado Desconectado

Mensajes: 218


¡El conocimiento es de todos!


Ver Perfil
Re: implemente un codigo que pida 6 datos a 5 personas pero no hace la busqueda bien
« Respuesta #1 en: 6 Diciembre 2014, 09:40 am »

Buenas a.9471!

No he compilado tu codigo...pero a primera vista creo que si pide los 6 datos pero no ha 5 personas porque la void capturar() no esta dentro de un bucle para que se ejecute 5 veces.

Tambien veo que no usas bien los if() else()...

si pones:
Código
  1. if(condicion1) instruccion1;
  2. else instruccion2;
  3. instruccion3;

se ejecutaran instrcion1 y 3 o instrucion  2 y 3

te lo digo por estas lineas:
Citar
int buscar(int x)
{
     int nl,b=0,pos;                                      
     if(x==4)  p("\n Dame el Numero de lista a eliminar:");                                                                                                                                                                                                  
     else if(x==5)
                p("Introduce el numero de lista a modificar:");                                                                                                                                                                                            
     else
          p("introduce el numero de lista a buscar:");
      s("%d",&nl);


Esta linea se ejecuta
Citar
s("%d",&nl);
aunque no deberia ejecutarse si no entra en el else;

Para ello usa los corchetes:

Código
  1. if(condicion1){
  2.     instruccion11;
  3.     instruccion12;
  4. }
  5. else if(condicion2){
  6.     instruccion21;
  7.     instruccion22;
  8. }
  9. else{
  10.     instruccion31;
  11.     instruccion32;
  12. }
  13.  

Y para hacer tu programa mas legible alinea correctamente las funciones() y los void()
Tal y como lo tienes escrito todos las funciones() y los void() deberian estar alineados a la izquierda ya que no tienes funciones dentro de funciones

Utiliza este estilo (de corchetes)que hace mas facil la lectura.

Código:
void 1(){

     //codigo....
     //codigo....
     //codigo....
}

void 2(){

     //codigo....
     //codigo....
     //codigo....

     if(condicion){
            //codigo....
            //codigo....
     }
     else{
            //codigo....
            //codigo....

     }
}

Es una buena practica de programacion para facilitar la lectura


« Última modificación: 6 Diciembre 2014, 09:49 am por soyloqbuskas » En línea

"Si tienes 1 manzana y yo tengo otra manzana...
y las intercambiamos, ambos seguiremos teniendo 1 manzana.
Pero...si tu tienes 1 idea y yo tengo otra idea...
y las intercambiamos, ambos tendremos 2 ideas."


George Bernard Shaw
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines