Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit pasajeros;
- interface
- uses crt;
- type
- pasajero = record
- nombre:string[30];
- apellido:string[20];
- edad:integer;
- nacionalidad:string[15];
- dni:string[15];
- pasajero_pref:boolean;
- borrado:boolean;
- end;
- a_pasajero = file of pasajero;
- var
- archivo:a_pasajero;
- posicion:word;
- registro:pasajero;
- archivo_aux:a_pasajero;
- procedure abrir_a(var a:a_pasajero);
- procedure abrir_a_aux(var a_aux:a_pasajero);
- procedure cerrar_a(var a:a_pasajero);
- procedure leer_r(var a:a_pasajero; pos:word; var reg:pasajero);
- procedure guardar_r(var a:a_pasajero; reg:pasajero);
- procedure modificar_a_especifico(var a:a_pasajero; pos:integer; reg:pasajero);
- procedure cargar_r(var a:a_pasajero);
- function buscar_r(var a:a_pasajero; buscado:string[15]):integer;
- procedure reescribir_a(var a:a_pasajero; var a_aux:a_pasajero);
- procedure borrar_r(var a:a_pasajero; var a_aux:a_pasajero; buscado:string[15]);
- procedure modificar_r(var a:a_pasajero);
- procedure mostrar_r(var a:a_pasajero; buscado:string[15]);
- procedure mostrar_a(var a:a_pasajero);
- implementation
- procedure abrir_a(var a:a_pasajero);
- begin
- assign(a, 'pasajeros.dat');
- {$i-}
- reset(a);
- {$i+}
- if ioresult <> 0 then
- rewrite(a);
- end;
- procedure abrir_a_aux(var a_aux:a_pasajero);
- begin
- assign(a_aux , 'pasajeros_aux.dat');
- {$i-}
- reset(a_aux);
- {$i+}
- rewrite(a_aux);
- end;
- procedure cerrar_a(var a:a_pasajero);
- begin
- close(a);
- end;
- procedure leer_r(var a:a_pasajero; pos:word; var reg:pasajero);
- begin
- seek(a,pos);
- read(a,reg);
- end;
- procedure guardar_r(var a:a_pasajero; reg:pasajero);
- begin
- seek(a, filesize(a));
- write(a, reg);
- end;
- procedure modificar_a_especifico(var a:a_pasajero; pos:integer; reg:pasajero);
- begin
- seek(a,pos);
- write(a,reg);
- end;
- procedure cargar_r(var a:a_pasajero);
- var
- aux:char;
- aux_pasajero_pref:char;
- aux_r:pasajero;
- begin
- aux:= 's';
- while (aux = 's') do
- begin
- clrscr;
- with aux_r do
- begin
- writeln('Ingrese los datos del pasajero: ');
- borrado:=false;
- pasajero_pref:= false;
- writeln('Nombre: ');
- readln(nombre);
- writeln('Apellido: ');
- readln(apellido);
- writeln('Edad: ');
- readln(edad);
- writeln('Nacionalidad: ');
- readln(nacionalidad);
- writeln('DNI: ');
- readln(dni);
- writeln('Pasajero preferencial? (s/n): ');
- readln(aux_pasajero_pref);
- if (aux_pasajero_pref = 's') then
- pasajero_pref:= true;
- end;
- clrscr;
- abrir_a(a);
- guardar_r(a, aux_r);
- cerrar_a(a);
- writeln('Desea continuar ingresando pasajeros? (s/n): ');
- readln(aux);
- end;
- clrscr;
- end;
- function buscar_r(var a:a_pasajero; buscado:string[15]):integer;
- var
- aux_r:pasajero;
- i:integer;
- encontrado:boolean;
- begin
- encontrado:= false;
- i:=0;
- while ((i<=(filesize(a)-1)) and not(encontrado)) do
- begin
- leer_r(a, i, aux_r);
- if (aux_r.dni = buscado) then
- begin
- encontrado:= true;
- buscar_r:= i;
- end
- else
- inc(i);
- end;
- if not(encontrado) then
- begin
- buscar_r:= -1;
- end;
- end;
- procedure reescribir_a(var a:a_pasajero; var a_aux:a_pasajero);
- var
- i:integer;
- aux_r:pasajero;
- begin
- abrir_a_aux(a_aux);
- for i:=0 to (filesize(a)-1) do
- begin
- leer_r(a, i, aux_r);
- if not(aux_r.borrado) then
- guardar_r(a_aux, aux_r);
- end;
- rewrite(a);
- for i:=0 to (filesize(a_aux)-1) do
- begin
- leer_r(a_aux, i, aux_r);
- write(a, aux_r);
- end;
- rewrite(a_aux);
- cerrar_a(a_aux);
- end;
- procedure borrar_r(var a:a_pasajero; var a_aux:a_pasajero; buscado:string[15]);
- var
- aux_r:pasajero;
- pos:integer;
- begin
- abrir_a(a);
- pos:= buscar_r(a, buscado);
- if (pos <> -1) then
- begin
- leer_r(a, pos, aux_r);
- aux_r.borrado:= true;
- modificar_a_especifico(a, pos, aux_r);
- reescribir_a(a, a_aux);
- end
- else
- writeln('No se encuentra el pasajero con DNI ' + buscado + '.');
- cerrar_a(a);
- end;
- procedure modificar_r(var a:a_pasajero);
- var
- aux:char;
- aux_r:pasajero;
- pos:integer;
- opcion:1..6;
- buscado:string[15];
- begin
- writeln('Ingrese el DNI del pasajero que desea modificar: ');
- readln(buscado);
- clrscr;
- abrir_a(a);
- pos:= buscar_r(a, buscado);
- aux:= 's';
- if (pos <> -1) then
- begin
- leer_r(a, pos, aux_r);
- while (aux = 's') do
- begin
- writeln('Que desea modificar?');
- writeln('1. NOMBRE');
- writeln('2. APELLIDO');
- writeln('3. EDAD');
- writeln('4. NACIONALIDAD');
- writeln('5. DNI');
- writeln('6. PASAJERO PREFERENCIAL');
- readln(opcion);
- clrscr;
- case opcion of
- 1:
- begin
- writeln('Ingrese el nuevo nombre: ');
- readln(aux_r.nombre);
- end;
- 2:
- begin
- writeln('Ingrese el nuevo apellido: ');
- readln(aux_r.apellido);
- end;
- 3:
- begin
- writeln('Ingrese la nueva edad: ');
- readln(aux_r.edad);
- end;
- 4:
- begin
- writeln('Ingrese la nueva nacionalidad: ');
- readln(aux_r.nacionalidad);
- end;
- 5:
- begin
- writeln('Ingrese el nuevo DNI: ');
- readln(aux_r.dni);
- end;
- 6:
- aux_r.pasajero_pref:= not(aux_r.pasajero_pref);
- end;
- modificar_a_especifico(a, pos, aux_r);
- clrscr;
- writeln('El pasajero ha sido modificado exitosamente!');
- writeln('Desea continuar modificando informacion del pasajero? (s/n): ');
- readln(aux);
- clrscr;
- end;
- end
- else
- begin
- writeln('No se encuentra el pasajero que desea modificar.');
- readkey;
- end;
- cerrar_a(a);
- clrscr;
- end;
- procedure mostrar_r(var a:a_pasajero; buscado:string[15]);
- var
- aux_r:pasajero;
- pos:integer;
- begin
- abrir_a(a);
- pos:= buscar_r(a, buscado);
- leer_r(a, pos, aux_r);
- with aux_r do
- begin
- writeln('Nombre: ', nombre);
- writeln('Apellido: ', apellido);
- writeln('Edad: ', edad);
- writeln('Nacionalidad: ', nacionalidad);
- writeln('DNI: ', dni);
- if (pasajero_pref) then
- writeln('Pasajero preferencial: SI')
- else
- writeln('Pasajero preferencial: NO');
- end;
- cerrar_a(a);
- end;
- procedure mostrar_a(var a:a_pasajero);
- var
- i:integer;
- aux_r:pasajero;
- begin
- abrir_a(a);
- for i:= 0 to (filesize(a)-1) do
- begin
- leer_r(a, i, aux_r);
- with aux_r do
- begin
- writeln('Archivo nro ', i+1, ':');
- writeln('Nombre: ', nombre);
- writeln('Apellido: ', apellido);
- writeln('Edad: ', edad);
- writeln('Nacionalidad: ', nacionalidad);
- writeln('DNI: ', dni);
- if (pasajero_pref) then
- writeln('Pasajero preferencial: SI')
- else
- writeln('Pasajero preferencial: NO');
- writeln('-----------------------');
- end;
- end;
- cerrar_a(a);
- end;
- {
- procedure burbujapasajero(var a:a_pasajero);
- var
- i,j:word;
- aux,aux1:pasajero;
- pos:integer;
- begin
- for i:= 1 to (filesize(a)-1) do
- begin
- pos:=0;
- for j:=1 to (filesize(a)-i) do
- begin
- seek(a,pos);
- read(a,aux);
- seek(a,(pos+1));
- read(a,aux1);
- if (aux.Apellido) > (aux1.Apellido) then
- begin
- seek(a,pos);
- write(a,aux1);
- seek(a,(pos+1));
- write(a,aux);
- end;
- pos:=pos+1;
- end;
- end;
- end;
- }
- BEGIN
- END.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement