Objetivo: Desenvolver um programa em C que permita o cadastro de alunos utilizando struct. O sistema deve armazenar informações básicas sobre os alunos, como nome, idade, matrícula e curso.
Crie uma struct chamada Aluno que contenha os seguintes campos:
- char nome[100];
- int idade;
- int matricula;
- char curso[50];
Cadastrar Aluno
- Implemente uma função para cadastrar um aluno. A função deve receber os dados do aluno e armazená-los em um array de struct Aluno.
Listar Alunos
- Crie uma função que liste todos os alunos cadastrados.
Buscar Aluno por Matrícula
- Desenvolva uma função que receba uma matrícula como parâmetro e retorne as informações do aluno correspondente.
Atualizar Cadastro
- Crie uma função para atualizar os dados de um aluno já cadastrado, identificando-o pela matrícula.
Remover Aluno
- Implemente uma função que remova um aluno do sistema, também identificando-o pela matrícula.
Menu de Opções
Crie um menu de opções no main que permita ao usuário:
- Cadastrar um novo aluno.
- Listar todos os alunos.
- Buscar um aluno por matrícula.
- Atualizar informações de um aluno.
- Remover um aluno.
Para gerar o binário do projeto, eu utilizo gcc
da seguinte maneira
gcc -o app main.c
Para rodar de fato, utilizamos a sintaxe abaixo
./app
O nome app
é genérico e pode ser alterado para o que desejar.
A matéria, até o presente dia, não nos apresentou ponteiros ou estruturas mais complexas como listas ligadas. A implementação dos mesmos, utilizados neste projeto, são extras e utilizados apenas para treino pessoal.
O projeto não têm nenhum tipo de peso nas notas do semestre.
O uso de malloc para salvar as strings (nome, curso) da variável alunos
foi imprescindível, pois, após a criação, o programa realizava uma liberação de memória ao final da execução da função CreateAlunoController. Isto fazia com que a listagem de Alunos tentasse printar um valor em um espaço de memória que o programa já não reconhecia, fazendo com que o programa mostrasse trash values
no terminal.
Isto também me trouxe alguns desafios como: utilizar a função free
corretamente para não causar nenhum tipo de memory leak ao final da execução do programa.