Programa de Cajero Bancario en FoxPro: Apertura, Consignación y Préstamos

Other foreign languages22.05 KB

Programa Bancario en FoxPro: Banco del Pueblo

Este programa simula las operaciones básicas de un sistema bancario desarrollado en FoxPro. Utiliza bases de datos para gestionar clientes, operaciones y préstamos.

Configuración inicial

Se seleccionan las bases de datos de clientes, operación y préstamos, y se configura la fuente de la ventana.

SELECT 1

USE clientes

SELECT 2

USE operacion

SELECT 3

USE prestamos

MODIFY WINDOW screen FONT "Courier New", 12

Declaración de variables

mnombre = SPACE(20)

mapellido = SPACE(20)

mdireccion = SPACE(30)

mfijo = 0

mcel = 0

mcodigo = 0

mdinero = 0

mconsigna = 0

mretiro = 0

mdisponible = mdinero - 50000

Menú principal

DO WHILE .T.

CLEAR

SET COLOR TO GR+/B*

@1,30 SAY "BANCO DEL PUEBLO" FONT "Comic Sans MS", 80

@10,7 TO 23,40 PEN 5 STYLE "60"

@11,8 SAY "1) Apertura de cuenta"

@12,8 SAY "2) Consignación"

@13,8 SAY "3) Retiro"

@14,8 SAY "4) Consulta de saldo"

@15,8 SAY "5) Cinco últimos movimientos"

@17,8 SAY "6) Solicitud de préstamo"

@18,8 SAY "7) Consulta de cartera"

@20,8 SAY "8) Pago de cuotas"

@21,8 SAY "9) Salida"

@16.5,7 TO 19.5,40 PEN 5

mop = 0

@10,50 SAY "Por favor seleccione una de las opciones mostradas en la tabla:" GET mop VALID mop <= 9 .AND. mop > 0

READ

DO CASE

CASE mop = 9

DO salida

RETURN

CASE mop = 1

DO apertura

LOOP

CASE mop = 2

DO consignacion

LOOP

CASE mop = 3

DO retiro

LOOP

CASE mop = 4

DO consulta

LOOP

CASE mop = 6

DO prestamo

LOOP

ENDCASE

ENDDO

Procedimiento: Apertura de cuenta

PROCEDURE apertura

SELECT 1

mnombre = SPACE(20)

mapellido = SPACE(20)

mdireccion = SPACE(30)

mfijo = 0

mcel = 0

mcodigo = 0

@24,13 TO 43,90 PEN 6 STYLE "66"

@27,15 SAY "Ingrese su código:" GET mcodigo PICTURE "###########"

READ

IF mcodigo = 0

@22,45 SAY "Ingrese su documento"

j = INKEY(3)

RETURN

ENDIF

LOCATE FOR codigo = mcodigo

IF .NOT. EOF()

@22,45 SAY "Su cuenta se encuentra abierta..."

j = INKEY(3)

RETURN

ENDIF

@27,15 SAY "Ingrese su nombre:" GET mnombre PICTURE "@!"

@29,15 SAY "Ingrese sus apellidos:" GET mapellido PICTURE "@!"

@31,15 SAY "Ingrese su dirección:" GET mdireccion PICTURE "@!"

@33,15 SAY "Ingrese su teléfono fijo:" GET mfijo PICTURE "#######"

@35,15 SAY "Ingrese su teléfono celular:" GET mcel PICTURE "###########"

@37,15 SAY "Monto inicial (mínimo 50000)" GET mdinero PICTURE "##########" VALID mdinero >= 50000

READ

mop = SPACE(1)

@22,45 SAY "¿Quiere guardar los datos? S/N" GET mop PICTURE "@!" VALID mop $ "SN"

READ

IF mop = "S"

APPEND BLANK

REPLACE codigo WITH mcodigo

REPLACE apellido WITH mapellido

REPLACE nombre WITH mnombre

REPLACE direccion WITH mdireccion

REPLACE telfijo WITH mfijo

REPLACE telcel WITH mcel

REPLACE saldo WITH mdinero

mactivo = .T.

REPLACE activo WITH mactivo

ELSE

@22,45 SAY "Deshaciendo datos"

j = INKEY(3)

RETURN

ENDIF

