Sou iniciante em programação e estou desenvolvendo um programa em c++ para faculdade, mas está dando erro ao inserir os dados da av1 (avaliação). Tentei varias vezes encontrar o problema e sem sem sucesso, peço me deem pelo menos uma luz gente kkk
O programa deve gravar 2 alunos em espaços vazios e gravar a av1, av2, av3.
creio que o erro esteja no "inserirAv1" ou na forma como declarei a av1
#include<iostream>
#include<string>
#include<locale.h>
using namespace std;
#define totalAlunos 2 //DEFINE O TOTAL DE ALUNOS PARA UM VALOR CONSTANTE. USEM ESSA CONSTANTE PARA O VALOR MAXIMO DE UM LAÇO.
struct dadosAluno{
string nome;
float matricula, av1, av2, av3;
}aluno[totalAlunos];//STRUCT DOS DADOS DE TODOS OS ALUNOS
//PROTOTIPOS DAS FUNÇÕES
void exibeOpcoes(void); //EXIBE AS OPÇÕES
int posicaoVazia(void); //BUSCA A POSIÇÃO VAZIA PARA GRAVAR UM ALUNO
void inserirAluno(void);//INSERE UM ALUNO
void inserirAv1(void);//INSERE NOTA AV1
int main(void)
{
setlocale (LC_ALL, "portuguese");
int x = 0;
int op = -1;
for (x=0; x<totalAlunos; x++)//DEFINE TODOS OS VALORES DE "dadosAlunos" PARA VAZIO.
{
aluno[x].nome = "";
aluno[x].matricula = 0;
aluno[x].av1 = 0;
aluno[x].av2 = 0;
aluno[x].av3 = 0;
}
while (op != 0)//LAÇO DE REPETIÇÃO DAS OPÇÕES
{
exibeOpcoes();
cin >> op;
system ("CLS");
switch (op)
{
case 0 : cout << "Encerrando o programa"; break;
case 1 : inserirAluno(); break;
case 5 : inserirAv1(); break;
default : cout << "Opção invalida!"<<endl<<endl;
}
}
}//FIM DO INT MAIN
//EXIBE O MENU DE OPÇÕES
void exibeOpcoes(void)
{
cout << "Opções disponiveis:" <<endl<<endl;
cout << "1 - Inserir um aluno."<<endl;
cout << "2 - Editar um aluno."<<endl;
cout << "3 - Excluir um aluno."<<endl;
cout << "4 - Pesquisar um aluno por matrícula."<<endl;
cout << "5 - Digitar notas de AV1."<<endl;
cout << "6 - Digitar notas de AV2."<<endl;
cout << "7 - Digitar notas de AV3."<<endl;
cout << "8 - Exibir notas dos alunos."<<endl;
cout << "9 - Exibir situação final."<<endl;
cout << "10 - Exibir alunos em AV3."<<endl;
cout << "0 - Sair"<<endl<<endl;
cout << "Digite a opção desejada: ";
}//FIM DO EXIBE MENU opções
//BUSCA A POSIÇÃO QUE ESTÁ VAZIA PARA GRAVAR UM ALUNO
int posicaoVazia(void)
{
int x;
for (x=0; x<totalAlunos; x++){
if(aluno[x].matricula == 0){break;}
}
if (x==totalAlunos) return -1;
else return x;
}//FIM DO BUSCAR POSIÇÃO VAZIA
//INSERE UM ALUNO
void inserirAluno(void)
{
int posicao, x, y;
posicao = posicaoVazia();
if (posicao == -1)
{
cout<<"Não é possivel inserir mais nenhum aluno. Exclua ou edite um aluno para continuar."<<endl;
cout<<"Exclua ou edite um aluno para continuar."<<endl<<endl;
}
else
{
do
{
y=1;
cout << "Digite o nome do aluno: ";
cin >> aluno[posicao].nome;
cout << "Digite a matricula do aluno: ";
cin >> aluno[posicao].matricula;
system("CLS");
for (x=0; x<totalAlunos; x++)
{
if (posicao != x)
{
if (aluno[posicao].matricula == aluno[x].matricula)
{
cout<<"A matricula "<<aluno[posicao].matricula<<" já pertence a um aluno."<<endl;
cout<<"Por favor informe outra matricula!"<<endl<<endl;
y=0;
}
}
}
}while(y==0);
cout << "O Aluno: "<<aluno[posicao].nome<<endl;
cout << "Matrícula: "<<aluno[posicao].matricula<<endl;
cout << "Foi cadastrado com sucesso!"<<endl<<endl;
}
}//FIM DO INSERIR ALUNO
//INSERE A AV1
void inserirAv1(void)
{
float buscaAv, nota=0;
cout << "Informe a matricula do aluno: ";
cin >> buscaAv;
system("CLS");
int busca = -1;
int x;
for(x=0; x<totalAlunos; x++)
{
if(aluno[x].matricula == buscaAv)
{
busca = x;
break;
}
}
if(busca == -1)
{
cout << "A matrícula não existe."<<endl;
cout << "Por favor informe uma matrícula válida."<<endl<<endl;
}
else
{
cout << "Aluno: "<<aluno[busca].nome<<endl;
cout << "Matrícula: "<<aluno[busca].matricula<<endl;
cout << "Digite a nota da AV1: ";
cin >> nota;
if(nota>=0 && nota<=10)
{
if(nota>4)
{
aluno[busca].av1 = 0;
}
else
{
aluno[busca].av1 = nota;
}
cout<<"Nota Gravada com sucesso!"<<endl<<endl;
}
else
{
cout<<"Nota inválida!"<<endl<<endl;
}
}
}//FIM DO INSERE AV1