Ir ao conteúdo
  • Cadastre-se
Luis Augusto_756265

não consigo fazer a leitura do arquivo gerado

Recommended Posts



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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×