PFC 2016:Gerenciador de Tabelas Esportivas: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Linha 100: Linha 100:
#include <string.h>
#include <string.h>


int entraJogador (char *novoJogador);
int entraJogador (char *novoJogador)
void geraRodizio (int n, char vetorJogador[32][20]);
{
  int tam;
  printf ("\n  Entre com novo JOGADOR ou tecle Enter para finalizar:\n");
  gets(novoJogador);
  tam = strlen(novoJogador);
  printf ("Jogador: %s\n", novoJogador);
  return (tam);
}
 
void rodizio (int n, char vetorJogador[32][20])
{
  int c = 0;
  int i, j;
  printf ("\nPARTIDAS: \n");
  for (i=0;i<n;i++)
    for (j=i+1;j<n;j++)
      printf (" %2d: %10s x %-10s\n", ++c, vetorJogador[i], vetorJogador[j]);
}
 
void matamata (int n, char vetorJogador[32][20])
{
  switch (n)
  {
    case 3:
      printf ("\nPARTIDAS ELIMINATÓRIASS: \n");
      printf("\n%10s\t-------+", vetorJogador[0]);
      printf("\n\t\t      |---");
      printf("\n%10s\t---+  |", vetorJogador[1]);
      printf("\n\t\t  |---+");
      printf("\n%10s\t---+\n", vetorJogador[2]);
      break;
    case 4:
      printf ("\nPARTIDAS ELIMINATÓRIAS: \n");
      printf("\n%10s\t---+", vetorJogador[0]);
      printf("\n\t\t  |---+");
      printf("\n%10s\t---+  |", vetorJogador[3]);
      printf("\n\t\t      |---");
      printf("\n%10s\t---+  |", vetorJogador[1]);
      printf("\n\t\t  |---+");
      printf("\n%10s\t---+\n", vetorJogador[2]);
      break;
    case 5:
      printf ("\nPARTIDAS ELIMINATÓRIAS: \n");
      printf("\n%10s\t-------+", vetorJogador[0]);
      printf("\n\t\t      |---+");
      printf("\n%10s\t---+  |  |", vetorJogador[3]);
      printf("\n\t\t  |---+  |");
      printf("\n%10s\t---+      |---\n", vetorJogador[4]);
      printf("\t\t          |"); 
      printf("\n%10s\t---+      |", vetorJogador[1]);
      printf("\n\t\t  |-------+");
      printf("\n%10s\t---+\n", vetorJogador[2]);
      break;
    case 6:
      printf ("\nPARTIDAS ELIMINATÓRIAS: \n");
      printf("\n%10s\t-------+", vetorJogador[0]);
      printf("\n\t\t      |---+");
      printf("\n%10s\t---+  |  |", vetorJogador[3]);
      printf("\n\t\t  |---+  |");
      printf("\n%10s\t---+      |---\n", vetorJogador[4]);
      printf("\t\t          |");
      printf("\n%10s\t-------+  |", vetorJogador[1]);
      printf("\n\t\t      |---+");
      printf("\n%10s\t---+  |", vetorJogador[2]);
      printf("\n\t\t  |---+");
      printf("\n%10s\t---+      \n", vetorJogador[5]);
      break;
    case 7:
      printf ("\nPARTIDAS ELIMINATÓRIAS: \n");
      printf("\n%10s\t-------+", vetorJogador[0]);
      printf("\n\t\t      |---+");
      printf("\n%10s\t---+  |  |", vetorJogador[3]);
      printf("\n\t\t  |---+  |");
      printf("\n%10s\t---+      |\n", vetorJogador[4]);
      printf("\t\t          |---");
      printf("\n%10s\t---+      |", vetorJogador[1]);
      printf("\n\t\t  |---+  |");
      printf("\n%10s\t---+  |  |", vetorJogador[5]);
      printf("\n\t\t      |---+");
      printf("\n%10s\t---+  |", vetorJogador[2]);
      printf("\n\t\t  |---+");
      printf("\n%10s\t---+\n", vetorJogador[5]);
      break;
    case 8:
      printf ("\nPARTIDAS ELIMINATÓRIAS: \n");
      printf("\n%10s\t---+", vetorJogador[0]);
      printf("\n\t\t  |---+");
      printf("\n%10s\t---+  |", vetorJogador[7]);
      printf("\n\t\t      |---+");
      printf("\n%10s\t---+  |  |", vetorJogador[3]);
      printf("\n\t\t  |---+  |");
      printf("\n%10s\t---+      |\n", vetorJogador[4]);
      printf("\t\t          |---");
      printf("\n%10s\t---+      |", vetorJogador[1]);
      printf("\n\t\t  |---+  |");
      printf("\n%10s\t---+  |  |", vetorJogador[6]);
      printf("\n\t\t      |---+");
      printf("\n%10s\t---+  |", vetorJogador[2]);
      printf("\n\t\t  |---+");
      printf("\n%10s\t---+\n", vetorJogador[5]);
      break;
  }
}
 
