Foro de elhacker.net

Programación => Ejercicios => Mensaje iniciado por: colillo en 1 Mayo 2012, 17:07 pm



Título: Necesito ayuda!! agenda electronica con archivos secuenciales creada en pascal
Publicado por: colillo en 1 Mayo 2012, 17:07 pm
buenas soy nuevo por aquí espero aprender mucho =D, tengo un ejercicio que no tengo idea como empezar hacerlo, necesito algo de ayuda por favor.

este es el ejercicio:

Crear un programa en Pascal que utilice archivos secuenciales para el mantenimiento de una agenda electrónica que guarde los siguientes datos de personas:

- Cedula (String [10]), llave.

- Nombre (String [40])

- Direccion (String [60])

- Telefono (Longint)

- Fax (Longint)

- Estado civil (String[10])

- Provincia (String [10])

Ningún número de cédula puede repetirse dentro del archivo.

Deben crear un menú de acceso con procedimientos de insertar, modificar, eliminar y consultar personas; y salir del programa.
si alguien me puede ayudar o darme una pista de como empezar lo agradezco mucho!


Título: Re: Necesito ayuda!! agenda electronica con archivos secuenciales creada en pascal
Publicado por: colillo en 1 Mayo 2012, 23:02 pm
bueno hasta ahorita tengo montado lo siguiente del trabajo: :D
Program Agenda;
uses
    crt;
const
     ubicacion='d:\bp\bin\datos.txt';
type
    datos_personales = record
                       nombre:string;
                       apellido: string;
                  edad:integer;
                       numero_telefonico: string[8];
                       numero_celular: string[8];
                       direccion: string;
                       fecha_cumpleanos:string;
                       email:string;
    end;
var
   opcion:char;
   info: datos_personales;
   arch: text;
   nombreABuscar: string;
   subNombre: string;
   entro: boolean;

Procedure Imprimir;
begin
     reset (arch);
     clrscr;
     while not eof (arch) do
     begin
          with info do
          begin
               readln(arch,nombre);
               readln(arch,apellido);
               readln(arch,edad);
               readln(arch,numero_telefonico);
               readln(arch,numero_celular);
               readln(arch,direccion);
               readln(arch,fecha_cumpleanos);
               readln(arch,email);
               writeln; writeln;
               writeln(nombre,' ',apellido);
               writeln('Tiene ',edad,'a¤os');
               writeln('Tel‚fono: ',numero_telefonico);
               writeln('Celular: ',numero_celular);
               writeln('Direcci¢n: ',direccion);
               writeln('Fecha de Cumplea¤os: ',fecha_cumpleanos);
               writeln('E-mail: ',email);
               writeln;
          end;
     end;
     readkey;
     close (arch);
end;

Procedure Ingresar;
begin
     append (arch);
     with info do
     begin
          writeln; writeln;
          write('Digite el nombre: '); readln(nombre);
          write('Digite el apellido: '); readln(apellido);
          write('Digite la edad: '); readln(edad);
          write('Digite el n£mero telef¢nico: '); readln(numero_telefonico);
          write('Digite el n£mero celular: '); readln(numero_celular);
          write('Digite la direcci¢n: '); readln(direccion);
          write('Digite la fecha de cumplea¤os: '); readln(fecha_cumpleanos);
          write('Digite el e-mail: '); readln(email);
          writeln(arch,nombre);
          writeln(arch,apellido);
          writeln(arch,edad);
          writeln(arch,numero_telefonico);
          writeln(arch,numero_celular);
          writeln(arch,direccion);
          writeln(arch,fecha_cumpleanos);
          writeln(arch,email);
     end;
     close(arch);
end;

Procedure Buscar;
begin
     reset (arch);
     entro:=false;
     writeln; writeln;
     write('Digite una letra: ');
     nombreABuscar:=readkey;
     clrscr;
     while not eof (arch) do
     begin
          with info do
          begin
               readln(arch,nombre);
               readln(arch,apellido);
               readln(arch,edad);
               readln(arch,numero_telefonico);
               readln(arch,numero_celular);
               readln(arch,direccion);
               readln(arch,fecha_cumpleanos);
               readln(arch,email);
               subNombre:=Copy(nombre,1,length(nombreABuscar));
               if(subNombre=nombreABuscar) then
               begin
                    entro:=true;
                    writeln; writeln;
                    writeln(nombre,' ',apellido);
                    writeln('Tiene ',edad,'a¤os');
                    writeln('Tel‚fono: ',numero_telefonico);
                    writeln('Celular: ',numero_celular);
                    writeln('Direcci¢n: ',direccion);
                    writeln('Fecha de Cumplea¤os: ',fecha_cumpleanos);
                    writeln('E-mail: ',email);
                    writeln;
               end;
          end;
     end;
     if(not entro) then
     writeln('No se encontraron resultados para esta busqueda');
     readkey;
     close (arch);
end;


Procedure Inicializar;cl
begin
     rewrite (arch);
     close(arch);
end;

Procedure Seleccion;
begin
     case opcion of
          '1': Ingresar;
          '2': Buscar;
          '3': Imprimir;
          '4': Inicializar;
     end;
end;

Procedure Menu;
begin
     clrscr;
     writeln;
     writeln;
     gotoxy(35,6);
     writeln('MENU DE AGENDA');
     writeln;
     writeln;
     gotoxy(25,7);
     writeln('1. Agregar Contactos');
     gotoxy(25,9);
     writeln('2. Buscar Contactos');
     gotoxy(25,11);
     writeln('3. Observar Contactos');
     gotoxy(25,13);
     writeln('4. Inicializar Lista de Contactos');
     gotoxy(25,15);
     writeln('5. Salir');
     writeln;
     gotoxy(20,19);
     write ('Escoja una opci¢n: ');
     opcion:=readkey;
end;

Procedure Ciclo;
begin
     Repeat
           Menu;
           Seleccion;
     Until (opcion='5');
end;

Begin
     clrscr;
     assign (arch,ubicacion);
     Ciclo;
End.
pero necesito saber como hago un procedimiento de  modificar, eliminar contactos  en el archivo, por favor necesito ayuda ya son solo dos procedimientos lo que me hacen falta! :huh: