Prévia do material em texto
GRADUAÇÃO ENGENHARIA DE PRODUÇÃO DISCIPLINA: ALGORITMOS E LÓGICA DE PROGRAMAÇÃO UNIDADE: 4; APLICAÇÕES DE PROGRAMAÇÃO AULA: 4; REGISTROS E ARQUIVOS ALUNO: TIAGO ALVES DE OLIVEIRA MATRICULA: 2025356958 São Paulo, 29 de agosto de 2025 ATIVIDADE PROPOSTA: Você foi designado pela sua instituição de ensino para desenvolvedor um programa de classificação dos alunos. O programa deverá solicitar alguns dados, inclusive as médias das disciplinas de cada aluno para que ele possa fazer o cálculo da média do aluno. Deverá solicitar também o nome do aluno. O código foi utilizado na linguagem de programação “C” no GDB Online (VSCode, não conseguir instalar na minha máquina). Requisitos: O programa segue todos os passos definidos, desde a criação da “struct Aluno”, até a gravação dos dados no arquivo final. A “struct Aluno” foi criado com os campos “nome, media1, media2, mediaGeral e classificação”. Função de calculo e comparação: • A função “calcularMediageral” calcula a média das duas disciplinas; • A função “compararMedias” é crucial para o processo de ordenação. Ela é um “comparador” que a função “qsort” (da biblioteca “stdlib.h”) usa para saber como ordenar os elementos de um array. • A função “atribuirClassificacao” usa “qsort” para ordenar o array de alunos e depois atribui a classificação (“Excelente, Muito Bom, etc”) com base na posição de cada aluno na lista ordenada. A função atribui a classificação ordenando os alunos na média geral, baseando na posição, o que garante que as classificações sejam atribuídas corretamente do melhor para o pior aluno. Função para salvar os dados no arquivo: A função “salvarArquivo” cria ou sobrescreve o arquivo “relatório_alunos.txt”. Ela percorre o array de alunos e escreve cada campo no arquivo. O cálculo e a escrita da média geral da turma também são realizados nesta função. O arquivo é fechado com “fclose(arquivo)” após a escrita de todos os dados, garantindo que as informações sejam salvas corretamente no disco. Entrada de dados: O programa pede o número de alunos e usa um laço “for” para coletar as informações de cada um. O uso de “fgets” para o nome é uma prática segura para evitar problemas com os espaços em branco, e o “getchar()” é usado para limpar o buffer do teclado após cada “scanf”. A função “atribuirClassificacao” realiza a ordenação completa do array de alunos, o que garante que as classificações sejam atribuídas corretamente do melhor para o pior aluno, como esperado. Na prática: Compilação dos dados, as informações necessárias, quantidade de alunos e as médias de cada um, quando salvos mostra o resultado dos alunos e no final, a média geral da turma. Relatório “txt” salvo conforme as funções atribuídas. Trazendo as informações mais detalhadas e separadas conforme o print abaixo. Ordenando os alunos do melhor para o pior. Conclusão: O projeto em C apresentado demonstrou que pode resolver problemas práticos e organizar dados de forma eficiente, com três pilares essenciais. Structs: A estrutura “Aluno” permitiu agrupar informações relacionadas como (nome, notas, média e classificação) em um único tipo de dado, tornando o código mais limpo e fácil de gerenciar. Lógica de Ordenação: A combinação da função de comparação com a função de biblioteca “qsort” demonstrou uma forma robusta de ordenar a lista de alunos com base em suas médias, o que é fundamental para atribuir as classificações corretamente. Manipulação de Arquivos: A capacidade de escrever todas as informações em um arquivo “.txt” garantiu que os dados fossem armazenados de forma persistente. Isso é crucial para relatórios e para que as informações não se percam após a execução do programa. Em resumo, a atividade cumpriu seu objetivo principal: mostrar como diferentes conceitos de programação da organização de dados à manipulação de arquivos, se combinam para criar uma solução completa e funcional, capaz de processar informações, classificá-las e gerar um relatório final.