jcfcid Posted January 4, 2010 at 09:01 PM Report Share #304118 Posted January 4, 2010 at 09:01 PM Boas a todos. Este é o meu primeiro post. Tenho um trabalho de Programação neste primeiro semestre. Estou com bastantes dificuldades. Já fiz uma parte do programa, falta-me o resto. Deixo-vos o que fiz, e o PDF com o enunciado e se me puderem dar uma maozinha com o resto, agradeço imenso. http://www.4shared.com/file/188347366/7028b1bc/Projecto_De_Programacao.html Se ajudar, deixo aqui algumas coisas nas quais preciso de ajuda: - Inserir pilotos numa etapa; - Verificar se piloto ja existe - Verificar se piloto esta inscrito em etapas - verificar de o piloto estiver inscrito em etapa nao permite eliminar ou se existir em etapas actualizar na etapa se ja tiver efectuado etapa nao pode permitir eliminar) - Validar etapas Obrigado a todos, J EDIT: Assunto modificado Link to comment Share on other sites More sharing options...
_deXter Posted January 4, 2010 at 09:27 PM Report Share #304123 Posted January 4, 2010 at 09:27 PM Dúvidas concretas? Link to comment Share on other sites More sharing options...
jcfcid Posted January 4, 2010 at 09:33 PM Author Report Share #304125 Posted January 4, 2010 at 09:33 PM os topicos que postei sao duvidas. ja tentei e nao consegui por a funcionar 😄 por isso estou a pedir ajuda 😄 Link to comment Share on other sites More sharing options...
bruno1234 Posted January 4, 2010 at 09:45 PM Report Share #304127 Posted January 4, 2010 at 09:45 PM Mostra o código que fizeste, assim é mais fácil ver o q não está bem. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to comment Share on other sites More sharing options...
jcfcid Posted January 4, 2010 at 09:50 PM Author Report Share #304129 Posted January 4, 2010 at 09:50 PM esta no link que postei em cima. =) um rar com o enunciado, e com o codigo Link to comment Share on other sites More sharing options...
TheDark Posted January 5, 2010 at 01:29 AM Report Share #304151 Posted January 5, 2010 at 01:29 AM Se postares o código, tens mais hipóteses de obter uma resposta do que se obrigares a que se tenham que sacar ficheiros, abri-los, etc e tal... Desaparecido. Link to comment Share on other sites More sharing options...
IceBrain Posted January 5, 2010 at 02:05 AM Report Share #304152 Posted January 5, 2010 at 02:05 AM Vá, eu sou simpático e faço o trabalho (EDIT: de postar o teu código) 😄 Btw, não partilhes executáveis; quem te poder ajudar também sabe compilar o código 😄 #include <stdio.h> #define MAX_PILOTOS 30 # define NAO_ENCONTROU -1 typedef struct { char nome[50]; int numaviao; int idade; } TPILOTOS; typedef struct { int dia; int mes; int ano; }TDATA; typedef struct { char designacao[500]; int ordemetapa; TDATA dataetapa; int numaviao[20]; int num_inscritos; int pilotosinsc[20]; }TETAPAS; char menu(); char menup(); char menue(); char menur(); char menut(); void inserir_pilotos(TPILOTOS pilotos[],int *num_pilotos); void lerpiloto(TPILOTOS *piloto); void gerirpilotos(TPILOTOS pilotos[], int *num_pilotos); void consultar_piloto(TPILOTOS *pilotos); void eliminar_pilotos(TPILOTOS pilotos[],int *num_piloto,int pos_eliminar); int pesquisa_pilotos(TPILOTOS pilotos[],int numaviao,int num); void listar_pilotos(TPILOTOS pilotos[],int *num_pilotos); void inserir_etapas(TETAPAS etapas[],int *num_etapas); void leretapa(TETAPAS *etapas); void gerir_etapas(TETAPAS etapas[], int *num_etapas,int *num_pilotos); void consultar_etapa(TETAPAS *etapas,int num_pilotos,TPILOTOS pilotos[]); int pesquisa_etapas(TETAPAS etapas[],int ordemetapa,int num); void listar_etapas(TETAPAS etapas[],int *num_etapas,int num_pilotos,TPILOTOS pilotos[]); void eliminar_etapas(TETAPAS etapas[],int *num_etapas,int pos_eliminar); main() { int num_pilotos=0; int num_etapas=0; TPILOTOS pilotos[MAX_PILOTOS]; TETAPAS etapas[100]; char op; do { op=menu(num_pilotos,num_etapas); switch(op) { case 'P': gerirpilotos(pilotos,&num_pilotos); break; case 'E': gerir_etapas(etapas,&num_etapas,&num_pilotos); break; case 'R': op=menur(); switch(op) { case 'R': break; case 'A': break; case 'O': break; case 'C': break; case 'V': op=menu(); break; } break; case 'T': op=menut(); switch(op) { case 'R': break; case 'A': break; case 'O': break; case 'C': break; case 'V': op=menu(); break; } break; case 'G': break; case 'S': break; } }while(op!='S'); getch(); } char menu(num_pilotos,num_etapas) { char op; do{ system("CLS");//limpa ecra printf("\t\t\tESTG Air Race 2010"); printf("\n\nPilotos Inscritos: %d ", num_pilotos); printf("\t\t\tEtapas Realizadas: %d ", num_etapas); printf("\n\nP - (P)ilotos"); printf("\nE - (E)tapas"); printf("\nR - (R)esultados"); printf("\nT - Es(T)atisticas"); printf("\nG - (G)ravar"); printf("\nS - (S)air\n"); fflush(stdin); op=getch(); op=toupper(op);//converte as letras if(op!='P' && op!='E' && op!='R' && op!='T' && op!='G' && op!='S'){//verifica opcao e valida printf("Opcao invalida"); getch(); } }while(op!='P' && op!='E' && op!='R' && op!='T' && op!='G' && op!='S'); return op; } char menup(int num_pilotos) { char op; do{ system("CLS");//limpa o ecra printf("Pilotos Inscritos: %d",num_pilotos); printf("\n\n(I)nserir Piloto"); printf("\n(E)liminar Piloto"); printf("\n(C)onsultar Dados do Piloto"); printf("\n(L)istar Todos os Pilotos"); printf("\n\n(V)oltar ao Menu Principal\n"); fflush(stdin); op=getch(); op=toupper(op); if(op!='I' && op!='E' && op!='C' && op!='L' && op!='V'){ printf("Opcao invalida"); getch(); } }while(op!='I' && op!='E' && op!='C' && op!='L' && op!='V'); return op; } char menue(int num_etapas) { char op; do{ system("CLS");//lipma o ecra printf("Epatas Inseridas: %d",num_etapas); printf("\n\n(I)nserir Etapa"); printf("\n(E)ditar Etapa"); printf("\nI(N)screver Piloto em Etapa"); printf("\n(D)ados da Etapa"); printf("\n(L)istar inscricoes de Piloto"); printf("\n\n(V)oltar ao Menu Principal\n"); fflush(stdin); op=getch(); op=toupper(op); if(op!='I' && op!='E' && op!='N' && op!='D' && op!='L' && op!='V'){ printf("Opcao invalida"); getch(); } }while(op!='I' && op!='E' && op!='N' && op!='D' && op!='L' && op!='V'); return op; } char menur() { char op; do{ system("CLS"); printf("Etapa corrente: "); printf("\n\n(R)esultados da Etapa Corrente"); printf("\n(A)lterar Resultados de uma Etapa"); printf("\nc(O)nsultar Resultados de uma Etapa"); printf("\n(C)lassificacao Geral"); printf("\n(V)oltar ao Menu Principal\n"); fflush(stdin); op=getch(); op=toupper(op); if(op!='R' && op!='A' && op!='O' && op!='C' && op!='V'){ printf("Opcao invalida"); getch(); } }while(op!='R' && op!='A' && op!='O' && op!='C' && op!='V'); return op; } char menut() { char op; do{ system("CLS"); printf("(R)esultados do Campeonato"); printf("\n(H)istorico por Piloto"); printf("\n(D)ados Estatisticos"); printf("\n(V)oltar ao Menu Principal\n"); fflush(stdin); op=getch(); op=toupper(op); if(op!='R' && op!='H' && op!='D' && op!='V'){ printf("Opcao invalida"); getch(); } }while(op!='R' && op!='H' && op!='D' && op!='V'); return op; } void gerirpilotos(TPILOTOS pilotos[], int *num_pilotos) { char op; int num,pos; do{ op=menup(*num_pilotos); switch(op) { case 'I'://inserir pilotos system("CLS");//limpa ecra inserir_pilotos(pilotos,num_pilotos); printf(" o piloto foi inserido com sucesso"); getch(); break; case 'E': system("CLS");//limpa ecra listar_pilotos(pilotos,num_pilotos); printf("Qual o Piloto que quer Eliminar?"); scanf("%d",&num); pos=pesquisa_pilotos(pilotos,*num_pilotos,num); if(pos==-1) printf("ERRO: Piloto nao existe"); else eliminar_pilotos(pilotos,num_pilotos,pos); printf("Eliminado com sucesso"); getch(); break; case 'C'://consultar piloto system("CLS");//limpa ecra printf("Numero de Aviao: "); scanf("%d",&num); pos=pesquisa_pilotos(pilotos,*num_pilotos,num); if(pos==-1) printf("ERRO: Piloto nao existe"); else consultar_piloto(&pilotos[pos]); getch(); break; case 'L'://listar todos os pilotos system("CLS");//limpa ecra if (num_pilotos <= 0) printf("nao existem pilotos para listar"); else listar_pilotos(pilotos,num_pilotos); getch(); break; } }while(op!='V'); } void inserir_pilotos(TPILOTOS pilotos[],int *num_pilotos) { TPILOTOS aux;//pr guardar os dados todos do piloto lerpiloto(&aux); pilotos[*num_pilotos]=aux; (*num_pilotos)++; } void lerpiloto(TPILOTOS *pilotos) { printf("Nome: \n"); gets(pilotos->nome); //e ->pq tamos trabalhar numa referencia//gets recebe o vl char o nosso string printf("Numero Aviao: \n"); scanf("%d",&pilotos->numaviao); printf("Idade: \n"); scanf("%d", &pilotos->idade); } void consultar_piloto(TPILOTOS *piloto) { printf("Nome: %s ",piloto->nome); printf("Numero de Aviao: %d ",piloto->numaviao); printf("Idade: %d",piloto->idade); } void eliminar_pilotos(TPILOTOS pilotos[],int *num_pilotos,int pos_eliminar) { pilotos[pos_eliminar]=pilotos[(*num_pilotos)-1]; (*num_pilotos)--; } int pesquisa_pilotos(TPILOTOS pilotos[],int numaviao,int num) { int i; for(i=0;i<numaviao;i++)//serve para recorer todo o vector { if(pilotos[i].numaviao==num) return i; } return NAO_ENCONTROU; } void listar_pilotos(TPILOTOS pilotos[],int *num_pilotos) { int i; for(i=0;i<*num_pilotos;i++) { consultar_piloto(&pilotos[i]); printf("\n----------------------------\n"); } getch(); } void gerir_etapas(TETAPAS etapas[], int *num_etapas,int *num_pilotos) { char op; int num,pos; int numaviao,posicao,i; TPILOTOS *pilotos; do{ op=menue(*num_etapas); switch(op) { case 'I'://inserir etapas system("CLS");//limpa ecra inserir_etapas(etapas,num_etapas); printf("a etapa foi inserido com sucesso"); getch(); break; case 'E': system("CLS");//limpa ecra listar_etapas(etapas,num_etapas,*num_pilotos,pilotos); printf("Qual o a Etapa que quer Editar?"); scanf("%d",&num); pos=pesquisa_etapas(etapas,*num_etapas,num); if(pos==-1) printf("ERRO: Etapa nao existe"); else { eliminar_etapas(etapas,num_etapas,pos); inserir_etapas(etapas,num_etapas); printf("a etapa foi editada com sucesso"); getch(); } break; case 'N': system("CLS");//limpa ecra printf("Qual a etapa onde quer inserir o Piloto? "); scanf("%d",&num); for(i=0;i<*num_etapas;i++) { if(num==etapas[i].ordemetapa) { posicao=i; } else { posicao=-1; } } pos=pesquisa_etapas(etapas,*num_etapas,num); if(pos==-1) printf("ERRO: Etapa nao existe"); else { printf("Qual o numero do aviao do piloto que quer inserir?? "); scanf("%d", &numaviao); pos=pesquisa_pilotos(pilotos,*num_pilotos,num); if(pos==-1) printf("ERRO: Piloto nao existe"); else { if(posicao!=-1) { consultar_piloto(&pilotos[pos]); etapas[posicao].numaviao[etapas[posicao].num_inscritos] = numaviao; etapas[posicao].num_inscritos++; } else { printf("a posicao inserida nao existe"); } } } break; case 'D'://listar todos os pilotos if (num_etapas <= 0) printf("nao existem pilotos para listar"); else listar_etapas(etapas,num_etapas,*num_pilotos,pilotos); getch(); break; case 'L'://listar pilotos enscritos nas etapas printf("Qual o numero de aviao do piloto que quer listar??"); scanf("%d",&numaviao); pos=pesquisa_pilotos(pilotos,*num_pilotos,num); if(pos==-1) printf("ERRO: Piloto nao existe"); else printf("O aviao do piloto %d",&numaviao," esta inscrito na etapa numero: %d"); break; } }while(op!='V'); } void leretapas(TETAPAS *etapas) { system("CLS"); int validar, validar2; printf("Designacao da Etapa \n"); gets(etapas->designacao); //e ->pq tamos trabalhar numa referencia//gets recebe o vl char o nosso string printf("Ordem da Etapa: \n"); scanf("%d",&etapas->ordemetapa); printf("Data da Etapa: \n"); printf("Dia:"); validar = scanf("%2d",&etapas->dataetapa.dia); printf("Mes:"); validar2= scanf("%2d",&etapas->dataetapa.mes); } void inserir_etapas(TETAPAS etapas[],int *num_etapas) { TETAPAS aux;//pr guardar os dados todos do piloto leretapas(&aux); aux.num_inscritos=0; etapas[*num_etapas]=aux; (*num_etapas)++; } void consultar_etapas(TETAPAS *etapas,int num_pilotos,TPILOTOS pilotos[]) { int j,k,numero_aviao; system("CLS"); printf("Designacao da Etapa: %s\n",etapas->designacao); printf("Ordem da Etapa: %d\n",etapas->ordemetapa); printf("Data da Etapa: %2d/%2d/2010\n",etapas->dataetapa.dia,etapas->dataetapa.mes,etapas->dataetapa.ano); for(j=0;j<etapas->num_inscritos;j++) { numero_aviao=etapas->numaviao[j]; for(k=0;k<num_pilotos;k++) { if(pilotos[k].numaviao==numero_aviao) { printf("Nome: %s",pilotos[k].nome); } } } } void listar_etapas(TETAPAS etapas[],int *num_etapas,int num_pilotos,TPILOTOS pilotos[]) { int i; for(i=0;i<*num_etapas;i++) { consultar_etapas(&etapas[i],num_pilotos,pilotos); printf("\n----------------------------\n"); } getch(); } void eliminar_etapas(TETAPAS etapas[],int *num_etapas,int pos_eliminar) { etapas[pos_eliminar]=etapas[(*num_etapas)-1]; (*num_etapas)--; } int pesquisa_etapas(TETAPAS etapas[],int ordemetapa,int num) { int i; for(i=0;i<ordemetapa;i++)//serve para percorer todo o vector { if(etapas[i].ordemetapa==num) return i; } return NAO_ENCONTROU; } ❝The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.❞- John Carmack on software patents A list of command line apps Link to comment Share on other sites More sharing options...
TheDark Posted January 5, 2010 at 02:07 AM Report Share #304153 Posted January 5, 2010 at 02:07 AM É engraçado que tenhas ido contra as regras sem ir. Ele não pediu para fazerem o trabalho, pediu ajuda em tópicos concretos, só faltou postar o código. Mas claro que é mais fácil debitar código... Desaparecido. Link to comment Share on other sites More sharing options...
IceBrain Posted January 5, 2010 at 02:12 AM Report Share #304154 Posted January 5, 2010 at 02:12 AM Eu postei o código dele, que ele deu no link. Já mudei o texto para ficar mais explícito. ❝The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.❞- John Carmack on software patents A list of command line apps Link to comment Share on other sites More sharing options...
TheDark Posted January 5, 2010 at 02:31 AM Report Share #304156 Posted January 5, 2010 at 02:31 AM Ok, peço desculpa pela incisividade ? Desaparecido. Link to comment Share on other sites More sharing options...
Triton Posted January 5, 2010 at 02:50 AM Report Share #304157 Posted January 5, 2010 at 02:50 AM fflush(stdin); Argh... <3 life Link to comment Share on other sites More sharing options...
jcfcid Posted January 5, 2010 at 08:49 PM Author Report Share #304322 Posted January 5, 2010 at 08:49 PM lol obrigado pela ajuda 😉 e pronto 😉 agora se poderem dar uma ajuda. ja pus a gravar as etapas e o piloto para ficheiro. =D obrigado pessoal ^^ desculpam a nubisse ^^ Link to comment Share on other sites More sharing options...
jcfcid Posted January 6, 2010 at 09:16 PM Author Report Share #304534 Posted January 6, 2010 at 09:16 PM retirei algumas validações que eu ja fiz. Podem-me ajudar nas restantes?? Obrigado Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now