void copa (int n, char vetorJogador[32][20])
{
  switch (n)
  {
    case 6:
      printf("\nDUAS CHAVES -> TRÊS JOGADORES CADA\n");    
      break;
    case 7:
      printf("\nDUAS CHAVES -> UMA COM TRÊS E OUTRA COM QUATRO JOGADORES\n");           
      break;
    case 8:
      printf("\nDUAS CHAVES -> QUATRO JOGADORES CADA\n");           
      break;
  }
}


void main ()
void main ()
Linha 110: Linha 228:
   int n = 0; //número de jogadores cadastrados
   int n = 0; //número de jogadores cadastrados
   int i;
   int i;
  char resposta;
   printf ("\nCADASTRO DE JOGADORES\n");
   printf ("\nCADASTRO DE JOGADORES\n");
  printf ("\nCadastre jogadores de acordo com o RANKING ou CABEÇAS DE CHAVE.\n");
   do
   do
   {
   {
Linha 123: Linha 243:
   printf ("\nJOGADORES CADASTRADOS:\n");
   printf ("\nJOGADORES CADASTRADOS:\n");
   for (i=0; i<n; i++)
   for (i=0; i<n; i++)
     printf ("Jogador %d: %s\n", i + 1, vetorJogador[i]);
     printf ("Jogador %2d: %10s\n", i + 1, vetorJogador[i]);


   printf ("\nPARTIDAS:\n");
   if (n <= 2)
  geraRodizio (n, vetorJogador);
  {
 
    printf ("\n");
}
    rodizio (n, vetorJogador);
 
  }
int entraJogador (char *novoJogador)
  if (n >= 3 && n <= 5)
{
  {
  int tam;
    printf ("\nESCOHA FORMATO DA COMPETIÇÃO: \n");
  printf ("\n Entre com novo JOGADOR ou tecle Enter para finalizar:\n");
    printf (" (0) Rodízio simples\n");
  gets(novoJogador);
    printf (" (1) Eliminatória simples\n");
  tam = strlen(novoJogador);
    resposta = getchar();
   printf ("Jogador: %s\n", novoJogador);
    if (resposta == '0')
  printf ("tam: %d\n", tam);
      rodizio (n, vetorJogador);
  return (tam);
    if (resposta == '1')
}
      matamata(n, vetorJogador);
 
   }
void geraRodizio (int n, char vetorJogador[32][20])
  if (n >= 6 && n <= 8)
{
  {
  int c = 0;
    printf ("\nESCOHA FORMATO DA COMPETIÇÃO: \n");
  int j, k;
    printf (" (0) Rodízio simples\n");
  for (j=0;j<n;j++)
    printf (" (1) Eliminatória simples\n");
     for (k=j+1;k<n;k++)
    printf (" (2) Copa\n");
       printf (" %d: %s x %s\n", ++c, vetorJogador[j], vetorJogador[k]);
    resposta = getchar();
    if (resposta == '0')
      rodizio (n, vetorJogador);
    if (resposta == '1')
      matamata(n, vetorJogador);
     if (resposta == '2')
       copa(n, vetorJogador);
  }
}
}



Edição das 00h50min de 1 de novembro de 2016

Projeto de Final de Curso

Curso
Técnico Integrado em Informática
Equipe
Gabriel Garcia da Rocha, Gabriel Severo e Leonardo Zapola
Orientador
Evandro Cantú
Tema
Gerenciador de Tabelas Esportivas
Orientações
Terças-feiras: 14h00 as 15h00

Especificações do Sistema

Usuários do sistema

Descrição dos usuários do sistema e os campos de devem ser armazenados no banco de dados:

Usuário
  • Nome de login
  • Senha
  • Nome Completo
  • Dada Nascimento
  • RG
  • CPF
  • Email
  • Telefone
  • Sexo
Status de Usuários
  • Administrador (Um no sistema)
  • Organizador do Evento (Promovido pelo Administrador)
  • Capitão de Equipe (Promovido pelo Organizador do Evento)
  • Atletas

Tabelas

Chaves e formato da competição em função do número de inscritos
Rodízio
Até 5 inscritos, todos contra todos:
  • 3 inscritos: 3 partidas
  • 4 inscritos: 6 partidas
  • 5 inscritos: 10 partidas
2 grupos
Classificam 1º e 2º de cada chave.
  • 6 inscritos -> 2 chaves de 3
  • 7 inscritos -> 1 chave de 4 e 1 chave de 3
  • 8 inscritos -> 2 chaves de 4
