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

URGENTE Programacão em C

Discussão em 'Programação' iniciada por dregadas, 28 de Maio de 2008. (Respostas: 0; Visualizações: 495)

  1. Pretendo fazer um jogo de football numa tela do MS-DOS:
    ja tenho parte do codigo escrito que é a inserção, visulização, edição, com um problema na gravação do ficheiro "equipa.dat" (so grava os segundos elementos introduzidos) e na implementação de um ID para cada equipa para ser mais facil a procura e o relacionamento dos jogos.
    A outra coisa que tenho de implementar que é uma tabela classificativa feita com uma matriz de tantas equipas por 7 (Jogos, vitorias, pontos etc) deem-me alguma ideia ou algum programa que ja tenha algo do genero.
    Aguardo uma breve resposta.


    Codigo:

    Código:
    main.c:
    #include <stdio.h>
    #include <stdlib.h>
    #include "engine.h"
    FILE *fp;
    int main()
    {
     
    int opcao,tamanho;
     
    if((fp=fopen("equipa.dat","a+b"))==NULL)printf("\n\tErro na abertura do ficheiro\n"); 
    {
    printf("ficheiro: %d\n ", ftell(fp));
    do {
     
    printf("Escolha uma opcao:\n\n");
    printf ("1-Introduzir nova equipa\n");
    printf ("2-Consultar dados das equipas\n");
    printf ("3-Alterar dados das equipas\n");
    printf ("4-Eliminar dados das equipas\n"); 
    printf ("5-Voltar ao menu\n");
    printf("\n");
    scanf("%d",&opcao);
    getchar();
    switch (opcao)
    {
    case 1:
    acrescentar();
    break;
     
    case 2:
    mostrar_futebol();
    break;
    case 3:
     
    break;
     
    case 4:
     
    break;
     
    case 5:
    break;
     
    default:
    printf ("Escolha invalida\n\n\n\n");
    }
    } while (opcao!=5);
    fclose(fp);
    }
    }
     
    engine.c:
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <ctype.h>
    #include <string.h>
    #include "estrutura.h"
    estrutura();
    void acrescentar()
    { 
    printf ("\n Preencha as seguintes informacoes relativas a equipa\n");
    printf ("Nome da Equipa:\n");
    gets (r.equipa);
    printf ("Treinador:\n");
    gets (r.treinador);
    printf ("Estadio:\n");
    gets (r.estadio);
     
    fseek(fp,-1,SEEK_END);
    if (fwrite(&r,sizeof(struct futebol),1,fp)!=0)
    printf ("Erro ao gravar.\n\n\n");
    else
    printf ("Gravado com sucesso\n");
    }
    void mostrar_futebol()
    {
    printf (" Nome:%s\n Treinador:%s\n Estadio:%s\n\n\n",r.equipa, r.treinador,r.estadio);
    getchar();
    }
     
    void alterar()
    { 
    int cod;
    printf("Qual o Nº da Equipa: ");
    scanf("%d", & cod);fflush(stdin);
    if (cod!=r.codigo-1)
    {
    printf ("Dados actuais:\n");
    mostrar_futebol(r);
    printf("\n\nNovos Dados\n\n");
    acrescentar(&r);
    }
    if (cod==r.codigo-1)
    printf ("Registo inexistente!!!"); 
    }
     
    void ler()
    {
    int i;
    printf ("Qual o codigo da equipa?\n");
    scanf ("%d",&i);
    fseek(fp,sizeof(struct futebol)*(i-1),SEEK_SET);
    fread(&r,sizeof(struct futebol),1,fp);
    if (r.codigo-1==i-1)
    mostrar_futebol();
    else printf ("Codigo nao atribuido!!!\n");
    getchar();
    }
     
    void apagar()
    { 
    long int cod;
    char resp;
    printf("Qual o Nº da equipa: ");
    scanf("%d",&cod);
    if (cod-1!=r.codigo-1)
    {
    printf("Registo Inexistente ou Problemas no posicionamento!!!");
    return;
    }
    if (cod-1==r.codigo-1)
    {
    printf("\n\nDados Actuais\n\n");
    mostrar_futebol(r);
    printf("\n\nApagar o Registo (s/n)???: "); 
    resp = getchar();
    fflush(stdin);
    if (toupper(resp)!='s');
    printf("Erro ao apagar\n");
     
    // Recuar um Registo no Ficheiro
    fseek(fp,-(long)sizeof(struct futebol),SEEK_CUR);
    // Reescrever o Registo;
    fwrite(&r,sizeof(struct futebol),1,fp);
    fflush(fp); /* Despejar os Dados no Disco Rigido */
    }
    }
     
    estrutura.h:
    typedef struct futebol
    {
    char equipa [20], treinador[20], estadio[20];
    int codigo; 
     
    }fut;
    fut r;
     
    FILE*fp;
     
    Última edição pelo moderador: 29 de Maio de 2008

Partilhar esta Página