Beispiel #1
0
/** \brief Imprime una serie de informes
 *          1- Imprime nomina ocmpleta
 *          2- solicita desde y hasta e imprime una sublista de empleados por legajo
 *          3 imprime listado por sueldo < o >
 *
 * \param pList ArrayList* array de donde se obtendran los datos
 * \return int
 *
 */
int informes(ArrayList* pList)
{
    int option;
    int from;
    int to;
    int returnAux=-1;
    int order;
    ArrayList* ArrayAux=al_newArrayList();
if(pList!=NULL && ArrayAux!=NULL )
{
    getInt(&option,"\n1-Imprimir Nomina\n2-Imprimir Sub-Nomina\n3-Imprimir listado por sueldo\n4-Salir\nOption:","Error Opcion no valida",1,4);

    switch(option)
    {
    case 1:
        PrintEmployees(pList);
        break;
    case 2:
        if(!getInt(&from,"Ingrese desde que legajo:","Error Legajo mayor a los empleados en nomina...\n",0,pList->size)&&
        getInt(&to,"Ingrese hasta que legajo:","Error Legajo mayor a los empleados en nomina...\n",0,pList->size))
        {
            ArrayAux=al_subList(pList,from-1,to);
            PrintEmployees(ArrayAux);
            al_deleteArrayList(ArrayAux);
        }


        break;
    case 3:
        if(!getInt(&order,"\n1-Mostrar Nomina por sueldo de mayor a menor\n2-Mostrar Nomina por sueldo de menor a mayor\nOption:","Error",1,2))
        {
            switch(order)
            {
            case 1:
                ArrayAux=pList->clone(pList);
                pList->sort(ArrayAux,compareEmployee,0);
                PrintEmployees(ArrayAux);
                pList->deleteArrayList(ArrayAux);
                break;
            case 2:
                ArrayAux=pList->clone(pList);
                pList->sort(ArrayAux,compareEmployee,1);
                PrintEmployees(ArrayAux);
                pList->deleteArrayList(ArrayAux);
                break;

            }
        }
        break;
    case 4:
        break;
    }
    returnAux=0;
}
return returnAux;
}
Beispiel #2
0
void listarDesdeHasta(ArrayList* lista)
{
    int desde, hasta, auxInt;
    ArrayList* auxLista;
    if(lista !=NULL)
    {
        do
        {
            auxInt = getInt(&desde, "Ingrese desde cuando desea listar: ", "ERROR: numero no valido", -1, lista->len(lista));
        }while(auxInt!= 0);

        do
        {
            auxInt = getInt(&hasta, "Ingrese hasta cuando desea lista: ", "ERROR numero no valido", desde, lista->len(lista));
        }while(auxInt!=0);
        auxLista = al_subList(lista, desde, hasta);
        printArrayListEmployee(auxLista);
        free(auxLista);
    }
}
Beispiel #3
0
void informar(ArrayList* lista,ArrayList* listaDirec)
{
    int opcion;
    printf("1-Top 3 Mejores Peliculas\n");
    printf("2-Top 5 Peores Peliculas\n");
    scanf("%d",&opcion);
    switch(opcion)
    {
        case 1:
            if(lista->size>3)
            {
                int i,j;
                int largo;
                ArrayList* listaOrdenada;
                ArrayList* top3;
                listaOrdenada=al_clone(lista);
                al_sort(listaOrdenada,compareFilms,0);
                ePelicula* pAuxP;
                eDirector* pAuxD;
                top3=al_subList(listaOrdenada,0,2);
                largo=al_len(top3);
                for(i=0; i<largo; i++)
                {
                    pAuxP=al_get(top3,i);
                    for(j=0; j<listaDirec->size; j++)
                    {
                        pAuxD=al_get(listaDirec,j);
                        if(pAuxP->director==pAuxD->codDirec)
                        {
                            break;
                        }
                    }
                    printf("----------[%d]----------",(i+1));
                    printf("\nTitulo de la pelicula: %s\nDirector de la pelicula: %s\nNacionalidad de la pelicula: %s\nPuntaje: %d/100\n",pAuxP->titulo,pAuxD->nombre,pAuxP->nacionalidad,pAuxP->puntaje);
                }
                al_deleteArrayList(listaOrdenada);
                al_deleteArrayList(top3);
            }
            else
            {
                showMessage("IMPOSIBLE REALIZAR TOP SIN LA CANTIDAD CORRECTA DE PELICULAS");
            }
            break;
        case 2:
            if(lista->size>5)
            {
                int i,j;
                int largo;
                ArrayList* listaOrdenada;
                ArrayList* top5;
                listaOrdenada=al_clone(lista);
                al_sort(listaOrdenada,compareFilms,1);
                ePelicula* pAuxP;
                eDirector* pAuxD;
                top5=al_subList(listaOrdenada,0,4);
                largo=al_len(top5);
                for(i=0;i<largo;i++)
                {
                    pAuxP=al_get(top5,i);
                    for(j=0;j<listaDirec->size;j++)
                    {
                        pAuxD=al_get(listaDirec,j);
                        if(pAuxP->director==pAuxD->codDirec)
                        {
                            break;
                        }
                    }
                    printf("----------[%d]----------",(i+1));
                    printf("\nTitulo de la pelicula: %s\nDirector de la pelicula: %s\nNacionalidad de la pelicula: %s\nPuntaje: %d/100\n",pAuxP->titulo,pAuxD->nombre,pAuxP->nacionalidad,pAuxP->puntaje);
                }
                al_deleteArrayList(listaOrdenada);
                al_deleteArrayList(top5);
            }
            else
            {
                showMessage("IMPOSIBLE REALIZAR TOP SIN LA CANTIDAD CORRECTA DE PELICULAS");
            }
            break;
    }


}