@39,15 SAY "SU CUENTA SE HA CREADO"

j = INKEY(3)

READ

SELECT 2

mtipo = "AP"

mfechora = DATETIME()

APPEND BLANK

REPLACE codigo WITH mcodigo

REPLACE tipo WITH mtipo

REPLACE saldof WITH mdinero

REPLACE fechora WITH mfechora

REPLACE monto WITH mdinero

RETURN

Procedimiento: Salida

PROCEDURE salida

@15,50 SAY "Cerrando el programa..." FONT "Comic Sans MS", 35

j = INKEY(2)

CLEAR

RETURN

Procedimiento: Consulta de saldo

PROCEDURE consulta

SELECT 1

mcodigo = 0

@24,13 TO 43,90 PEN 6 STYLE "66"

@27,15 SAY "Ingrese su código:" GET mcodigo PICTURE "###########"

READ

IF mcodigo = 0

@22,45 SAY "Ingrese su documento"

j = INKEY(3)

RETURN

ENDIF

LOCATE FOR codigo = mcodigo

IF EOF()

@22,45 SAY "Su cuenta no se encuentra abierta..."

j = INKEY(3)

RETURN

ENDIF

mdisponible = 0

@13,105 SAY "nombre: " + nombre

@15,105 SAY "apellido: " + apellido

@17,105 SAY "dirección: " + direccion

@19,105 SAY "tel fijo: " + LTRIM(STR(telfijo,15))

@21,105 SAY "tel cel: " + LTRIM(STR(telcel,15))

@23,105 SAY "código: " + LTRIM(STR(codigo,15))

@25,105 SAY "dinero: " + LTRIM(STR(saldo,15))

@24,13 TO 43,90 PEN 6 STYLE "66"

@30,15 SAY "Su saldo total es: " + LTRIM(STR(saldo,10)) + " señor " + nombre

mdisponible = saldo - 50000

@32,15 SAY "Su saldo disponible es: " + LTRIM(STR(mdisponible,10))

READ

RETURN

Procedimiento: Consignación

PROCEDURE consignacion

SELECT 1

mcodigo = 0

mconsigna = 0

@24,13 TO 43,90 PEN 6 STYLE "66"

@27,15 SAY "Ingrese su código:" GET mcodigo PICTURE "###########"

READ

IF mcodigo = 0

@22,45 SAY "Ingrese su documento"

j = INKEY(3)

RETURN

ENDIF

LOCATE FOR codigo = mcodigo

IF EOF()

@22,45 SAY "Su cuenta no se encuentra abierta..."

j = INKEY(3)

RETURN

ENDIF

@13,105 SAY "nombre: " + nombre

@15,105 SAY "apellido: " + apellido

@17,105 SAY "dirección: " + direccion

@19,105 SAY "tel fijo: " + LTRIM(STR(telfijo,15))

@21,105 SAY "tel cel: " + LTRIM(STR(telcel,15))

@23,105 SAY "código: " + LTRIM(STR(codigo,15))

@25,105 SAY "dinero: " + LTRIM(STR(saldo,15))

@24,13 TO 43,90 PEN 6 STYLE "66"

@30,17 SAY "¿Cuánto dinero va a consignar?" GET mconsigna PICTURE "#########"

READ

mdinerof = mconsigna + saldo

REPLACE saldo WITH mdinerof

SELECT 2

mtipo = "CO"

mfechora = DATETIME()

APPEND BLANK

REPLACE codigo WITH mcodigo

REPLACE tipo WITH mtipo

REPLACE saldof WITH mdinerof

REPLACE fechora WITH mfechora

REPLACE monto WITH mconsigna

RETURN

Procedimiento: Retiro

PROCEDURE retiro

SELECT 1

mcodigo = 0

mretiro = 0

@24,13 TO 43,90 PEN 6 STYLE "66"

@27,15 SAY "Ingrese su código:" GET mcodigo PICTURE "###########"

READ

IF mcodigo = 0

@22,45 SAY "Ingrese su documento"

j = INKEY(3)

RETURN

ENDIF

LOCATE FOR codigo = mcodigo

IF EOF()

@22,45 SAY "Su cuenta no se encuentra abierta..."

j = INKEY(3)

RETURN

ENDIF

