//*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*//
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define p printf
#define s scanf
#define MAX 5
int buscar(int x);
using namespace std;
struct usuario
{
char nombre[20],apellido[20], sexo[20], nivel[40],carrera[30];
int telefono,no_lista;
}
e[MAX];
int cont=0;
int buscar(int x);
void capturar()
{
p("Nombre: "); fflush(stdin); gets(e[cont].nombre);
p("Apellido: "); fflush(stdin); gets(e[cont].apellido);
p("Sexo: "); fflush(stdin); gets(e[cont].sexo);
p("Numero telefonico: "); s("%d",&e[cont].telefono);
p("Nivel Maximo de Estudios: "); fflush(stdin); gets(e[cont].nivel);
p("Carrera de Especialidad: "); fflush(stdin); gets(e[cont].carrera);
cont++;
}
void mostrar()
{
for(int i=0; i<cont; i++)
{
p("\nNombre:\t %s",e[i].nombre);
p("\nApellido:\t %s",e[i].apellido);
p("\nSexo:\t %s",e[i].apellido);
p("\nNumero Telefonico:\t %d",e[i].telefono);
p("\nNivel Maximo de Estudios:\t %s",e[i].nivel);
p("\nCarrera de Especialidad:\t %s",e[i].carrera);
p("\nOPRIME ENTER PARA CONTINUAR");
getch();
system("cls");
}
}
void modificar()
{
int op,i,pr;
pr=buscar(5);
if(pr!=-1)
{
do
{
p("\n1) Nombre: %s",e[pr].nombre);
p("\n2) Apellido: %s",e[pr].apellido);
p("\n3) Sexo: %s",e[pr].sexo);
p("\n4) Numero Telefonico: %d",e[pr].telefono);
p("\n5) Nivel Maximo de Estudios: %s",e[pr].nivel);
p("\n6) Carrera de especialidad: %s",e[pr].carrera);
p("\n7) Salir) ");
p("\n¿QUE DECEA MODIFICAR?");
s("%d",&op);
switch(op)
{
case 1: p("Nombre: "); fflush(stdin); gets(e[pr].nombre); break;
case 2: p("Apellido: "); fflush(stdin); gets(e[pr].apellido); break;
case 3: p("Sexo: "); fflush(stdin); gets(e[pr].sexo); break;
case 4: p("Numero telefonico: "); s("%d",&e[pr].telefono); break;
case 5: p("Nivel Maximo de Estudios: "); fflush(stdin); gets(e[pr].nivel); break;
case 6: p("Carrera de Especialidad: "); fflush(stdin); gets(e[pr].carrera); break;
}
}while(op!=7);
}
}
void eliminar()
{
int pr,i;
char r;
pr=buscar(4);
if(pr!=-1)
{
p("¿LO DECEA ELIMINAR S/N)? ");
s("%s", &r);
if(r=='s'||r=='S')
{
for(i=pr; i<=cont; i++)
e[i]=e[i+1];
cont=cont+1;
}
}
}
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);
if(cont==0)
p("\n EL REGISTRO NO EXISTE");
else
for(int i=0; i<cont; i++)
if(nl==e[i].no_lista)
{
if(x!=5)
{
p("\n Nombre: %s",e[i].nombre);
p("\n Apellido %s",e[i].apellido);
p("\n Sexo %s",e[i].sexo);
p("\n Numero Telefonico %d",e[i].telefono);
p("\n Nivel Maximo de Estudios %s",e[i].nivel);
p("\n Carrera de Especialidad %s",e[i].carrera);
}
b=1; pos=i; break;
}
if(b==0)
{
p("\nNO EXISTE REGISTRO");
pos=-1;
}
if(x==3)
{
p("\nOPRIME ENTER PARA CONTINUAR");
getch();
}
return(pos);
}
int main()
{
int opc; cont=0;
do
{
system("cls");
p("\n1) AGREGAR \n 2) MOSTRAR\n 3) BUSCAR\n 4) ELIMINAR\n 5) MODIFICAR\n 6) SALIR\n");
s("%d",&opc);
if(opc==1)
capturar();
if(opc==2)
mostrar();
if(opc==3)
buscar(3);
if(opc==4)
eliminar();
if(opc==5)
modificar();
}while (opc!=6);
return 0;
}