Jump to content
Sign in to follow this  
startuga

Programa C, (inserir, editar, excluir)

Recommended Posts

startuga

Boas,

 

Tenho o seguinte programa em C. Estou a tentar por a funcao(Editar) a funcionar, só que em vez de editar ela apaga-me os registos todos.

Alguém me pode ajudar, e dar uma vista de olhos no código?


 

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <locale.h>

#define MAX_NOME 100
#define MAX_ATLETAS 500
#define MAX_CORRIDAS 10
#define MAX_LOCAL 40

char menu_principal(void);
char menu_atletas(void);
char menu_corridas(void);
char menu_inscricoes(void);
char menu_estatisticas(void);

typedef struct estrutura_data{
    int ano;
    short mes;
    short dia;
} Data;

/* ATLETAS */
typedef enum sexo{masculino,feminino, }e_sexo;

typedef struct estrutura_atleta{
    int data_nascimento_atleta, altura_atleta, num_inscricao, peso_atleta, cartaoCidadao_atleta;
    char nome[MAX_NOME];
    e_sexo sexo_atleta;
}t_atleta;


int inserir_atleta(t_atleta v_atleta[],int num_atleta);
t_atleta ler_atleta(void);
void ler_string(char str_nome[], int max);
int ler_inteiro(void);
e_sexo ler_sexo();
Data ler_data();
void listar_todos_atletas(t_atleta v_atleta[],int num_atleta);
void listar_dados_atleta(t_atleta v_atleta[],int num_atleta);
int eliminar_atleta(t_atleta v_atleta[],int num_atleta);
void organiza(t_atleta v_atleta[], int num_atleta);
int alterar_dados(t_atleta v_atleta[] , int num_atleta);
/* ATLETAS */


/* BINARY FILE */
void guardar(t_atleta v_atleta[] , int num_atleta);
void ler_bin(t_atleta v_atleta[] , int num_atleta);
/* BINARY FILE */


/* CORRIDA */
typedef enum estado_corrida{aberta,fechada, }e_estado;

typedef struct estrutura_corrida{
    int distancia_corrida, hora_corrida, data_corrida, num_corrida, max_atletas_corrida, num_seq_corrida;
    char local_corrida[MAX_NOME];
    e_estado corrida_estado;
}t_corrida;


int inserir_corrida(t_corrida v_corrida[],int num_corrida);
t_corrida ler_corrida(void);
void ler_string(char str_nome[], int max);
int ler_inteiro(void);
e_estado ler_estado();
void listar_todas_corridas(t_corrida v_corrida[],int num_corrida);
void organiza_corrida(t_corrida v_corrida[], int num_corrida);

/*
Data ler_data();
void listar_dados_atleta(t_atleta v_atleta[],int num_atleta);
int eliminar_atleta(t_atleta v_atleta[],int num_atleta);
int alterar_dados(t_atleta v_atleta[] , int num_atleta);
CORRIDA */


/* BINARY FILE */
void guardar(t_atleta v_atleta[] , int num_atleta);
void ler_bin(t_atleta v_atleta[] , int num_atleta);

void guardar_corrida(t_corrida v_corrida[], int num_corrida);
void ler_bin_corrida(t_corrida v_corrida[], int num_corrida);
/* BINARY FILE */


int main(void)
{
    setlocale(LC_ALL,"");
    t_atleta v_atleta[MAX_ATLETAS];
    t_corrida v_corrida[MAX_CORRIDAS];
    int num_atleta=0, num_corrida=0;
    char opcao;

    do{
        opcao = menu_principal();
        switch (opcao){
        case 'A':
            system("CLS");
                do{
                    opcao = menu_atletas();
                    ler_bin(v_atleta , num_atleta);
                    switch (opcao){
                case 'A':
                        system("CLS");
                        num_atleta=inserir_atleta(v_atleta, num_atleta);
                        organiza(v_atleta, num_atleta);
                        guardar(v_atleta, num_atleta);
                        system("CLS");
                        break;
                case 'E':
                        system("CLS");
                        num_atleta=alterar_dados(v_atleta, num_atleta);
                        organiza(v_atleta, num_atleta);
                        guardar(v_atleta, num_atleta);
                        system("CLS");
                        break;
                case 'C':
                        system("CLS");
                        listar_dados_atleta(v_atleta, num_atleta);
                        break;
                case 'T':
                        system("CLS");
                        ler_bin(v_atleta , num_atleta);
                        break;
                case 'R':
                        system("CLS");
                        num_atleta=eliminar_atleta(v_atleta, num_atleta);
                        guardar(v_atleta, num_atleta);
                        break;
                case 'V':
                        system("CLS");
                        break;
                default:
                    system("CLS");
                    printf("Opcao invalida.\n");
                    break;
                    }
                }while (opcao != 'V');
            break;

        case 'C':
            system("CLS");
                do{
                    opcao = menu_corridas();
                    ler_bin_corrida(v_corrida , num_corrida);
                    opcao = menu_corridas();
                    switch (opcao){
                case 'N':
                        system("CLS");
                        num_corrida=inserir_corrida(v_corrida, num_corrida);
                        organiza(v_atleta, num_atleta);
                        guardar_corrida(v_corrida, num_corrida);
                        system("CLS");
                        break;
                case 'E':
                        system("CLS");
                        printf("Editar dados da corrida\n\n");
                        break;
                case 'C':
                        system("CLS");
                        printf("Consultar corrida\n\n");
                        break;
                case 'T':
                        system("CLS");
                        printf("Listar todos as corridas\n\n");
                        break;
                case 'R':
                        system("CLS");
                        printf("Remover corrida\n\n");
                        break;
                case 'V':
                        system("CLS");
                        break;
                default:
                    system("CLS");
                    printf("Opcao invalida.\n");
                    break;
                    }
                }while (opcao != 'V');
            break;

        case 'I':
            system("CLS");
                do{
                    opcao = menu_inscricoes();
                    switch (opcao){
                case 'I':
                        system("CLS");
                        printf("Inscrever atleta em corrida\n\n");
                        break;
                case 'E':
                        system("CLS");
                        printf("Registar tempo de atleta em corrida\n\n");
                        break;
                case 'C':
                        system("CLS");
                        printf("Consultar dados de inscricao de atleta\n\n");
                        break;
                case 'S':
                        system("CLS");
                        printf("Listar as inscricoes de uma corrida\n\n");
                        break;
                case 'T':
                        system("CLS");
                        printf("Listar todas as inscricoes\n\n");
                        break;
                case 'R':
                        system("CLS");
                        printf("Cancelar inscricao de atleta\n\n");
                        break;
                case 'V':
                        system("CLS");
                        break;
                default:
                    system("CLS");
                    printf("Opcao invalida.\n");
                    break;
                    }
                }while (opcao != 'V');
            break;

        case 'E':
            system("CLS");
            do{
                    opcao = menu_estatisticas();
                    switch (opcao){
                case 'P':
                        system("CLS");
                        printf("Mostrar Podio (top 3)\n\n");
                        break;
                case 'M':
                        system("CLS");
                        printf("Atleta com mais corridas\n\n");
                        break;
                case 'R':
                        system("CLS");
                        printf("Atleta mais rapido\n\n");
                        break;
                case 'L':
                        system("CLS");
                        printf("Atleta mais lento\n\n");
                        break;
                case 'V':
                        system("CLS");
                        break;
                default:
                    system("CLS");
                    printf("Opcao invalida.\n");
                    break;
                    }
                }while (opcao != 'V');
            break;

        case 'S':
            system("CLS");
            break;

        default:
            system("CLS");
            printf("Opcao invalida.\n");
            break;

        }
    }while (opcao != 'S');
    return 0;
}

int inserir_atleta(t_atleta v_atleta[],int num_atleta){
    int i=0,contador=0;
    t_atleta atletas;
    if(num_atleta<MAX_ATLETAS){
        do{
            atletas=ler_atleta();
            for(i=0;i<num_atleta;i++){
                if(atletas.num_inscricao==v_atleta[i].num_inscricao){
                    contador=1;
                    printf("Numero de inscricao em uso!");
                }
                else
                    contador=0;
            }
        }while(contador!=0);
        v_atleta[num_atleta]=atletas;
        num_atleta++;
    }
    return num_atleta;
}

