PFC 2016:Gerenciador de Tabelas Esportivas

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar

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);
void geraRodizio (int n, char vetorJogador[32][20]);

void main ()
{
  int tam;
  char novoJogador[20];
  char vetorJogador[32][20];
  int n = 0; //número de jogadores cadastrados
  int i;
  printf ("\nCADASTRO DE JOGADORES\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 %d: %s\n", i + 1, vetorJogador[i]);

  printf ("\nPARTIDAS:\n");
  geraRodizio (n, vetorJogador);

}

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);
  printf ("tam: %d\n", tam);
  return (tam);
}

void geraRodizio (int n, char vetorJogador[32][20])
{
  int c = 0;
  int j, k;
  for (j=0;j<n;j++)
    for (k=j+1;k<n;k++)
      printf (" %d: %s x %s\n", ++c, vetorJogador[j], vetorJogador[k]);
}

Modelo Relacional do Banco de Dados

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