Objetivo do Código
O objetivo deste código é criar um sistema onde é possível cadastrar alunos, registrar suas notas e exibir essas informações posteriormente. A implementação utiliza estruturas (struct), arrays e funções para organizar o código e torná-lo modular. O código também apresenta um menu simples para o usuário interagir, de modo que ele possa escolher entre cadastrar alunos, lançar notas ou exibir as notas e médias.
Estrutura do Código
O código é dividido em várias partes principais:
1. Definição da Estrutura Aluno
A estrutura Aluno é usada para armazenar informações de cada aluno, como nome, matrícula, notas e média:
Código: Selecionar todos
c
typedef struct {
char nome[50];
int matricula;
float notas[3];
float media;
} Aluno;
- nome: Um vetor de caracteres para armazenar o nome do aluno.
- matricula: Um número inteiro que representa a matrícula do aluno.
- notas: Um vetor de 3 elementos do tipo float, onde são armazenadas as 3 notas do aluno.
- media: Um número do tipo float, que armazena a média das notas do aluno.
A função cadastrarAluno() permite que o usuário cadastre até um número máximo de alunos definido pela constante MAX_ALUNOS (neste caso, 3). Para cada aluno, o nome e a matrícula são solicitados ao usuário. As notas são inicializadas com zero, e a média também começa como zero. Após o cadastro, o total de alunos é incrementado.
Código: Selecionar todos
c
void cadastrarAluno() {
if (totalAlunos >= MAX_ALUNOS) {
printf("Numero maximo de alunos cadastrados.\n");
return;
}
printf("Nome do aluno: ");
scanf(" %[^\n]", alunos[totalAlunos].nome);
printf("Matricula do aluno: ");
scanf("%d", &alunos[totalAlunos].matricula);
// Inicializa as notas como 0 e calcula a média inicial como 0.
for (int i = 0; i < 3; i++) {
alunos[totalAlunos].notas[i] = 0.0;
}
alunos[totalAlunos].media = 0.0;
totalAlunos++;
printf("Aluno foi cadastrado com sucesso.\n");
}
A função lancarNotas() permite que o usuário insira as notas para um aluno específico, identificado pela matrícula. O programa então calcula a média das notas e a armazena na estrutura do aluno correspondente.
Código: Selecionar todos
c
void lancarNotas() {
if (totalAlunos == 0) {
printf("Nenhum aluno cadastrado.\n");
return;
}
int matricula;
printf("Informe a matricula do aluno: ");
scanf("%d", &matricula);
int encontrado = 0;
for (int i = 0; i < totalAlunos; i++) {
if (alunos[i].matricula == matricula) {
encontrado = 1;
printf("Informe as 3 notas do aluno %s:\n", alunos[i].nome);
for (int j = 0; j < 3; j++) {
printf("Nota %d: ", j + 1);
scanf("%f", &alunos[i].notas[j]);
}
alunos[i].media = (alunos[i].notas[0] + alunos[i].notas[1] + alunos[i].notas[2]) / 3.0;
break;
}
}
if (!encontrado) {
printf("Aluno nao encontrado.\n");
}
}
A função exibirNotas() permite que o usuário consulte as notas e a média de um aluno específico, identificando-o pela matrícula.
Código: Selecionar todos
c
void exibirNotas() {
if (totalAlunos == 0) {
printf("Nenhum aluno cadastrado.\n");
return;
}
int matricula;
printf("Informe a matricula do aluno: ");
scanf("%d", &matricula);
int encontrado = 0;
for (int i = 0; i < totalAlunos; i++) {
if (alunos[i].matricula == matricula) {
encontrado = 1;
printf("Aluno: %s\n", alunos[i].nome);
printf("Notas: %.2f, %.2f, %.2f\n", alunos[i].notas[0], alunos[i].notas[1], alunos[i].notas[2]);
printf("Média: %.2f\n", alunos[i].media);
break;
}
}
if (!encontrado) {
printf("Aluno nao encontrado.\n");
}
}
A função main() contém um menu interativo que permite ao usuário escolher entre as opções de cadastrar aluno, lançar notas ou exibir notas e médias. O menu continua sendo exibido até que o usuário opte por sair.
Código: Selecionar todos
c
int main() {
int opcao;
do {
printf("\nMenu de Opcoes:\n");
printf("1 - Cadastrar Aluno\n");
printf("2 - Lancar Notas\n");
printf("3 - Exibir Notas e Media\n");
printf("0 - Sair\n");
printf("Escolha uma opcao: ");
scanf("%d", &opcao);
switch (opcao) {
case 1:
cadastrarAluno();
break;
case 2:
lancarNotas();
break;
case 3:
exibirNotas();
break;
case 0:
printf("Saindo...\n");
break;
default:
printf("Opcao invalida\n");
break;
}
} while (opcao != 0);
return 0;
}
Este código simples é uma boa introdução ao uso de estruturas e funções em C. Ele permite gerenciar informações de alunos, como cadastro, lançamento de notas e cálculo de médias, tudo de forma interativa por meio de um menu no terminal. Com esse código, você pode entender como manipular dados com struct, como interagir com o usuário através de entradas e saídas, e como usar funções para organizar o programa de maneira modular.