0% encontró este documento útil (0 votos)
15 vistas5 páginas

Actualización y Informe de Clientes

El documento describe dos acciones: Actualizar_Clientes y Informe_Banco. La primera se encarga de actualizar la información de los clientes y sus movimientos en un sistema, mientras que la segunda genera un informe categorizando a los clientes según su saldo actual por sucursal. Ambas acciones utilizan registros y archivos para gestionar datos de clientes y sucursales, y realizan operaciones de lectura y modificación de datos.

Cargado por

ana
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
15 vistas5 páginas

Actualización y Informe de Clientes

El documento describe dos acciones: Actualizar_Clientes y Informe_Banco. La primera se encarga de actualizar la información de los clientes y sus movimientos en un sistema, mientras que la segunda genera un informe categorizando a los clientes según su saldo actual por sucursal. Ambas acciones utilizan registros y archivos para gestionar datos de clientes y sucursales, y realizan operaciones de lectura y modificación de datos.

Cargado por

ana
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Accion Actualizar_Clientes es:

Ambiente
Fecha = Registro
dia: 1...31
mes: 1...12
anio: n(4)
Fin Registro

Clientes = Registro
Clave = Registro
id_sucursal: n(5)
id_cliente: n(6)
Fin Registro
nom_y_ape: an(100)
saldo_actual: real
fecha_alta: Fecha
fecha_baja: Fecha
Fin Registro

Clientes_Act, Arch_Clientes: Archivo de Clientes ordenado por Clave


reg_clientes: Clientes

Movimientos = Registro
Clave = Registro
id_sucursal: n(5)
id_cliente: n(6)
Fin Registro
cod_mov: 0...99
nom_y_ape: an(100)
fecha_mov: Fecha
monto: real
detalle: an(100)
categoria: 1...6
tipo: ("I", "E")
Fin Registro

Arch_Mov: Archivo de Movimientos ordenado por Clave y cod_mov


reg_mov: Movimientos

Subaccion Leer_Mae es:


Leer(Arch_Clientes, reg_clientes)
Si FDA(Arch_Clientes) entonces
reg_clientes.Clave := HV
Fin Si
Fin Subaccion

Subaccion Leer_Mov es:


Leer(Arch_Mov, reg_mov)
Si FDA(Arch_Mov) entonces
reg_mov.Clave := HV
Fin Si
Fin Subaccion

Subaccion Proceso_Modif es:


Mientras (reg_clientes.Clave = reg_mov.Clave) hacer
Si (cod_mov = 0) entonces
Esc("Error. El usuario ya se encuentra dado de alta.")
Sino
Si (cod_mov > 0 o cod_mov < 99) entonces
Segun reg_mov.tipo hacer
I: reg_clientes.saldo_actual :=
reg_clientes.saldo_actual + reg_mov.monto
E: reg_clientes.saldo_actual :=
reg_clientes.saldo_actual - reg_mov.monto
Fin Segun
Sino
Si (cod_mov = 99) entonces
reg_clientes.fecha_baja := reg_mov.fecha_mov
Fin Si
Fin Si
Leer_Mov
Fin Mientras
Esc(Clientes_Act, reg_clientes)
Leer_Mae
Fin Subaccion

Subaccion Proceso_Alta es:


Si (cod_mov = 0) entonces
reg_clientes.id_sucursal := reg_mov.id_sucursal
reg_clientes.id_cliente := reg_mov.id_cliente
reg_clientes.nom_y_ape := reg_mov.nom_y_ape
reg_clientes.saldo_actual := 0
reg_clientes.fecha_alta := reg_mov.fecha_mov
reg_clientes.fecha_baja := ""
cont_altas := cont_altas + 1
Leer_Mov
Proceso_Modif
Fin Si
Fin Subaccion

Proceso
Abrir E/(Arch_Clientes)
Abrir E/(Arch_Mov)
Abrir S/(Clientes_Act)
Leer_Mae
Leer_Mov
cont_altas := 0
Mientras (reg_clientes.Clave <> HV o reg_mov.Clave <> HV) hacer
Si (reg_clientes.Clave < reg_mov.Clave) entonces
Esc(Clientes_Act, reg_clientes)
Leer_Mae
Sino
Si (reg_clientes.Clave = reg_mov.Clave) entonces
Proceso_Modif
Sino
Proceso_Alta
Fin Si
Fin Si
Fin Mientras
Esc("Total de Altas: ", cont_altas)
Cerar(Arch_Clientes)
Cerar(Arch_Mov)
Cerar(Clientes_Act)
Fin Accion

Punto 2

Accion Informe_Banco es:


Ambiente
Fecha = Registro
dia: 1...31
mes: 1...12
anio: n(4)
Fin Registro

Clientes = Registro
Clave = Registro
id_sucursal: n(5)
id_cliente: n(6)
Fin Registro
nom_y_ape: an(100)
saldo_actual: real
fecha_alta: Fecha
fecha_baja: Fecha
Fin Registro

Clientes_Act, Arch_Clientes: Archivo de Clientes ordenado por Clave


reg_clientes: Clientes

Sucursales = Registro
id_suc: n(5)
nom_suc: an(100)
direccion: an(100)
localidad: an(100)
Fin Sucursales

Arch_Suc: Archivo de Sucursales indexado por id_suc


reg_suc: Sucursales
M: arreglo de [1...16, 1...4] de enteros
i: 1...16
j: 1...4

Proceso
Para i = 1 hasta 16 hacer
Para j = 1 hasta 5 hacer
M[i, j] := 0
Fin Para
Fin Para

Abrir E/(Arch_Clientes)
Abrir E/(Arch_Suc)
Leer(Arch_Clientes, reg_clientes)

reg_suc.id_suc := reg_clientes.Clave.id_suc
Leer(Arch_Suc, reg_suc)

Si EXISTE entonces
Mientras (reg_suc.id_suc = reg_clientes.Clave.id_suc) hacer
//itero sobre las filas
Para i = 1 hasta 16 hacer
Segun (reg_clientes.saldo_actual) hacer
< 100000:
M[i, 3] := M[i, j] + 1
M[i, 4] := M[i, 4] + 1
M[16, j] := M[16, j] + 1
< 1500000:
M[i, 2] := M[i, j] + 1
M[i, 4] := M[i, 4] + 1
M[16, j] := M[16, j] + 1
> 1500000:
M[i, 1] := M[i, j] + 1
M[i, 4] := M[i, 4] + 1
M[16, j] := M[16, j] + 1
Fin Segun
Fin Para
Leer(Arch_Clientes)
Fin Mientras
Sino
Esc("Sucursal no encontrada")
Fin Si

Esc("CATEGORIA DIAMANTE CATEGORIA ORO CATEGORIA ESTANDAR TOTAL POR


SUCURSAL")
Para i = 1 hasta 16 hacer
Si i = 16 entonces
Esc("TOTAL POR CATEGORIA)
Sino
Esc("Sucursal: ", i)
Fin Si
Para j = 1 hasta 4 hacer
Esc(M[i, j])
Fin Para
Fin Para
Cerar(Arch_Clientes)
Cerar(Arch_Mov)
Fin Accion

También podría gustarte