@13,105 SAY "nombre: " + nombre

@15,105 SAY "apellido: " + apellido

@17,105 SAY "dirección: " + direccion

@19,105 SAY "tel fijo: " + LTRIM(STR(telfijo,15))

@21,105 SAY "tel cel: " + LTRIM(STR(telcel,15))

@23,105 SAY "código: " + LTRIM(STR(codigo,15))

@25,105 SAY "dinero: " + LTRIM(STR(saldo,15))

@30,15 SAY "¿Cuánto va a retirar? (tenga en cuenta el saldo disponible: " + LTRIM(STR(mdisponible,15)) + "):" GET mretiro PICTURE "##########" VALID mretiro <= mdisponible

READ

mdineron = saldo - mretiro

mdisponible = saldo - mretiro - 50000

REPLACE saldo WITH mdineron

SELECT 2

mtipo = "RE"

mfechora = DATETIME()

APPEND BLANK

REPLACE codigo WITH mcodigo

REPLACE tipo WITH mtipo

REPLACE saldof WITH mdineron

REPLACE fechora WITH mfechora

REPLACE monto WITH mretiro

RETURN

Procedimiento: Préstamo

PROCEDURE prestamo

SELECT 1

mcodigo = 0

@24,13 TO 43,90 PEN 6 STYLE "66"

@27,15 SAY "Ingrese su código:" GET mcodigo PICTURE "###########"

READ

IF mcodigo = 0

@22,45 SAY "Ingrese su documento"

j = INKEY(3)

RETURN

ENDIF

LOCATE FOR codigo = mcodigo

IF EOF()

@22,45 SAY "Su cuenta no se encuentra abierta..."

j = INKEY(3)

RETURN

ENDIF

@13,105 SAY "nombre: " + nombre

@15,105 SAY "apellido: " + apellido

@17,105 SAY "dirección: " + direccion

@19,105 SAY "tel fijo: " + LTRIM(STR(telfijo,15))

@21,105 SAY "tel cel: " + LTRIM(STR(telcel,15))

@23,105 SAY "código: " + LTRIM(STR(codigo,15))

@25,105 SAY "dinero: " + LTRIM(STR(saldo,15))

READ

mmpres = saldo * 10

mvpres = 0

mcuota = 0

@27,15 SAY "Mínima cantidad de dinero: 1000000"

@29,15 SAY "Máxima cantidad de dinero: 50000000"

@31,15 SAY "Su máximo préstamo teórico sería: " + LTRIM(STR(mmpres,15))

@33,15 SAY "¿Cuánto dinero necesita?" GET mvpres PICTURE "#########" VALID mvpres <= 50000000 .AND. mvpres <= mmpres .AND. mvpres >= 1000000

READ

@35,15 SAY "¿En cuántas cuotas lo quiere? (opciones: 12, 24, 36)" GET mcuota PICTURE "##" VALID mcuota = 12 OR mcuota = 24 OR mcuota = 36

READ

j = INKEY(0)

mpcuo = 0

IF mcuota = 12

mpcuo = 0.15

ENDIF

IF mcuota = 24

mpcuo = 0.18

ENDIF

IF mcuota = 36

mpcuo = 0.22

ENDIF

mcuom = 0

mcuom = ((mvpres * mpcuo) / mcuota) + (mvpres * mpcuo)

@37,15 SAY "Usted eligió: " + LTRIM(STR(mcuota,15)) + " número de cuotas y se le cobrará: " + LTRIM(STR(mcuom,15))

READ

j = INKEY(0)

mop = SPACE(1)

@22,45 SAY "¿Quiere guardar los datos? S/N" GET mop PICTURE "@!" VALID mop $ "SN"

READ

IF mop = "S"

SELECT 3

mfechora = DATETIME()

APPEND BLANK

REPLACE codigo WITH mcodigo

REPLACE montopres WITH mvpres

REPLACE plazo WITH mcuota

REPLACE cuotasp WITH mcuota

REPLACE valcuota WITH mcuom

REPLACE fechapres WITH mfechora

mactivo = .T.

REPLACE activo WITH mactivo

ELSE

@22,45 SAY "Deshaciendo datos"

j = INKEY(3)

RETURN

ENDIF

RETURN!

Download

PDF Word HTML