Sofia Gonçalves Posted January 2, 2017 at 03:23 PM Report Share #601667 Posted January 2, 2017 at 03:23 PM Boa tarde! Desde já obrigada! Agradeço toda a ajuda que me possam dar! Tenho vindo a realizar um trabalho em linguagem C. A verdade é que eu sou iniciante em relação a programar e portanto não sei como continuar este trabalho. O trabalho é sobre uma corrida de cavalos. Existe um menu principal e submenus. A ideia é conseguir inserir, eliminar, consultar e listar informação. No entanto, só posso usar ciclos, vetores, strings, matrizes, estruturas, apontadores, funções e procedimentos. Não estou a conseguir começar o Menu Estatisticas pois não sei como fazer. Enunciado do trabalho: Citação "Uma Associação de Amigos Criadores de Cavalos de Corrida (A2C3) pretende realizar um campeonato de corridas de cavalos, envolvendo várias quadras, como forma de promover os seus cavalos e serviços. Cada quadra é formada por vários cavalos e respetivos jockeys. Este campeonato pretende eleger o melhor cavalo e a melhor quadra e para a sua realização serão utilizadas várias pistas a nível nacional. Para efetuar a gestão de toda esta informação, será necessário armazenar informação sobre as quadras (máximo 100), sobre os cavalos e seus jockeys (máximo 100) e sobre as diversas jornadas que compõem o campeonato. Em cada jornada podem ser efetuadas no máximo 3 provas. O campeonato é composto por um máximo de 15 jornadas, que decorrem ao longo de um ano. Em cada jornada podem participar no máximo 10 cavalos. O cavalo vencedor do campeonato será aquele que venceu o maior número de jornadas. A quadra vencedora será aquela que tem o maior número de vitórias obtidas ao longo do campeonato (o total de vitórias de uma quadra corresponde ao número de jornadas ganhas pelos vários cavalos dessa quadra). MENU ESTATÍSTICAS 1 - Resultados do Campeonato 2 - Percentagem de vitórias por Participante 3 - Media de Tempos 4 - Quadra com mais Participantes no Campeonato 0 - Voltar ao Menu Principal Selecionar opção: _ Na opção Resultados do campeonato deve apresentar a informação dos Cavalos vencedores (do primeiro ao terceiro lugar) e a informação da Quadra vencedora; Na opção Percentagem de vitórias por Participante, apresente a percentagem de vitórias por participante; Na opção Média de Tempos, apresente a média de tempos por cada jornada, bem como a média de tempo do campeonato; Na opção Quadra com mais Participantes no Campeonato deve indicar qual a quadra que teve mais participantes a participar no campeonato. " Isto foi o q já fiz: 1) Menus #include <stdio.h> #include <stdlib.h> void MenuGestaoDeParticipantes(); void MenuGestaoDeQuadras(); void MenuGestaoDeJornadas(); void MenuEstatisticas(); void MenuPrincipal() { char op; do { do { system ("cls"); printf("MENU PRINCIPAL\n\n"); printf("1 - Gestao de Quadras \n"); printf("2 - Gestao de Participantes\n"); printf("3 - Gestao de Jornadas\n"); printf("4 - Estatisticas\n"); printf("0 - Sair\n"); printf("Selecionar opcao: \n\n"); op=getchar(); }while(op!='1' && op!='2' && op!='3' && op!='4' && op!='0'); switch (op) { case '1':MenuGestaoDeQuadras(); break; case '2':MenuGestaoDeParticipantes(); break; case '3':MenuGestaoDeJornadas(); break; case '4':MenuEstatisticas(); break; case '0':exit(0); break; } }while(op!='0'); system("PAUSE"); } void MenuGestaoDeQuadras() { char op1; do { system ("cls"); printf("MENU GESTAO DE QUADRAS \n\n"); printf("1 - Inserir Quadra\n"); printf("2 - Eliminar Quadra\n"); printf("3 - Consultar Quadra por nome\n"); printf("4 - Consultar Quadra com mais cavalos \n"); printf("5 - Listar Todas as Quadras\n"); printf("0 - Voltar ao Menu Principal\n\n"); printf("Selecionar opcao: \n"); op1=getchar(); break; }while(op1!=0); system("PAUSE"); } void MenuGestaoDeParticipantes() { char op2; do { system ("cls"); printf("MENU GESTAO DE PARTCIPANTES \n\n"); printf("1 - Inserir participante\n"); printf("2 - Eliminar participante\n"); printf("3 - Consultar participante por NC do jockey\n"); printf("4 - Consultar participante cujo cavalo seja a femea mais idosa\n"); printf("5 - Listar todos os participantes\n"); printf("0 - Voltar ao Menu Principal\n\n"); printf("Selecionar opcao: \n"); op2=getchar(); break; }while(op2!=0); system("PAUSE"); } void MenuGestaoDeJornadas() { char op3; do { system ("cls"); printf("MENU GESTAO DE JORNADAS\n\n"); printf("1 - Inserir jornada\n"); printf("2 - Consultar resultados da jornada por data\n"); printf("3 - Consultar jornadas por nome do cavalo\n"); printf("4 - Listar todas as jornadas\n"); printf("0 - Voltar ao Menu Principal\n"); printf("Selecionar opcao:\n\n"); op3=getchar(); break; }while(op3!=0); system("PAUSE"); } void MenuEstatisticas() { char op4; do { system ("cls"); printf("MENU ESTATISTICAS\n\n"); printf("1 - Resultados do campeonato\n"); printf("2 - Percentagem de vitorias por participante\n"); printf("3 - Media de tempos\n"); printf("4 - Quadra com mais participantes no campeonato\n"); printf("0 - Voltar ao Menu Principal\n"); printf("Selecionar opcao:\n\n"); op4=getchar(); break; }while(op4!=0); system("PAUSE"); ; } int main() { MenuPrincipal(); } 2)Menu Gestao de Quadras #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct Quadra { int cod; int vazio; char NomeDaQuadra[100]; char Localidade[10]; int QuantidadeCavalos; }QUADRA; QUADRA vetor_quadras [100]; int vIndiceGlobal; void InserirQuadra() { system("cls"); printf("\n\nInserindo uma nova quadra...\n\n"); QUADRA vQ; printf ("Digite o nome da quadra: "); fflush(stdin); gets (vQ.NomeDaQuadra); printf ("Digite a localidade: "); gets (vQ.Localidade); printf("Digite a quantidade de cavalos: "); scanf ("%d", &vQ.QuantidadeCavalos); vetor_quadras [vIndiceGlobal]=vQ; vIndiceGlobal++; printf("\n\nQuadra inserida com sucesso!\n\n"); } void EliminarQuadra() { int cod, cont=0; char resp; system("cls"); printf("\nQual o nome da quadra que deseja eliminar?\n"); scanf("%d", &cod); while (cont<=100) { if (vetor_quadras[cont].cod == cod) { if (vetor_quadras[cont].vazio == 1) { printf("\nNome da quadra: %s", vetor_quadras[cont].NomeDaQuadra); printf("\nLocalidade: %s", vetor_quadras[cont].Localidade); printf("\nQuantidade de cavalos: %d", vetor_quadras[cont].QuantidadeCavalos); getchar(); printf("\nDeseja realmente eliminar? S/N "); scanf("%c", &resp); if ((resp == 'S') || (resp == 's')) { vetor_quadras[cont].vazio=0; printf ("\nA quadra foi eliminada com sucesso\n"); break; } else { if ((resp == 'N') || (resp == 'n')) { vetor_quadras[cont].vazio=0; printf ("\nQuadra nao eliminada\n"); break; } } } } cont++; if(cont>100) printf("\nQuadra nao encontrada!\n"); } } void ConsultarPorNome() { char consultar[100]; int i; system("cls"); printf("\n\nConsultar por nome da quadra\n\n"); printf("Digite o nome da quadra que deseja consultar: "); fflush(stdin); gets(consultar); for (i=0; i<vIndiceGlobal; i++) { if(strcasecmp(consultar, vetor_quadras[i].NomeDaQuadra) == 0) { printf("%d] Nome da Quadra: %s | Localidade: %s | Quantidade de cavalos: %d\n", i,vetor_quadras[i].NomeDaQuadra, vetor_quadras[i].Localidade, vetor_quadras[i].QuantidadeCavalos); } } puts("\n\n"); } void ListarTodasQuadras() { int i; printf("\n\nLista de todas as quadras\n\n"); for (i=0; i<vIndiceGlobal; i++) { printf("%d] Nome da Quadra: %s | Localidade: %s | Quantidade de cavalos: %d\n", i,vetor_quadras[i].NomeDaQuadra, vetor_quadras[i].Localidade, vetor_quadras[i].QuantidadeCavalos); } puts("\n\n"); } void MenuGestaoDeQuadras() { vIndiceGlobal=0; char op1; do { do { system ("cls"); printf("MENU GESTAO DE QUADRAS \n\n"); printf("1 - Inserir Quadra\n"); printf("2 - Eliminar Quadra\n"); printf("3 - Consultar Quadra por nome\n"); printf("4 - Consultar Quadra com mais cavalos \n"); printf("5 - Listar Todas as Quadras\n"); printf("0 - Voltar ao Menu Principal\n\n"); printf("Selecionar opcao:\n"); op1=getchar(); break; }while(op1!='1' && op1!='2' && op1!='3' && op1!='4' && op1!='5' && op1!='0'); switch (op1) { case '1': InserirQuadra(); system("PAUSE"); break; case '2': EliminarQuadra(); system ("PAUSE"); break; case '3': ConsultarPorNome(); system("PAUSE"); break; case '4': break; case '5': ListarTodasQuadras(); system("PAUSE"); break; case '0': /* exit(0);*/ break; default: printf("\n\n Opcao Invalida!\n Tente novamente"); break; } }while(op1!='0'); } int main() { MenuGestaoDeQuadras(); } 3)Menu Gestao de Participantes #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct Participante { char NomeDoCavalo[100]; char SexoDoCavalo; int IdadeDoCavalo; int NCjockey; }PARTICIPANTE; PARTICIPANTE vetor_participantes [100]; int vIndiceGlobal1; void InserirParticipante() { system("cls"); printf("\n\nInserindo um novo participante...\n\n"); PARTICIPANTE vQ1; printf ("Digite o nome do cavalo: "); fflush(stdin); gets (vQ1.NomeDoCavalo); printf ("Digite o sexo do cavalo:\n M- masculino\n F- feminino\n "); scanf("%c", &vQ1.SexoDoCavalo); printf("Digite a idade do cavalo: "); scanf ("%d", &vQ1.IdadeDoCavalo); printf("Digite o numero de contribuinte do jockey: "); scanf ("%d", &vQ1.NCjockey); vetor_participantes [vIndiceGlobal1]=vQ1; vIndiceGlobal1++; printf("\n\nParticipante inserido com sucesso!\n\n"); } void ConsultarPorNCjockey() { char consult[100]; int i; printf("\n\nConsultar por numero de contribuinte do jockey\n\n"); printf("Digite o numero de contribuinte do jockey que deseja consultar: "); fflush(stdin); gets(consult); for (i=0; i<vIndiceGlobal1; i++) { if(strcasecmp(consult, vetor_participantes[i].NCjockey) == 0) { printf("%d] Nome do cavalo: %s | Sexo do cavalo: %c | Idade do cavalo: %d | Numero de contribuinte do jockey: %d \n", i,vetor_participantes[i].NomeDoCavalo, vetor_participantes[i].SexoDoCavalo, vetor_participantes[i].IdadeDoCavalo, vetor_participantes.NCjockey); } } puts("\n\n"); } void ListarTodosParticipantes() { int i; printf("\n\nLista de todos os participantes\n\n"); for (i=0; i<vIndiceGlobal1; i++) { printf("%d] Nome do cavalo: %s | Sexo do cavalo: %c | Idade do cavalo: %d | Numero de contribuinte: %d", i, vetor_participantes[i].NomeDoCavalo, vetor_participantes[i].SexoDoCavalo, vetor_participantes[i].IdadeDoCavalo, vetor_participantes.NCjockey); } puts("\n\n"); } void MenuGestaoDeParticipantes() { vIndiceGlobal1=0; char op2; do { do { system ("cls"); printf("MENU GESTAO DE PARTCIPANTES \n\n"); printf("1 - Inserir participante\n"); printf("2 - Eliminar participante\n"); printf("3 - Consultar participante por NC do jockey\n"); printf("4 - Consultar participante cujo cavalo seja a femea mais idosa\n"); printf("5 - Listar todos os participantes\n"); printf("0 - Voltar ao Menu Principal\n\n"); printf("Selecionar opcao:_\n"); op2=getchar(); break; }while(op2!='1' && op2!='2' && op2!='3' && op2!='4' && op2!='5' && op2!='0'); switch (op2) { case '1': InserirParticipante(); system("PAUSE"); break; case '2': case '3': ConsultarPorNCjockey(); system("PAUSE"); break; case '4': break; case '5': ListarTodosParticipantes(); system("PAUSE"); break; case '0': /* MenuPrincipal(); */ break; } }while(op2!='0'); } int main() { MenuGestaoDeParticipantes(); } Link to comment Share on other sites More sharing options...
Estêvão Braga Posted January 2, 2017 at 04:44 PM Report Share #601668 Posted January 2, 2017 at 04:44 PM Oba Sofia, Se poder especificar seu problema melhor, fica mais fácil de nos te ajudarmos. Qual o erro que estais a enfrentar ? O que falta fazer e qual a duvida ? Link to comment Share on other sites More sharing options...
Sofia Gonçalves Posted January 2, 2017 at 04:55 PM Author Report Share #601669 Posted January 2, 2017 at 04:55 PM Olá! O que me falta fazer é mesmo o menu das estatisticas mas não faço ideia como o começar. Como nos outros menus era quase tudo igual ( inserir, eliminar, consultar, listar..) eu fui fazendo tudo no mesmo esquema mas agora como este é diferente nao faço ideia de como o fazer. Por exemplo na opção "quadra com mais participantes no campeonato", supostamente tenho de relacionar a parte do menu das quadras com isto certo? Mas não faço ideia como Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 2, 2017 at 05:33 PM Report Share #601673 Posted January 2, 2017 at 05:33 PM uma questão .... onde estás a relacionar os cavalos com as quadras ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Sofia Gonçalves Posted January 2, 2017 at 05:39 PM Author Report Share #601675 Posted January 2, 2017 at 05:39 PM No inserir quadra, no menu gestao de quadras, pede para inserir tambem a quantidade de cavalos Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 2, 2017 at 05:41 PM Report Share #601677 Posted January 2, 2017 at 05:41 PM não foi essa a pergunta, eu perguntei : onde est+as a relacionar os cavalos criados com as quadras criadas IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Sofia Gonçalves Posted January 2, 2017 at 07:47 PM Author Report Share #601692 Posted January 2, 2017 at 07:47 PM Pois agora que vejo se calhar não relacionei. Mas como devo proceder para o fazer? Link to comment Share on other sites More sharing options...
Sofia Gonçalves Posted January 2, 2017 at 07:57 PM Author Report Share #601693 Posted January 2, 2017 at 07:57 PM Supostamente aqui não é onde relaciona a quadra com a quantidade de cavalos, nome da quadra e a localidade? QUADRA vetor_quadras [100]; int vIndiceGlobal; Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 2, 2017 at 09:45 PM Report Share #601697 Posted January 2, 2017 at 09:45 PM 1 hour ago, Sofia Gonçalves said: Pois agora que vejo se calhar não relacionei. Mas como devo proceder para o fazer? pois .. se tivesses, a tua questão original do tópico estaria resolvidam isto porque bastaria ir a todas as quadras e verificar quel é que tem mais cavalos como fazer-lo ? existem muitas maneiras. sabes o que é uma lista ligada ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Sofia Gonçalves Posted January 2, 2017 at 09:53 PM Author Report Share #601699 Posted January 2, 2017 at 09:53 PM Não, não faço ideia o que seja. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 2, 2017 at 09:56 PM Report Share #601701 Posted January 2, 2017 at 09:56 PM e usar um array para guarda uma lista de estruturas ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Sofia Gonçalves Posted January 2, 2017 at 10:23 PM Author Report Share #601706 Posted January 2, 2017 at 10:23 PM Isso penso que sim Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 2, 2017 at 10:34 PM Report Share #601708 Posted January 2, 2017 at 10:34 PM então a estrutura da quadra deveria é onde deverias guardar um array com os cavalos desta (e de alguma forma guardar tambem o número de cavalos nesse array) IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Sofia Gonçalves Posted January 2, 2017 at 10:45 PM Author Report Share #601709 Posted January 2, 2017 at 10:45 PM Aiii... Mas não faço ideia como isso se faz... Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 2, 2017 at 10:50 PM Report Share #601710 Posted January 2, 2017 at 10:50 PM #define MAX_CAVALOS_POR_QUADRA 64 typedef struct Quadra { int cod; int vazio; char NomeDaQuadra[100]; char Localidade[10]; PARTICIPANTE Cavalos[MAX_CAVALOS_POR_QUADRA; // registos de cavalos da quadra int QuantidadeCavalos; // numero de registos no array anterior }QUADRA; depois disso, basta percorrer a lista de quadras e verificar ual deles é que tem a maior quantidade de cavalos registados IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Sofia Gonçalves Posted January 2, 2017 at 10:57 PM Author Report Share #601711 Posted January 2, 2017 at 10:57 PM ok vou tentar fazer isso. Obrigada 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