1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

programação C (programa para lista)

Discussão em 'Programação' iniciada por sapo_tapada, 19 de Fevereiro de 2008. (Respostas: 5; Visualizações: 4285)

  1. boas.... grandes mestres precisava da vossa ajuda para fazer um trabalho em programação C, tenho que fazer para passar numa cadeira, e de programação não percebo muito, se me poderem ajudar agradecia imenso e também o programa pode dar jeito a muita gente e a mim principalmente... os objectivos do trabalho são: fazer uma lista de filmes, e quando o filme ja se encontra na lista ele indica se está emprestado ou não... e tenho que criar um menu com as seguintes opções: guardar registo (nome do filme), verificar se está disponivel e ver lista completa...thank's
     
  2. walterwolf

    walterwolf Power Member

    mas o que? queres que façamos por ti?
    Jovem, isso não funciona assim. apresenta alguma coisa feita ou alguma duvida e tentaremos ajudar-te.
    aqui não fazemos trabalhos pros outros, mas sim ajudamos a fazer.

    cumpts
     
  3. Reptil

    Reptil Power Member

    Começas por fazer ums struct Filmes,depois uma lista desse tipo.O resto parece me bastante simples.
     
  4. tenham calma eu tb vou postar aki a minha programaçaõ touso a faxer os ultimos tokes... o k eu keria e meter aki as minhas duvidas e k voces m dexem umas dicas de como comecar...mas amanha ja meto aki o k fix e depois faxo as perguntas...
     
  5. MadOnion

    MadOnion Folding Member

    Primeiro, tenta melhorar a tua escrita, todos fazemos um esforço para escrever de igual modo.
    Segundo, a malta está cá para ajudar/encaminhar, mas não para resolver problemas.
    Terceiro, usa a solução do Reptil e crias uma Lista(*) de filmes . Se não tiveres noções de pointers nem de structs, convém leres um bocadinho, porque vai ajudar-te bastante.


    LinkedList (*) - Aqui e Aqui
     
  6. trick

    #include <stdio.h>
    struct filme {
    char ocup;
    };
    int n=1000000 //numero maximo de filmes
    void inicializa (p) //:::::::::::::::::::::::::::::::::::::::::::::::::::::


    struct filme *p;
    {
    int i;
    for (i=0, i<n,i++)
    (p++) -> ocup='0';
    }


    int menu() //:::::::::::::::::::::::::::::::::::::::::::::::::::::
    {
    int i;

    printf ("\n #---------------------------------------#");
    printf ("\n | Inserir Filme______________________(1)|");
    printf ("\n | Apagar Registo_____________________(2)|");
    printf ("\n | Listar Filmes______________________(3)|");
    printf ("\n | Ficheiros: |");
    printf ("\n | Gravar em fiCheiro_________________(4)|");
    printf ("\n | Ler Ficheiro_______________________(5)|");
    printf ("\n | Gravar só os Reg. Ocupados_________(6)|");
    printf ("\n | Ler só os Reg. Ocupados____________(7)|");
    printf ("\n | Sair_______________________________(8)|");
    printf ("\n #---------------------------------------#\n");
    do {

    printf ("Qual a sua opcao?");
    scanf ("d",&i);
    }

    while (i<0 || i>12);
    return i;
    }


    void inserir(p) //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

    struct filme *p;

    {
    int i;
    for (i=0; i<n && p->ocup=='1'; i++)
    p++;
    if (i<n)
    }

    printf ("\n\tQual o Título do filme?");
    scanf ("%s", p->titulo);
    print ("\tQual o genero?");
    scanf ("%s", p->genero);
    p->ocup='1';
    }
    else
    printf ("\n\t Lista Completa");
    }


    void apagar(p) //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    struct filme *p;
    {
    int i;
    printf ("\n Qual o n: do registo do filme a apagar?");
    scanf ("%d",&i);
    if (i>0 && i<=n)
    (p+i-1) -> ocup='0';
    }


    void mostrar(p) //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

    strcut filme *p;
    {
    int i;
    for (i=0;i<0;i++)
    }
    if (p->ocup=='1')
    printf ("\n\t\t Registo n: %d \n\t\t Titulo: %s \n\t\t Qual o genero: %s",i+1,p->titulo,p->genero);
    else
    printf ("\nRegisto n: %d (livre)", i+1);
    p++;
    }
    }

    void escreveficheiro1(p) //::::::::::::::::::::::::::::::::::::::::::::::::::::

    struct filme *p
    {
    FILE *fic;
    int i;
    char *nome="lista1.dat";
    if ((fic= fopen(nome,"w"))==NULL)
    fprintf (stderr, "impossivel abrir ficheiro.\n");
    else
    {
    fread (p,sizeof(*p),n,fic);
    fclose(fic);
    }
    }

    void escreverficheiro2(p) //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

    struct filme *p;
    {
    FILE *fic;
    int i;
    char *nome="lista2.dat";
    if ((fic= fopen(nome,"w"))==NULL)
    fprintf(stderr, "impossivel abrir o ficheiro. \n");
    else
    {
    for (i=0;i<n;i++)
    }
    fwrite(p,sizeof(*p),1,fic);
    p++;
    }
    fclose (fic);
    }
    }

    void leficheiro2(p) //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

    struct filme *p;
    {
    FILE *fic;
    int i;
    char *nome="lista2.dat";
    if ((fic= fopen (nome "r"))==NULL)
    fprintf(stderr,"impossivel abrir o ficheiro. \n");
    else
    {
    for (i=0;i<n;i++)
    {
    fread(p,sizeof(*p,1,fic);
    p++;
    }
    fclose(fic);
    }
    }

    void escreveficheiro3(p) //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    struct filme *p;
    {
    FILE *fic;
    int i;
    char *nome="lista3.dat";
    if (fic= fopen(nome,"r"))==NULL)
    fprintf (stderr, "Impossivel abrir ficheiro.\n");
    else
    {
    while (!feof(fic))
    {
    fread(p,sizeof(*p),1,fic);
    p++;
    fclose (fic);
    }
    }

    int main() //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    {
    struct filme filmes [n];
    struct filme copia [n];
    int op;
    FILE *fic;
    inicializa (filmes);
    inicializa (copia);
    do
    {

    op=menu();
    switch (op)
    {
    case 1: inserir (filmes); break;
    case 2: apagar (filmes); break;
    case 3: mostrar (livros); break;
    case 4: escreverficheiro1(filmes); break;
    case 5: leficheiro (copia);
    mostrar (copia);
    break;
    case 6: escreveficheiro2 (filmes); break;
    case 7: leficheiro2(copia);
    mostrar (copia);
    break;
    case 8: escreveficheiro3(filmes); break;
    case 9: leficheiro3(copia);
    mostrar(copia);
    break;
    case 10: exit(0);
    }
    }
    while (1);
    printf("\n\n");
    getc(stdin);
    return 0;
    }




    grandes mestres dêem uma vista de olhos e digam qualquer coisa....abraço e obrigado
     

Partilhar esta Página