3 grupos
Classificam 1º e 2º de cada Grupo e os dois melhores 3º.
  • 9 inscritos -> 3 chaves de 3 (classificam 1º e 2º de cada chave)
  • 10 inscritos -> 1 chave de 4 e 2 chaves de 3 (classificam 1º e 2º de cada chave)
  • 11 inscritos -> 2 chaves de 4 e 1 chave de 3 (classificam 1º e 2º de cada chave)
4 grupos
Classificam 1º e 2º de cada chave.
  • 12 inscritos -> 4 chaves de 3
  • 13 inscritos -> 1 chave de 4 e 3 chaves de 3
  • 14 inscritos -> 2 chaves de 4 e 2 chaves de 3
  • 15 inscritos -> 3 chaves de 4 e 1 chave de 3
  • 16 inscritos -> 4 chaves de 4
  • 17 inscritos -> 3 chaves de 4 e 1 chave de 5
6 grupos
Classificam 1º e 2º de cada chave.
O 1º dos grupos 1, 2, 3 e 4 entram como avulsos nas quartas de final.
  • 18 inscritos -> 6 chaves de 3
  • 19 inscritos -> 5 chaves de 3 e 1 chave de 4
  • 20 inscritos -> 4 chaves de 3 e 2 chave de 4
Tabelas para jogos em função dos inscritos

Algoritmo Competições

Algoritmo

Inscritos
vetor [2 a N inscritos]
Sorteio Chaves
Escolhe aleatoriamente os integrantes de cada chave, se inscritos >= 6 (menos o cabeça de chave, se houver)
Função Rodízio
Recebe vetor [2 a 5 elementos] e define confrontos do rodízio.
Exemplo:
vetor[A, B, C, D]
A _ x _ B
C _ x _ D
A _ x _ C
B _ x _ D
A _ x _ D
B _ x _ C
Função Eliminatórias
Recebe vetor [2 a M elementos] e define confrontos eliminatórios.
Exemplo:
vetor[A, B, C, D]
A --+
    |--+
B --+  | 
       |--
C --+  |
    |--+
D --+

Algoritmos em C

#include <stdio.h>
#include <string.h>

int entraJogador (char *novoJogador)
{
  int tam;
  printf ("\n  Entre com novo JOGADOR ou tecle Enter para finalizar:\n");
  gets(novoJogador);
  tam = strlen(novoJogador);
  printf ("Jogador: %s\n", novoJogador);
  return (tam);
}

void rodizio (int n, char vetorJogador[32][20])
{
  int c = 0;
  int i, j;
  printf ("\nPARTIDAS: \n");
  for (i=0;i<n;i++)
    for (j=i+1;j<n;j++)
      printf (" %2d: %10s x %-10s\n", ++c, vetorJogador[i], vetorJogador[j]);
}

