Este repositorio contem a implementacao em C do sistema de votacao descrito no enunciado "Laboratorio de Manipulacao de Arquivos". O programa lida com arquivos texto, valida dados e controla a escolha do melhor TC da IES.
├── src/ # Codigo fonte (main.c)
├── dados/ # Arquivos de entrada exigidos pelo sistema
├── saida/ # Relatorios gerados (parcial.txt, resultado.txt)
├── docs/ # Explicacoes em texto e anexos de referencia
├── bin/ # Executaveis compilados (votacao.exe)
└── .vscode/ # Configuracoes de build/debug para VS Code
-
GCC (MinGW ou MSYS2)
gcc src/main.c -o bin/votacao.exe -Wall -Wextra -std=c11 bin\votacao.exe -
VS Code
UseCtrl+Shift+Bpara acionar a taskbuild votacao. O debugDebug votacao(F5) ja compila e executabin/votacao.exe, com o diretorio de trabalho ajustado para a raiz do projeto. -
Visual Studio (IDE completa)
Crie um projeto "Empty Project" em C/C++, adicionesrc/main.c, defina o diretório de trabalho como a raiz do projeto e compile (Ctrl+Shift+B). Execute (Ctrl+F5) para iniciar o menu da votacao.
professores.txt: primeira linha com a quantidade; demais no formatocodigo depto idade nome.alunos.txt: primeira linha com a quantidade; demaismatricula ano depto idade nome(ano sempre 3).TC_<SIGLA>.txt: um arquivo por departamento (BCC, BSI, ADS, GIT, BEC) contendocodigoTC matriculaAutor codigoOrientador titulo.comissao.txt: quantidade inicial seguida de CPFs no formatoxxx.xxx.xxx-yy.
Todos os arquivos devem terminar com quebra de linha. Se algum estiver ausente ou com dados inconsistentes, o programa encerra informando o erro.
- O executavel detecta o diretorio raiz, garante as pastas
dados/esaida/e carrega todos os arquivos. - Mostra o MENU1:
aIniciar nova votacaobContinuar votacao gravada
- MENU2 (apos iniciar ou retomar uma parcial):
aEntrar com voto – valida CPF, verifica se o eleitor ja votou e obriga informar um codigo de TC existente.bSuspender votacao – gravasaida/parcial.txtcom CPFs e TCs votados e encerra.cConcluir votacao – gerasaida/resultado.txtcom TCs vencedores, dados de aluno e orientador, eleitores que votaram e lista dos que nao votaram.
- Departamentos aceitos: BCC, BSI, ADS, GIT, BEC.
- CPFs sao checados pelo formato
xxx.xxx.xxx-yye pelo algoritmo de digitos verificadores. - Alunos e professores nao podem ter codigos repetidos; cada TC referencia um aluno do proprio departamento e um orientador valido.
- Os arquivos sao lidos apenas uma vez; qualquer problema encerra a execucao com mensagem clara.
- Os votos sao armazenados por TC e cada eleitor e marcado com o codigo escolhido, impedindo votos duplicados.
docs/explicacao.txt: resumo em texto da atividade para apresentacao.docs/explicacao_codigo.txt: guia rapido sobre o codigo e seu uso.docs/Votacao_ProfaEliane_Trabalho.pdf: enunciado original.docs/imagens/page_*.png: capturas das paginas do PDF para consulta rapida.
Mantenha os arquivos de entrada atualizados em dados/ antes de rodar o programa e verifique saida/ para os relatorios gerados.