Program CadastroDeAlunos;
type Cadaluno = Record
nome: string[30];
notas: array [1..2] of real;
falta:byte;
media:real;
sit: string[11];
media_geral: array [1..2] of real;
notas_geral: array [1..2] of real
end;
var
Alunos : array [1..100] of Cadaluno;
media_geral, notas_geral: array [1..2] of real;
sit: string[11];
opcao, indice, i, indicebusca: byte;
media:real;
nomeAluno: string[30];
achou: boolean;
arq: text;
Begin
indice:= 1;
opcao:=0;
Assign(arq, 'Relatorio alunos.txt');
while (opcao<>4) do
begin
append(arq);
clrscr;
writeln('--- Cadastro de alunos ---');
writeln('');
writeln(' [1] Cadastrar Alunos');
writeln(' [2] Consultar Alunos');
writeln(' [3] Consultar Geral de Alunos');
writeln(' [4] Sair');
read(opcao);
if (opcao=1) then {cadastro do aluno}
begin
if (indice<=100) then
begin
clrscr;
writeln('--- Cadastro de alunos ---');
writeln('');
write('>>Digite o nome do aluno: ');
read(Alunos[indice].nome);
writeln(arq, 'Nome: ',Alunos[indice].nome);
write('>>Digite a primeira nota: ');
read(Alunos[indice].notas[1]);
writeln(arq, 'Nota 1: ',Alunos[indice].notas[1]:0:2);
notas_geral[1]:=(notas_geral[1]+Alunos[indice].notas[1]);
write('>>Digite segunda nota: ');
read(Alunos[indice].notas[2]);
writeln(arq, 'Nota 2: ',Alunos[indice].notas[2]:0:2);
notas_geral[2]:=(notas_geral[2]+Alunos[indice].notas[2]);
write('Quantidade de faltas: ');
read(Alunos[indice].falta);
writeln(arq, 'Faltas: ',Alunos[indice].falta);
media:=((Alunos[indice].notas[1]+Alunos[indice].notas[2])/2);
if ((media >= 5.0) and (media <= 10.0)) and ((Alunos[indice].falta)<=15) then
sit:='Aprovado'
else
sit:='Recuperacao';
media_geral[1]:=(notas_geral[1]/indice);
media_geral[2]:=(notas_geral[2]/indice);
indice:=indice+1;
writeln(arq, 'Media: ', media:0:2);
writeln(arq, sit);
writeln(arq);
end
else
begin
write('>>Número maximo de alunos cadastrados foi atingido, tecle enter para sair');
readln;
end;;
end;
if (opcao=2) then {consulta do aluno}
begin
clrscr;
achou:=false;
writeln('--- Consulta de alunos ---');
writeln('');
write('>>Digite o nome do aluno: ');
read(nomeAluno);
for i:=1 to indice do
begin
if (nomeAluno=Alunos[i].nome) then
begin
achou:=true;
indicebusca:= i;
end;
end;
if achou=true then
begin
writeln ('-----------------------------------------------');
writeln ('Nome: ',Alunos[indicebusca].nome);
writeln ('Nota 1: ',Alunos[indicebusca].notas[1]:0:2);
writeln ('Nota 2: ',Alunos[indicebusca].notas[2]:0:2);
writeln ('Faltas: ', Alunos[indicebusca].falta);
writeln ('Media: ',media:0:2);
writeln (sit);
writeln ('-----------------------------------------------');
write('>>Tecle enter para voltar ao menu');
readln;
end
else
begin
writeln;
write('<< Aluno não cadastrado >>');
readln;
end;
end;
if (opcao=3) then {consulta geral}
begin
Reset(arq);
while not EOF(arq) do
begin
readln(arq, Alunos[indice].nome);{erro: tentativa de leitura em arquivo que não aberto com sucesso}
writeln(Alunos[indice].nome);
end;
writeln('');
writeln('Aperte qualquer tecla para voltar ao menu');
readkey;
clrscr;
Close(arq);
end;
end;
append(arq);
writeln(arq, 'Media Geral N1: ', media_geral[1]:0:2);
writeln(arq, 'Media Geral N1: ', media_geral[2]:0:2);
writeln(arq, 'Medias gerais das notas acima!');
close(arq);
write('>>Tecle enter para sair<<');
End.