Trabajo Practico Algoritmos I
Enviado por aye05 • 22 de Abril de 2014 • 21.306 Palabras (86 Páginas) • 336 Visitas
Program Banco;
uses crt;
Const
dirClientes= 'c:\Datos Banco\No robar\Cliente.dat';
dirMovimientos= 'c:\datos Banco\No Robar\Movimientos.dat';
dirSucursales='c:\Datos Banco\No robar\Sucursales.dat';
dirCuentas='c:\Datos Banco\No robar\cuentas.dat';
dirMovimientosClientes='c:\Datos Banco\No robar\MovClientes.dat';
MAXCTA = 3;
MAXMOV=500;
MAXcuenta=500;
MAXcliente=500;
MAXsucursal=500;
NombreNulo='-';
NumeroNulo=0;
type
REcliente=record
Nombre:string[20];
Apellido:string[20];
direccion:string[40];
Ncliente:longint;
NSucursal:word;//cada cliente tiene que estar en una sucursal
Ndocumento:longint;
end;
REmovimiento=record
Ncuenta:integer;
Ncliente:longint;
TipoMovimiento:string[20];
Importe:integer;
Estado:boolean;
Nsucursal:word;
Nmov:integer;
end;
REsucursal=record // Guarda las sucursales
Nsucursal:word;//Numero de sucursal
Nombre:string[20];//Nombre ¬¬
Direccion:string[30];
end;
REcuenta=record
Ncliente:longint;//Para poder agregar una cuenta tiene que existir el cliente
//se fija si existe y si ya tiene alguna cuenta
Ncuenta:word;//numero de cuenta
Tcuenta:string[10];
Movimiento:array[1..MAXMOV] of REmovimiento;//Aca se acreditan los movimientos
end;
Tsucursal=array[1..MAXsucursal] of REsucursal;
Tcliente=array[1..MAXcliente] of REcliente;
Tcuenta=array[1..MAXcuenta] of REcuenta;
FREcliente=file of REcliente;
FREmovimiento= file of REmovimiento;
FREsucursal=file of REsucursal;
FREcuenta=file of REcuenta;
///////// Chequeo De los archivos
Procedure chequeoArchivos(var ar_cuenta:FREcuenta;var ar_cliente:FREcliente;var ar_sucursal:FREsucursal);
begin
{$I-}
Reset(ar_cuenta);
{$I+}
if IOResult <> 0 then
begin
writeln('Advertencia Archivo de cuentas fatante, Creando...');
rewrite(ar_cuenta);
readkey;
end;
{$I-}
Reset(ar_cliente);
{$I+}
if IOResult <> 0 then
begin
writeln('Advertencia Archivo de Clientes faltante, Creando...');
rewrite(ar_cliente);
readkey;
end;
{$I-}
Reset(ar_sucursal);
{$I+}
if IOResult <> 0 then
begin
writeln('Advertencia Archivo de Sucursales Faltante, Creando...');
rewrite(ar_sucursal);
readkey;
end;
end;
///////////////////LECTURAS
procedure lecturaCL(var A:FREcliente; var CL:reCliente;var fin:boolean);
begin
if (eof(a)) then
begin
fin:=true;
end
else
begin
fin:=false;
read(A,CL);
end;
end;
procedure lecturaMV(var A:FREmovimiento; var CL:removimiento;var fin:boolean);
begin
if (eof(a)) then
begin
fin:=true;
end
else
begin
fin:=false;
read(A,CL);
end;
end;
procedure lecturaSC(var A:FREsucursal; var CL:resucursal;var fin:boolean);
begin
if (eof(a)) then
begin
fin:=true;
end
else
begin
fin:=false;
read(A,CL);
end;
end;
procedure lecturaCta(var A:FREcuenta; var CL:REcuenta;var fin:boolean);
begin
if (eof(a)) then
begin
fin:=true;
end
else
begin
fin:=false;
read(A,CL);
end;
end;
////////////////////////// CARGAR
procedure CargarSucursales(var ar_sucursal:FREsucursal;var Tsuc:Tsucursal;var contador:integer);
var
fin_ar:boolean;
sucursal:REsucursal;
begin
contador:=0;
{$I-}
Reset(ar_sucursal);
{$I+}
if IOResult = 0 then
begin
lecturaSC(ar_sucursal, sucursal, fin_ar);
while((not fin_ar) and (contador <= MAXsucursal)) do
begin
contador:=contador+1;
Tsuc[contador]:=sucursal;
LecturaSC(ar_sucursal, sucursal, fin_ar);
if (Contador = MAXsucursal) then
begin
Writeln('Cantidad
...