Exemple #1
0
void listar(ArrayList* lista,ArrayList* listaDirec)
{
    int i,j;
    ArrayList* listaOrdenada;
    listaOrdenada=al_clone(lista);
    al_sort(listaOrdenada,compareFilms,0);
    ePelicula* pAuxP;
    eDirector* pAuxD;
    for(i=0; i<lista->size; i++)
    {
        pAuxP=al_get(listaOrdenada,i);
        for(j=0; j<listaDirec->size; j++)
        {
            pAuxD=al_get(listaDirec,j);
            if(pAuxP->director==pAuxD->codDirec)
            {
                break;
            }
        }
        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);
}
Exemple #2
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;
    }


}
Exemple #3
0
int main()
{
    ArrayList* listPeliculas, *listDirectores,*auxPeliculas, *auxDirectores;
    ArrayList *backupDirectores = NULL;
    ArrayList *backupPeliculas = NULL;
    int auxInt;
    char opcion;
    listPeliculas = al_newArrayList();
    listDirectores = al_newArrayList();

    //readMockDirector(listDirectores);
    cargarDatos(listPeliculas, "peliculas.dat", 1);
    cargarDatos(listDirectores, "directores.dat", 2);

    //readPelicula(listPeliculas);
    if(listPeliculas != NULL && listDirectores != NULL)
    {
        do
        {
            opcion = mostrarMenu("1.ALTAS PELICULAS\n2.MODIFICAR PELICULA\n3.BAJA PELICULA\n4.NUEVO DIRECTOR\n5.ELIMINAR DIRECTOR\n6.RECUPERAR\n7.INFORMAR\n8.LISTAR\n9.SALIR\n", '1', '9');

            switch(opcion)
            {
                case '1':
                    auxInt = agregarPelicula(listPeliculas, listDirectores);
                    if(auxInt == 0)
                    {
                        printf("Pelicula agregada\n");
                    }
                    PAUSE;
                    CLEAR;
                    break;
                case '2':
                    auxInt = modificarPelicula(listPeliculas, listDirectores);
                    if(auxInt == 0)
                    {
                        printf("Pelicula modificada\n");
                    }
                    PAUSE;
                    CLEAR;
                    break;
                case '3':
                    backupPeliculas = borrarPelicula(listPeliculas);

                    PAUSE;
                    CLEAR;
                    break;
                case '4':
                    auxInt = agregarDirector(listDirectores);
                    if(auxInt == 0)
                    {
                        printf("Director cargado!\n");
                    }
                    PAUSE;
                    CLEAR;
                    break;
                case '5':
                    backupDirectores = borrarDirector(listDirectores);
                    if(backupDirectores != NULL)
                    {
                        printf("Director borrado\n");
                    }
                    PAUSE;
                    CLEAR;
                    break;
                case '6':
                    opcion = mostrarMenu("1.RECUPERAR PELICULAS\n2.RECUPERAR DIRECTORES\n", '1', '2');
                    switch(opcion)
                    {
                    case '1':
                        auxPeliculas = recuperarDatos(listPeliculas, backupPeliculas);
                        if(auxPeliculas == NULL)
                        {
                            printf("No se ha podido recuperar peliculas!\n");
                        }
                        else
                        {
                            printf("Peliculas recuperadas\n");
                            listPeliculas = al_clone(auxPeliculas);
                            auxPeliculas->deleteArrayList(auxPeliculas);
                        }
                        break;
                    case '2':

                        auxDirectores = recuperarDatos(listDirectores, backupDirectores);
                        if(auxDirectores == NULL)
                        {
                            printf("No se ha podido recuperar los directores\n");
                        }
                        else
                        {
                            printf("Directores recuperados\n");
                            listDirectores = al_clone(auxDirectores);
                            auxDirectores->deleteArrayList(auxDirectores);
                        }
                        break;
                    }
                    PAUSE;
                    CLEAR;
                    break;
                case '7':
                    auxInt =informar(listPeliculas, listDirectores);
                    if(auxInt == -1)
                    {
                        printf("No se ha podido informar\n");
                    }
                    PAUSE;
                    CLEAR;
                    break;
                case '8':
                    auxInt = listar(listPeliculas, listDirectores);
                    PAUSE;
                    CLEAR;
                    break;
                case '9':

                    auxInt = guardarDatos(listPeliculas, "peliculas.dat", 1);
                    if(auxInt != 0)
                        printf("Hubo un error al guardar las peliculas");

                    auxInt = guardarDatos(listDirectores, "directores.dat", 2);
                    if(auxInt != 0)
                        printf("Hubo un error al guardar los directores");

                    listDirectores->deleteArrayList(listDirectores);
                    listPeliculas->deleteArrayList(listPeliculas);
                    break;
                default:
                    break;
            }
        }while(opcion!='9');
    }
    return 0;
}