/** \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; }
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); } }
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; } }