void borrarPersona(Persona gente[])
{
    listarPorNombre(gente);
    long dniToDelete;
    Persona *personaABorrar = NULL;
    int hayError = pedirLong(&dniToDelete,"Ingrese DNI de la persona a eliminar\n",0,1,"Ingrese un DNI valido\n");
    if(!hayError)
    {
        personaABorrar = buscarPorDNI(gente,dniToDelete);
        if(personaABorrar != NULL)
        {
            personaABorrar->inUseFlag = 0;
        }else
        {
            printf("El DNI no corresponde a ninguna persona cargada\n");
        }
    }
}
Beispiel #2
0
int main()
{
   persona arrayP[Q];
   persona arrayAuxiliar;

   char auxNombre[50];
   char auxE[50];
   char auxD[50];
   int auxDNI,auxEdad,i;
   int hasta18=0,de19a35=0,mayorDe35=0, mayor;


   int flag=0;

   int indicarLugarLibre;
   int indicarResultadoBusqueda;

   int opcion=0;
   inicializar(arrayP,Q,0);

   while(opcion != 6)
   {
       printf("\n -- ABM de Usuarios -- \n");
       opcion=getInt("\n1. Alta \n2. Baja \n3. Modificar \n4. Listar \n5. Imprimir grafico \n6. Salir\n");
       switch(opcion)
       {
            case 1:
                system("cls");
                indicarLugarLibre=buscar(arrayP,Q,0);
                if(indicarLugarLibre == -1)
                {
                    printf("\n No quedan mas lugares libres!!\n");
                    break;
                }
                printf("\n - Alta - \n");
                if(!getStringLetras("Ingrese nombre: ",auxNombre))
                {
                    printf("El nombre debe estar compuesto solo por letras.");
                    break;
                }

                if(!getStringNumeros("\nIngrese edad: \n",auxE))
                {
                    printf("La edad debe estar compuesta solo por numeros");
                    break;
                }

                auxEdad=atoi(auxE);
                if(!validaRango(auxEdad,0,120))
                {
                    printf("La edad se encuentra fuera de rango.\n");
                    break;
                }

                if(!getStringNumeros("\nIngrese DNI: \n",auxD))
                {
                    printf("El DNI deber ser solo numeros: ");
                    break;
                }


                auxDNI=atoi(auxD);
                if(!validaRango(auxDNI,12000000,99999999))
                {
                    printf("El DNI ingresado se encuentra fuera de rango.\n");
                    break;
                }


                if(buscarPorDNI(arrayP,Q,auxDNI)!= -1)
                {
                    printf("\n El DNI ya existe. \n");
                    break;
                }

                strcpy(arrayP[indicarLugarLibre].nombre,auxNombre);
                arrayP[indicarLugarLibre].dni=auxDNI;
                arrayP[indicarLugarLibre].edad=auxEdad;
                arrayP[indicarLugarLibre].estado= 1;
                flag=1;

                if(arrayP[indicarLugarLibre].edad < 18)
                {
                      hasta18++;
                }

                else if(arrayP[indicarLugarLibre].edad >= 18 && arrayP[indicarLugarLibre].edad < 35)
                {
                      de19a35++;
                }

                else if(arrayP[indicarLugarLibre].edad >= 35)
                {
                      mayorDe35++;
                }


                system("cls");
                break;
            case 2:
                system("cls");
                if(buscar(arrayP,Q,1)== -1)
                {
                    printf("\nPrimero debe ingrear usuarios!!\n");
                    break;
                }

                if(!getStringNumeros("Ingrese el DNI de usario a dar de baja: ",auxD))
                {
                    printf("El DNI deber poseer solo numeros: ");
                    break;
                }

                auxDNI=atoi(auxD);
                if(!validaRango(auxDNI,12000000,99999999))
                {
                    printf("El DNI ingresado se encuentra fuera de rango.\n");
                    break;
                }

                indicarResultadoBusqueda=buscarPorDNI(arrayP,Q,auxDNI);

                if(indicarResultadoBusqueda == -1)
                {
                    printf("No se encuentra ese Usuario!\n");
                    break;
                }
                printf("\nSe ha eliminado el usuario DNI: %d Nombre: %s\n", arrayP[indicarResultadoBusqueda].dni, arrayP[indicarResultadoBusqueda].nombre);
                if(arrayP[indicarLugarLibre].edad < 18)
                {
                      hasta18--;
                }

                else if(arrayP[indicarLugarLibre].edad >= 18 && arrayP[indicarLugarLibre].edad < 35)
                {
                      de19a35--;
                }

                else if(arrayP[indicarLugarLibre].edad >= 35)
                {
                      mayorDe35--;
                }
                arrayP[indicarResultadoBusqueda].estado=0;
                break;

            case 3:
                system("cls");
                if(buscar(arrayP,Q,1)== -1)
                {
                    printf("\nPrimero debe ingrear usuarios!!\n");
                    break;
                }

                if(!getStringNumeros("Ingrese el DNI del usuario a modificar: ",auxD))
                {
                    printf("El DNI deber poseer solo numeros: ");
                    break;
                }

                auxDNI=atoi(auxD);
                if(!validaRango(auxDNI,12000000,99999999))
                {
                    printf("El DNI ingresado se encuentra fuera de rango.\n");
                    break;
                }


                indicarResultadoBusqueda=buscarPorDNI(arrayP,Q,auxDNI);
                if(indicarResultadoBusqueda == -1)
                {
                    printf("No se encuentra ese DNI!\n");
                    break;
                }

                if(!getStringLetras("Ingrese nombre: ",auxNombre))
                {
                    printf("El nombre debe estar compuesto solo por letras.");
                    break;
                }

                if(!getStringNumeros("\nIngrese edad: \n",auxE))
                {
                    printf("La edad debe estar compuesta solo por numeros");
                    break;
                }

                auxEdad=atoi(auxE);
                if(!validaRango(auxEdad,0,120))
                {
                    printf("La edad se encuentra fuera de rango.\n");
                    break;
                }


                if(!getStringNumeros("\nIngrese nuevo DNI: \n",auxD))
                {
                    printf("El DNI deber ser solo numeros: ");
                    break;
                }

                auxDNI=atoi(auxD);
                if(!validaRango(auxDNI,12000000,99999999))
                {
                    printf("El DNI ingresado se encuentra fuera de rango.\n");
                    break;
                }

                strcpy(arrayP[indicarResultadoBusqueda].nombre,auxNombre);
                arrayP[indicarResultadoBusqueda].edad=auxEdad;
                arrayP[indicarResultadoBusqueda].dni=atoi(auxD);
                break;
            case 4:
                system("cls");
                if(buscar(arrayP,Q,1)== -1)
                {
                    printf("\nPrimero debe ingrear usuarios!!\n");
                    break;
                }

                printf("\n - Listado Alfabetico- \n\n");
                int j;

                for(i=0;i<Q -1; i++)
                {
                    for(j=i;j<Q;j++)
                    {
                        if(arrayP[i].estado != 0)
                        {
                            if(stricmp(arrayP[i].nombre,arrayP[j].nombre)>0)
                            {
                                    arrayAuxiliar=arrayP[i];
                                    arrayP[i]=arrayP[j];
                                    arrayP[j]=arrayAuxiliar;
                            }
                        }
                    }

                }

                for(i=0;i<Q; i++)
                {
                    if(arrayP[i].estado == 1)
                    {
                        printf("Nombre: %s  DNI: %d\n",arrayP[i].nombre,arrayP[i].dni);
                    }
                }

                break;
            case 5:
                system("cls");
                if(buscar(arrayP,Q,1)== -1)
                {
                    printf("\nPrimero debe ingrear usuarios!!\n");
                    break;
                }

                if(hasta18 >= de19a35 && hasta18 >= mayorDe35)
                {
                    mayor = hasta18;
                }

                else if(de19a35 >= hasta18 && de19a35 >= mayorDe35)
                {
                    mayor = de19a35;
                }

                else
                {
                    mayor = mayorDe35;
                }


                for(i=mayor; i>0; i--){
                    if(i<10){
                        printf("%02d|",i);
                    }
                    else
                        printf("%02d|",i);

                    if(i<= hasta18){
                        printf("*");
                    }
                    if(i<= de19a35){
                        flag=1;
                        printf("\t*");
                    }
                    if(i<= mayorDe35){
                if(flag==0)
                    printf("\t\t*");
                if(flag==1)
                    printf("\t*");

                    }
                    printf("\n");
                }
                printf("--+-----------------");
                printf("\n  |<18\t19-35\t>35");
                printf("\n   %d\t%d\t%d", hasta18, de19a35, mayorDe35);
                printf("\n\n");






                break;
        }
   }

    return 0;
}