t_atleta ler_atleta(void){
    t_atleta atletas;
    printf("\nInsira numero inscricao");
    atletas.num_inscricao=ler_inteiro();
    printf("\nInsira nome do atleta:");
    ler_string(atletas.nome, MAX_NOME);
    printf("\nInsira Data Nascimento:");
    atletas.data_nascimento_atleta=ler_inteiro();

    printf("\nInsira CC (Deve conter 8 digitos):");
        int contaDigitos, valor;
        do
        {
        contaDigitos=0;
        atletas.cartaoCidadao_atleta=ler_inteiro();
        valor =     atletas.cartaoCidadao_atleta;
        do
        {
           contaDigitos = contaDigitos + 1;
           valor = valor / 10;
       }
       while (valor != 0);
        }while(contaDigitos > 8 || contaDigitos <8);
    do{
        printf("\nInsira Peso (Min:50 & Max:130):");
        atletas.peso_atleta=ler_inteiro();
    }while (atletas.peso_atleta < 50 || atletas.peso_atleta > 130);
    do{
        printf("\nInsira Altura (Min:150 & Max:230):");
        atletas.altura_atleta=ler_inteiro();
    }while (atletas.altura_atleta < 150 || atletas.altura_atleta > 230);
    atletas.sexo_atleta=ler_sexo();
    return atletas;
}

int inserir_corrida(t_corrida v_corrida[],int num_corrida){
    int i=0,contador=0;
    t_corrida corridas;
    if(num_corrida<MAX_CORRIDAS){
        do{
            corridas=ler_corrida();
            for(i=0;i<num_corrida;i++){
                if(corridas.num_corrida==v_corrida[i].num_corrida){
                    contador=1;
                    printf("Numero de inscricao em uso!");
                }
                else
                    contador=0;
            }
        }while(contador!=0);
        v_corrida[num_corrida]=corridas;
        num_corrida++;
    }
    return num_corrida;
}

t_corrida ler_corrida(void){
    t_corrida corridas;
    printf("\nInsira numero corrida");
    corridas.num_corrida=ler_inteiro();
    printf("\nInsira nome do Local:");
    ler_string(corridas.local_corrida, MAX_LOCAL);
    printf("\nInsira Data Corrida:");
    corridas.data_corrida=ler_inteiro();
    printf("\nInsira Hora Corrida:");
    corridas.hora_corrida=ler_inteiro();
    printf("\nInsira Distancia Corrida:");
    corridas.distancia_corrida=ler_inteiro();
    printf("\nInsira Distancia Corrida:");
    corridas.distancia_corrida=ler_inteiro();
    printf("\nInsira Numero maximo atletas por Corrida:");
    corridas.max_atletas_corrida=ler_inteiro();


    corridas.corrida_estado=ler_estado();
    return corridas;
}

int alterar_dados(t_atleta v_atleta[],int num_atleta){

    char opcao;

    do{
        printf("Atleta:\n"
               "Numero: %d\n"
               "Nome: %s\n", v_atleta[num_atleta].num_inscricao, v_atleta[num_atleta].nome);
               printf("Qual das seguintes opcoes pretende editar?\n\n"
                      "[A]Nome\n"
                      "[B]Numero Cartao Cidadao\n"
                      "[C]Data Nascimento\n"
                      "[D]Sexo\n"
                      "[E]Altura\n"
                      "[F]Peso"
                      "[S]Sair"
                      "\n");
                      scanf("%c", &opcao);
                      fflush(stdin);
                      opcao = toupper(opcao);

                      switch(opcao)
                      {
                          case 'A' : printf("Nome:\n");
                          ler_string(v_atleta[num_atleta].nome, MAX_NOME);

                          break;

                      }
    }
    while (opcao != 'S');

return num_atleta;
}


void ler_string(char str_nome[], int max){
    fgets(str_nome, max, stdin);
}

int ler_inteiro(void){
    int valor, lidos=0;
    do{
        printf(" (insira numero inteiro positivo): ");
        lidos=scanf("%d",&valor);
        fflush(stdin);
        if(lidos!=1 || valor<=0)
            printf("\n\n\t\tValor invalido\n\n");
    }while(lidos!=1 || valor<=0);
    return valor;
}

e_estado ler_estado(){
    char opcao;
    do{
        printf("\Estado Corrida\n\n"
               "A- Aberta\n"
               "F- Fechada\n\n"
               "Escolha opcao: ");
        scanf("%c",&opcao);
        fflush(stdin);
        opcao=toupper(opcao);
        switch(opcao){
        case 'A':
            return aberta;
            break;
        case 'F':
            return fechada;
            break;
        default:
            printf("\n\n\t\tOpcao invalida\n");
            break;
        }
    }while(opcao!='A'||opcao!='F');
    return opcao;
}