void matamata (int n, char vetorJogador[32][20])
{
  switch (n)
  {
    case 3:
      printf ("\nPARTIDAS ELIMINATÓRIASS: \n");
      printf("\n%10s\t-------+", vetorJogador[0]);
      printf("\n\t\t       |---");
      printf("\n%10s\t---+   |", vetorJogador[1]);
      printf("\n\t\t   |---+");
      printf("\n%10s\t---+\n", vetorJogador[2]);
      break;
    case 4:
      printf ("\nPARTIDAS ELIMINATÓRIAS: \n");
      printf("\n%10s\t---+", vetorJogador[0]);
      printf("\n\t\t   |---+");
      printf("\n%10s\t---+   |", vetorJogador[3]);
      printf("\n\t\t       |---");
      printf("\n%10s\t---+   |", vetorJogador[1]);
      printf("\n\t\t   |---+");
      printf("\n%10s\t---+\n", vetorJogador[2]);
      break;
    case 5:
      printf ("\nPARTIDAS ELIMINATÓRIAS: \n");
      printf("\n%10s\t-------+", vetorJogador[0]);
      printf("\n\t\t       |---+");
      printf("\n%10s\t---+   |   |", vetorJogador[3]);
      printf("\n\t\t   |---+   |");
      printf("\n%10s\t---+       |---\n", vetorJogador[4]);
      printf("\t\t           |");  
      printf("\n%10s\t---+       |", vetorJogador[1]);
      printf("\n\t\t   |-------+");
      printf("\n%10s\t---+\n", vetorJogador[2]);
      break;
    case 6:
      printf ("\nPARTIDAS ELIMINATÓRIAS: \n");
      printf("\n%10s\t-------+", vetorJogador[0]);
      printf("\n\t\t       |---+");
      printf("\n%10s\t---+   |   |", vetorJogador[3]);
      printf("\n\t\t   |---+   |");
      printf("\n%10s\t---+       |---\n", vetorJogador[4]);
      printf("\t\t           |");
      printf("\n%10s\t-------+   |", vetorJogador[1]);
      printf("\n\t\t       |---+");
      printf("\n%10s\t---+   |", vetorJogador[2]);
      printf("\n\t\t   |---+");
      printf("\n%10s\t---+       \n", vetorJogador[5]);
      break;
    case 7:
      printf ("\nPARTIDAS ELIMINATÓRIAS: \n");
      printf("\n%10s\t-------+", vetorJogador[0]);
      printf("\n\t\t       |---+");
      printf("\n%10s\t---+   |   |", vetorJogador[3]);
      printf("\n\t\t   |---+   |");
      printf("\n%10s\t---+       |\n", vetorJogador[4]);
      printf("\t\t           |---");
      printf("\n%10s\t---+       |", vetorJogador[1]);
      printf("\n\t\t   |---+   |");
      printf("\n%10s\t---+   |   |", vetorJogador[5]);
      printf("\n\t\t       |---+");
      printf("\n%10s\t---+   |", vetorJogador[2]);
      printf("\n\t\t   |---+");
      printf("\n%10s\t---+\n", vetorJogador[5]);
      break;
    case 8:
      printf ("\nPARTIDAS ELIMINATÓRIAS: \n");
      printf("\n%10s\t---+", vetorJogador[0]);
      printf("\n\t\t   |---+");
      printf("\n%10s\t---+   |", vetorJogador[7]);
      printf("\n\t\t       |---+");
      printf("\n%10s\t---+   |   |", vetorJogador[3]);
      printf("\n\t\t   |---+   |");
      printf("\n%10s\t---+       |\n", vetorJogador[4]);
      printf("\t\t           |---");
      printf("\n%10s\t---+       |", vetorJogador[1]);
      printf("\n\t\t   |---+   |");
      printf("\n%10s\t---+   |   |", vetorJogador[6]);
      printf("\n\t\t       |---+");
      printf("\n%10s\t---+   |", vetorJogador[2]);
      printf("\n\t\t   |---+");
      printf("\n%10s\t---+\n", vetorJogador[5]);
      break;
  }
}

void copa (int n, char vetorJogador[32][20])
{
  switch (n)
  {
    case 6:
      printf("\nDUAS CHAVES -> TRÊS JOGADORES CADA\n");      
      break;
    case 7:
      printf("\nDUAS CHAVES -> UMA COM TRÊS E OUTRA COM QUATRO JOGADORES\n");            
      break;
    case 8:
      printf("\nDUAS CHAVES -> QUATRO JOGADORES CADA\n");            
      break;
  }
}

void main ()
{
  int tam;
  char novoJogador[20];
  char vetorJogador[32][20];
  int n = 0; //número de jogadores cadastrados
  int i;
  char resposta;
  printf ("\nCADASTRO DE JOGADORES\n");
  printf ("\nCadastre jogadores de acordo com o RANKING ou CABEÇAS DE CHAVE.\n");
  do
  {
    tam = entraJogador (novoJogador);
    if (tam > 0)
    {
      strcpy(vetorJogador[n], novoJogador);
      n++;
      printf ("n: %d\n", n);
    }
  } while (tam > 0);
  printf ("\nJOGADORES CADASTRADOS:\n");
  for (i=0; i<n; i++)
    printf ("Jogador %2d: %10s\n", i + 1, vetorJogador[i]);

  if (n <= 2)
  {
    printf ("\n");
    rodizio (n, vetorJogador);
  }
  if (n >= 3 && n <= 5)
  {
    printf ("\nESCOHA FORMATO DA COMPETIÇÃO: \n");
    printf (" (0) Rodízio simples\n");
    printf (" (1) Eliminatória simples\n");
    resposta = getchar();
    if (resposta == '0')
      rodizio (n, vetorJogador);
    if (resposta == '1')
      matamata(n, vetorJogador);
  }
  if (n >= 6 && n <= 8)
  {
    printf ("\nESCOHA FORMATO DA COMPETIÇÃO: \n");
    printf (" (0) Rodízio simples\n");
    printf (" (1) Eliminatória simples\n");
    printf (" (2) Copa\n");
    resposta = getchar();
    if (resposta == '0')
      rodizio (n, vetorJogador);
    if (resposta == '1')
      matamata(n, vetorJogador);
    if (resposta == '2')
      copa(n, vetorJogador);
  }
}

Modelo Relacional do Banco de Dados

--Leonardo.zapola (discussão) 14h11min de 7 de julho de 2016 (BRT)