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

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Linha 93: Linha 93:
  D --+
  D --+


====Algoritmos em C====
===Algoritmos em C===
;Rodizio:
 
#include <stdio.h>
<syntaxhighlight lang="c">
#include <string.h>
 
int main(int argc, char *argv[])
#include <stdio.h>
{
#include <string.h>
    //argc e argv leem argumentos passados na chamada da função, sendo cada
 
    //argumento é o nome de um dos jogadores
int entraJogador (char *novoJogador);
    //argc mantem a quantidade de argumentos (é no mínimo 1, nome da função)
void geraRodizio (int n, char vetorJogador[32][20]);
    //argv é um vetor com os argumentos (argv[0] é o nome da função)
 
    printf("JOGADORES: %d \n", argc-1); char jogador [10][20];
void main ()
    int i,j,k;
{
    int n = 1;
  int tam;
     k = 0;
  char novoJogador[20];
     //Laço para pegar os argumentos e formar o vetor de jogadores
  char vetorJogador[32][20];
    for (i=0;i<argc-1;i++)
  int n = 0; //número de jogadores cadastrados
  int i;
  printf ("\nCADASTRO DE JOGADORES\n");
  do
  {
     tam = entraJogador (novoJogador);
     if (tam > 0)
     {
     {
       strcpy(jogador[i], argv[i+1]);
       strcpy(vetorJogador[n], novoJogador);
       printf (" %d: %s\n", i+1, jogador[i]);
      n++;
       printf ("n: %d\n", n);
     }
     }
     printf("-------------------\n");
  } while (tam > 0);
    printf("PARTIDAS:\n");
  printf ("\nJOGADORES CADASTRADOS:\n");
    for (j=0;j<i;j++)
  for (i=0; i<n; i++)
      for (k=j+1;k<i;k++)
     printf ("Jogador %d: %s\n", i + 1, vetorJogador[i]);
        printf (" %d: %s x %s\n", n++, jogador[j], jogador[k]);
 
}
  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]);
}
 
</syntaxhighlight>


===Modelo Relacional do Banco de Dados===
===Modelo Relacional do Banco de Dados===

Edição das 01h10min de 31 de outubro 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);
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)