e_sexo ler_sexo(){
    char opcao;
    do{
        printf("\nSexo\n\n"
               "M- Masculino\n"
               "F- Feminino\n\n"
               "Escolha opcao: ");
        scanf("%c",&opcao);
        fflush(stdin);
        opcao=toupper(opcao);
        switch(opcao){
        case 'M':
            return masculino;
            break;
        case 'F':
            return feminino;
            break;
        default:
            printf("\n\n\t\tOpcao invalida\n");
            break;
        }
    }while(opcao!='M'||opcao!='F');
    return opcao;
}

void listar_todos_atletas(t_atleta v_atleta[],int num_atleta){
    int i;
    if(num_atleta!=0){
        for(i=0;i<num_atleta;i++){
            printf("\n\nNumero Inscricao: %d\n"
                       "Nome: %s\n"
                       "Idade: %d\n"
                       "CC: %d\n"
                       "Peso: %d\n"
                       "Altura: %d\n", v_atleta[i].num_inscricao,v_atleta[i].nome,v_atleta[i].data_nascimento_atleta,v_atleta[i].cartaoCidadao_atleta,v_atleta[i].peso_atleta,v_atleta[i].altura_atleta);
                switch(v_atleta[i].sexo_atleta){
            case 0:
                printf("Masculino\n");
                break;
            case 1:
                printf("Feminino\n");
                break;
            default:
                printf("Desconhecido\n");
                break;
            }
        }
    }
    else
        printf("\nNao existem dados para mostrar\n");
}

void listar_todas_corridas(t_corrida v_corrida[],int num_corrida){
    int i;
    if(num_corrida!=0){
        for(i=0;i<num_corrida;i++){
            printf("\n\nNumero Corrida: %d\n"
                       "Local: %s\n"
                       "Data: %d\n"
                       "Hora: %d\n"
                       "Distancia: %d\n"
                       "Num Atletas: %d\n", v_corrida[i].num_corrida,v_corrida[i].local_corrida,v_corrida[i].data_corrida,v_corrida[i].hora_corrida,v_corrida[i].distancia_corrida,v_corrida[i].max_atletas_corrida);
                switch(v_corrida[i].corrida_estado){
            case 0:
                printf("Aberta\n");
                break;
            case 1:
                printf("Fechada\n");
                break;
            default:
                printf("Desconhecido\n");
                break;
            }
        }
    }
    else
        printf("\nNao existem dados para mostrar\n");
}

void listar_dados_atleta(t_atleta v_atleta[],int num_atleta){
    int i,valor,contador=0;
    if(num_atleta!=0){
        printf("\nInsira numero inscricao");
        valor=ler_inteiro();
        for(i=0;i<num_atleta;i++){
            if(valor==v_atleta[i].num_inscricao){
                contador++;
                printf("\n\nNumero Inscricao: %d\n"
                       "Nome: %s\n"
                       "Idade: %d\n"
                       "CC: %d\n"
                       "Peso: %d\n"
                       "Altura: %d\n", v_atleta[i].num_inscricao,v_atleta[i].nome,v_atleta[i].data_nascimento_atleta,v_atleta[i].cartaoCidadao_atleta,v_atleta[i].peso_atleta,v_atleta[i].altura_atleta);
                switch(v_atleta[i].sexo_atleta){
                case 0:
                    printf("Masculino\n");
                    break;
                case 1:
                    printf("Feminino\n");
                    break;
                default:
                    printf("Desconhecido\n");
                    break;
                }
            }
        }
          if(contador==0)
            printf("\n\n\t\tNao existem alunos com o numero de inscricao %d\n",valor);
    }
    else
        printf("\n\n\t\tNao existem dados para mostrar\n");
}

