ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Pascal archivo


Enviado por   •  28 de Noviembre de 2018  •  Apuntes  •  483 Palabras (2 Páginas)  •  97 Visitas

Página 1 de 2

program tp18ej1;

uses crt;

type

Alumno = record

curso: integer;

legajo: integer;

nya: String;

aportes: integer;

end;

Alumnos = file of Alumno;

Aporte = record

curso: integer;

legajo: integer;

monto: integer;

end;

Aportes = file of Aporte;

procedure cargarAlumnos(var f:Alumnos);

var

k: char;

registro: Alumno;

begin

reset(f);

writeLN('Desea ingresar otro alumno? ');

k:= readkey;

while(upcase(k)='S') do

begin

write('Ingrese curso: ');

readln(registro.curso);

write('Ingrese legajo: ');

readln(registro.legajo);

write('Ingrese nombre y apellido: ');

readln(registro.nya);

registro.aportes:=0;

write(f, registro);

writeLN('Desea ingresar otro alumno? ');

k:= readkey;

end;

close(f);

end;

procedure cargarAportes(var f:Aportes);

var

k: char;

registro: Aporte;

begin

reset(f);

write('Desea ingresar otro aporte? ');

k:= readkey;

while(upcase(k)='S') do

begin

write('Ingrese curso: ');

readln(registro.curso);

write('Ingrese legajo: ');

readln(registro.legajo);

write('Ingrese monto: ');

readln(registro.monto);

write(f, registro);

write('Desea ingresar otro aporte? ');

k:= readkey;

end;

close(f);

end;

procedure crearAlumnos(var f:Alumnos);

begin

{$I-}

reset(f);

if(IOResult <>0)then

begin

rewrite(f);

end;

close(f);

{$I+}

writeln('Proceso de creacion de archivo alumnos finalizado.');

end;

procedure crearAportes(var f:Aportes);

begin

{$I-}

reset(f);

if(IOResult <>0)then

begin

rewrite(f);

end;

close(f);

{$I+}

writeln('Proceso de creacion de archivo de aportes finalizado.');

end;

procedure visualizarAlumnos(var f: Alumnos);

var

registro:Alumno;

begin

reset(f);

while(not eof(f)) do

begin

read(f,registro);

write(registro.curso);

write(' ',registro.legajo);

write(' ',registro.nya);

writeln(' ',registro.aportes);

end;

close(f);

end;

procedure visualizarAportes(var f: Aportes);

var

registro:Aporte;

begin

reset(f);

while(not eof(f)) do

begin

read(f,registro);

write(' ',registro.curso);

write(' ',registro.legajo);

writeln(' ',registro.monto);

end;

close(f);

end;

procedure asignarArchivoAlumno(var archivo:Alumnos);

begin

assign(archivo,'Alumnos.dat');

end;

procedure actualizarAlumnos(var f: Alumnos; var g: Aportes);

var

archivoNuevoAlumnos: Alumnos;

registroAporte: Aporte;

registroAlumno: Alumno;

begin

//preparamos el archivo auxiliar

assign(archivoNuevoAlumnos, 'auxiliar.dat');

rewrite(archivoNuevoAlumnos);

reset(archivoNuevoAlumnos);

//ejecucion de la actualizacion en el archivo auxiliar.

reset(f);

while(not eof(f)) do

begin

read(f, registroAlumno);

registroAlumno.aportes:=0;

reset(g);

while(not eof(g)) do

begin

read(g, registroAporte);

if (registroAporte.legajo=registroAlumno.legajo) then

begin

registroAlumno.aportes := registroAlumno.aportes+registroAporte.monto;

end;

end;

close(g);

write(archivoNuevoAlumnos, registroAlumno);

end;

close(f);

close(archivoNuevoAlumnos);

end;

procedure generarInforme(var f: Alumnos);

var

registroAlumno: Alumno;

cursoAnterior: integer;

total: integer;

contribucion_total:integer;

begin

reset(f);

contribucion_total:=0;

total:=0;

cursoAnterior:=1;

writeln('Curso total');

while(not eof(f)) do

begin

read(f, registroAlumno);

if (cursoAnterior=registroAlumno.curso)then

begin

total:= total + registroAlumno.aportes;

end

else

begin

writeln(' ',cursoAnterior,' ',total);

contribucion_total:= contribucion_total+total;

total:=0;

total:= total + registroAlumno.aportes;

end;

cursoAnterior:=registroAlumno.curso;

end;

contribucion_total:= contribucion_total + total;

writeln(' ',cursoAnterior,' ',total);

writeln(' total ',contribucion_total);

close(f);

end;

var

archivoAlumnos: Alumnos;

archivoAportes: Aportes;

begin

asignarArchivoAlumno(archivoAlumnos);

crearAlumnos(archivoAlumnos);

assign(archivoAportes, 'aportes.dat');

crearAportes(archivoAportes);

cargarAlumnos(archivoAlumnos);

cargarAportes(archivoAportes);

actualizarAlumnos(archivoAlumnos, archivoAportes);

assign(archivoAlumnos, 'auxiliar.dat');

visualizarAlumnos(archivoAlumnos);

generarInforme(archivoAlumnos);

end.

...

Descargar como (para miembros actualizados) txt (9 Kb) pdf (49 Kb) docx (17 Kb)
Leer 1 página más »
Disponible sólo en Clubensayos.com