Ayuda para realizar un programa en lenguaje Pascal

Necesito un programa que contenga un menÚ con altas, bajas, consulta, modificaciones y que cada una de esas funciones contenga nombre, direccion telefono codigo postal, poblacion etc. Que cuando yo elija cualquier opcion al final de cada una me pregunte si deceo hacer otra operacion segun sea el archivo que abri.

1 Respuesta

Respuesta
1
Esta bastante completito y con posibilidad de ampliarlo facilmente.
Yo solo puse un par de campos pero despues los podes agregar vos lo de Cod. Postal etc.
Saludos
Gabriel
Uses Crt;
Type
Registro=Record
Nom:String;
Dir:String;
Tel:String;
Baja:Boolean;
End;
Archivo=File of Registro;
Procedure Alta(Var Arch:Archivo);
Var Reg:Registro;
Begin
Write('Ingrese Nombre :');
ReadLn(Reg.Nom);
Write('Ingrese Direccion :');
ReadLn(Reg.dir);
Write('Ingrese Telefono :');
ReadLn(Reg.tel);
Reg.Baja:=False;
Reset(Arch);
If FileSize(Arch)<>0
Then Seek(Arch, FileSize(Arch));
Write(Arch, Reg);
Close(Arch);
WriteLn;
WriteLn('***** Presione ENTER para continuar *****');
ReadKey;
End;
Procedure Baja(Var Arch:Archivo);
Var
Reg:Registro;
Nom:String;
Encontre:Boolean;
Begin
Write('Ingrese nombre a borrar :');
ReadLn(Nom);
Reset(Arch);
Encontre:=False;
While Not Eof(Arch) And (Not Encontre) Do
Begin
Read(Arch, Reg);
If (Reg.Nom = Nom) And (Not Reg.Baja)
Then Encontre:=True;
End;
If Encontre
then Begin
Seek(Arch, FilePos(Arch)-1);
Reg.Baja:=True;
Write(Arch, Reg);
End;
Close(Arch);
End;
Procedure Modif(Var Arch:Archivo);
Var
Reg:Registro;
Nom:String;
Encontre:Boolean;
Op:Char;
Begin
Write('Ingrese nombre a Modificar :');
ReadLn(Nom);
Reset(Arch);
Encontre:=False;
While Not Eof(Arch) And (Not Encontre) Do
Begin
Read(Arch, Reg);
If (Reg.Nom = Nom) And (Not Reg.Baja)
Then Encontre:=True;
End;
If Encontre
then Begin
Seek(Arch, FilePos(Arch)-1);
Repeat
ClrScr;
WriteLn('*** MODIFICACION ***');
writeLn;
WriteLn('1-Nombre : ', Reg.Nom);
WriteLn('2-Direccion : ', Reg.Dir);
WriteLn('3-Telefono : ', Reg.Tel);
WriteLn('4-Finalizar');
WriteLn('5-Cancelar');
Repeat
Op:=ReadKey;
Until (Op In ['1'..'5']);
Case Op Of
'1':Begin
Write('Ingrese nuevo Nombre :');
ReadLn(Reg.Nom);
End;
'2':Begin
Write('Ingrese nuevo Direccion :');
ReadLn(Reg.Dir);
End;
'3':Begin
Write('Ingrese nuevo Telefono :');
ReadLn(Reg.Tel);
End;
End;
Until (Op = '4') Or (Op = '5');
If Op='4'
Then Write(Arch, Reg);
End;
Close(Arch);
End;
Procedure Listar(Var Arch:Archivo);
Var Reg:Registro;
Begin
Reset(Arch);
while Not Eof(Arch) Do
Begin
Read(Arch, Reg);
If Reg.Baja = False
Then WriteLn(Reg.Nom, Reg.Dir, Reg.Tel);
End;
Close(Arch);
WriteLn;
WriteLn('***** Presione ENTER para continuar *****');
ReadKey;
End;
Var
Arch:Archivo;
Opcion:Char;
Begin
Assign(Arch, 'Agenda.dat');
{$i-}
Reset(Arch);
{$I+}
If IOResult <> 0
Then ReWrite(Arch);
Close(Arch);
Repeat
ClrScr;
WriteLn(' MENU');
WriteLn;
WriteLn('1 - Alta');
WriteLn('2 - Baja');
WriteLn('3 - Modificar');
WriteLn('4 - Listar');
WriteLn('0 - Salir');
WriteLn;
Repeat
Opcion:=ReadKey;
Until (Opcion >= '0') And (Opcion <= '4');
Case Opcion of
'1': Alta(Arch);
'2': Baja(Arch);
'3': Modif(Arch);
'4': Listar(Arch);
End;
Until Opcion = '0';
End.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas