Ir ao conteúdo
  • Cadastre-se

não consigo fazer a leitura do arquivo gerado


Posts recomendados



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.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...