Este projeto foi desenvolvido como conclusão para a disciplina de Programação Imperativa (PI) do curso de Engenharia de Computação na Universidade Federal de Sergipe (UFS), sob a orientação do Prof. Dr. Kalil Bispo.
O sistema processa bases de dados históricas para responder a questões complexas sobre o desempenho e a demografia de atletas ao longo das décadas, utilizando técnicas de manipulação de arquivos e memória em C.
- Bruno Danton (BrunoDanton)
- Davísson Cavalcante (DavissonC)
- Eduardo Souza (EdmSouza)
- Mateus Aranha (matt-aranha)
O software realiza o parsing de arquivos CSV de larga escala (mais de 300.000 registros) para extrair dados estatísticos. O nosso foco principal foi a criação de um código limpo, modularizado e eficiente.
- Evolução das Últimas 10 Edições (Q9): Análise do crescimento do número de atletas nas Olimpíadas de Verão e Inverno da era moderna.
- Evolução das Primeiras 10 Edições (Q9 - Autoral): Análise do crescimento do número de atletas nas Olimpíadas de Verão e Inverno do início da competição.
- Ranking de Medalhistas Mais Velhos (Q19): Identificação dos 10 atletas mais velhos a conquistarem medalhas, segmentados por gênero.
- Ranking de Atletas Mais Novos e Piores Colocados (Q19 - Autoral): Uma análise estatística inversa para identificar jovens estreantes e sua performance.
Para garantir eficiência e a pontuação extra de interface visual, utilizamos:
- Linguagem C: Implementação seguindo o paradigma imperativo com modularização em arquivos
.ce.h. - Gnuplot: Geração automática de gráficos de barras e histogramas via scripts
.gp. - Raylib: Biblioteca gráfica para a criação de uma interface (GUI) interativa e responsiva.
- Gestão de Memória: Uso de alocação dinâmica (
malloc,calloc) para processar grandes volumes de dados sem estourar a pilha (stack).
-
Pré-requisitos:
-
Arquivos de Dados:
- Os arquivos
bios.csveresults.csvdevem estar na pasta superior (../) para serem lidos corretamente pelo programa. - Para obtê-los, baixe do seguinte repositório: (Olympics-Dataset)
- Os arquivos
-
Compilação:
- Q09:
gcc
- Q09 - Autoral:
gcc
- Q19:
gcc analise.c gui.c leitura.c main.c -o questao_19_versao_original -lraylib -lGL -lm -lpthread -ldl -lrt -lX11
- Q19 - Autoral:
gcc