int eliminar_atleta(t_atleta v_atleta[],int num_atleta){
    int i,j,valor,contador=0;
    char opcao;
    if(num_atleta>=0){
        printf("\nInsira numero inscricao a eliminar");
        valor=ler_inteiro();
        for(i=0;i<num_atleta;i++){
            if(valor==v_atleta[i].num_inscricao){
                contador++;
                printf("\n\nNumero Inscricao: %d\n"
                       "Nome: %s\n"
                       "Idade: %d\n"
                       "CC: %d\n"
                       "Peso: %d\n"
                       "Altura: %d\n", v_atleta[i].num_inscricao,v_atleta[i].nome,v_atleta[i].data_nascimento_atleta,v_atleta[i].cartaoCidadao_atleta,v_atleta[i].peso_atleta,v_atleta[i].altura_atleta);
                switch(v_atleta[i].sexo_atleta){
                case 0:
                    printf("Masculino\n");
                    break;
                case 1:
                    printf("Feminino\n");
                    break;
                default:
                    printf("Desconhecido\n");
                    break;
                }
            }
        }
        if(contador==0){
            printf("\n\n\t\tNao existem alunos com o numero de inscricao %d\n",valor);
        }
        else{
            do{
                printf("\nTem a certeza que pretende eliminar este aluno (S/N): ");
                scanf("%c",&opcao);
                fflush(stdin);
                opcao=toupper(opcao);
                switch (opcao){
                case 'S':
                    for(i=0;i<num_atleta;i++){
                        if(valor==v_atleta[i].num_inscricao){
                            for(j=i;j<num_atleta;j++){
                                v_atleta[j]=v_atleta[j+1];
                            }
                        }
                    }
                    num_atleta--;
                    break;
                case 'N':
                    break;
                default:
                    printf("\n\n\t\tOpcao invalida\n");
                    break;
                }
            }while(opcao!='S'&&opcao!='N');
        }
    }
    else
        printf("\n\n\t\tNao existem dados para mostrar\n");
        return num_atleta;
}

/*ORGANIZA ATLETAS POR ORDEM*/
void organiza(t_atleta v_atleta[], int num_atleta){
    int i;
    t_atleta aux[1];
    for (i = 0; i < num_atleta - 1; i++){
        if (v_atleta[i].num_inscricao > v_atleta[num_atleta-1].num_inscricao){
         aux[0] = v_atleta[i];
         v_atleta[i] = v_atleta[num_atleta-1];
         v_atleta[num_atleta-1] = aux[0];
        }
    }
}
/*ORGANIZA ATLETAS POR ORDEM*/

/*ORGANIZA CORRIDAS POR ORDEM*/
void organiza_corrida(t_corrida v_corrida[], int num_corrida){
    int i;
    t_corrida aux[1];
    for (i = 0; i < num_corrida - 1; i++){
        if (v_corrida[i].num_seq_corrida > v_corrida[num_corrida-1].num_seq_corrida){
         aux[0] = v_corrida[i];
         v_corrida[i] = v_corrida[num_corrida-1];
         v_corrida[num_corrida-1] = aux[0];
        }
    }
}
/*ORGANIZA CORRIDAS POR ORDEM*/


/*FICHEIROS ATLETA*/
void guardar(t_atleta v_atleta[] , int num_atleta)
{
    FILE * f = fopen("atletas", "wb");
    if(f == NULL)
    {
        printf("Nao foi possivel abrir o ficheiro !\n");
    }
    else
    {
        fwrite(&num_atleta , sizeof(num_atleta) , 1 , f);
        fwrite(v_atleta , sizeof(t_atleta) , num_atleta , f);
        fclose(f);
    }
}

void ler_bin(t_atleta v_atleta[] , int num_atleta)
{
    int lidos;
    FILE * f = fopen("atletas", "rb");
    if(f == NULL)
    {
        printf("Nao foi possivel abrir o ficheiro !\n");
    }
    else
    {
        fread(&num_atleta , sizeof(num_atleta) , 1 ,f);
        lidos = fread(v_atleta, sizeof(t_atleta) , num_atleta , f);

        if(lidos == 1)
        {
            printf("lido : %d",lidos);
        }
        listar_todos_atletas(v_atleta , num_atleta);
        fclose(f);
}
    }

/*FICHEIROS ATLETA*/


/*FICHEIROS CORRIDA*/
void guardar_corrida(t_corrida v_corrida[] , int num_corrida)
{
    FILE * f = fopen("corridas", "wb");
    if(f == NULL)
    {
        printf("Nao foi possivel abrir o ficheiro !\n");
    }
    else
    {
        fwrite(&num_corrida , sizeof(num_corrida) , 1 , f);
        fwrite(v_corrida , sizeof(t_corrida) , num_corrida , f);
        fclose(f);
    }
}

void ler_bin_corrida(t_corrida v_corrida[] , int num_corrida)
{
    int lidos;
    FILE * f = fopen("corridas", "rb");
    if(f == NULL)
    {
        printf("Nao foi possivel abrir o ficheiro !\n");
    }
    else
    {
        fread(&num_corrida , sizeof(num_corrida) , 1 ,f);
        lidos = fread(v_corrida, sizeof(t_corrida) , num_corrida , f);

        if(lidos == 1)
        {
            printf("lido : %d",lidos);
        }
        listar_todas_corridas(v_corrida , num_corrida);
        fclose(f);
}
    }

/*FICHEIROS CORRIDA*/

/* ****************************** MENUS ****************************** */
char menu_principal(void) {
    char opcao;
    printf(":: MENU PRINCIPAL ::\n\n"
            "A - Gestão Atletas\n"
            "C - Gestão Corridas\n"
            "I - Gestão Inscrições\n"
            "E - Estatisticas \n"
            "\n"
            "S - Sair\n"
            "\n"
            "Selecione opção: ->");
    scanf("%c", &opcao);
    fflush(stdin);
    opcao = toupper (opcao);
    return opcao;
}

char menu_atletas(void) {
    char opcao;
    printf(":: GESTÃO DE ATLETAS ::\n\n"
            "A - Adicionar Atleta\n"
            "E - Editar dados de Atleta\n"
            "C - Consultar Atleta\n"
            "T - Listar todos os Atletas \n"
            "\n"
            "R - Remover Atleta\n"
            "\n"
            "V - Voltar ao Menu Principal\n"
            "Selecione opção: ->");
    scanf("%c", &opcao);
    fflush(stdin);
    opcao = toupper (opcao);
    return opcao;
}

char menu_corridas(void) {
    char opcao;
    printf(":: GESTÃO DE CORRIDAS ::\n\n"
            "N - Criar nova corrida\n"
            "E - Editar dados corrida\n"
            "C - Consultar corrida\n"
            "T - Listar todas as corridas\n"
            "\n"
            "R - Remover corrida\n"
            "\n"
            "V - Voltar ao Menu Principal\n"
            "Selecione opção: ->");
    scanf("%c", &opcao);
    fflush(stdin);
    opcao = toupper (opcao);
    return opcao;
}

char menu_inscricoes(void) {
    char opcao;
    printf(":: GESTÃO DE INSCRIÇÕES ::\n\n"
            "I - Inscrever atleta em corrida\n"
            "E - Registar tempo de atleta em corrida\n"
            "C - Consultar dados de inscricao de atleta\n"
            "S - Listar as inscrições de uma corrida\n"
            "T - Listar todas as inscrições\n"
            "\n"
            "R - Cancelar inscricao de atleta\n"
            "\n"
            "V - Voltar ao Menu Principal\n"
            "Selecione opção: ->");
    scanf("%c", &opcao);
    fflush(stdin);
    opcao = toupper (opcao);
    return opcao;
}

char menu_estatisticas(void) {
    char opcao;
    printf(":: ESTATISTICAS ::\n\n"
            "P - Mostrar Podio (top 3)\n"
            "M - Atleta com mais corridas\n"
            "R - Atleta mais rapido\n"
            "L - Atleta mais lento\n"
            "\n"
            "V - Voltar ao Menu Principal\n"
            "Selecione opção: ->");
    scanf("%c", &opcao);
    fflush(stdin);
    opcao = toupper (opcao);
    return opcao;
}
/* ****************************** MENUS ****************************** */

 

Share this post


Link to post
Share on other sites
HappyHippyHippo

como o código é extenso, só verifiquei a função altera_dados, no  entanto, nada parece de anormal. podes ser mais explícito nos passos que efectuas para ocorrer o que descreves como "apaga-me os registos todos" ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
startuga

Se eu adicionar um registo e depois o for editar.
Quando edito, seja qual for o campo. Quando volto a ir consultar ja la nao está informação nenhuma..

Share this post


Link to post
Share on other sites
HappyHippyHippo

eu não vejo isso, o que vejo é que quando escolhes para editar um atleta, não estás a dizer qual atleta queres editar


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.