💼 Curso avanzado: Sistema de Nómina en COBOL
📌 Módulo 1: Objetivo del sistema
Crear un programa COBOL que procese la nómina de empleados, calcule su salario neto y genere un reporte.
- Entrada: archivo con datos de empleados
- Proceso: cálculo de salario neto (sueldo base + bonificaciones - descuentos)
- Salida: reporte con nombre, salario bruto, descuentos y salario neto
📁 Módulo 2: Estructura del programa
IDENTIFICATION DIVISION.
PROGRAM-ID. NOMINA.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT EMPLEADOS ASSIGN TO 'empleados.txt'.
SELECT REPORTE ASSIGN TO 'reporte.txt'.
📄 Módulo 3: Definición de datos
DATA DIVISION.
FILE SECTION.
FD EMPLEADOS.
01 REG-EMP.
05 NOMBRE PIC A(30).
05 SUELDO-BRUTO PIC 9(5)V99.
05 BONIFICACION PIC 9(4)V99.
05 DESCUENTO PIC 9(4)V99.
FD REPORTE.
01 REG-REP.
05 REP-NOMBRE PIC A(30).
05 SALARIO-NETO PIC 9(6)V99.
WORKING-STORAGE SECTION.
01 EOF-FLAG PIC X VALUE 'N'.
88 FIN-ARCHIVO VALUE 'S'.
88 MAS-REGISTROS VALUE 'N'.
🔁 Módulo 4: Lógica de procesamiento
PROCEDURE DIVISION.
OPEN INPUT EMPLEADOS
OUTPUT REPORTE
PERFORM HASTA FIN-ARCHIVO
READ EMPLEADOS
AT END
SET FIN-ARCHIVO TO TRUE
NOT AT END
COMPUTE SALARIO-NETO = SUELDO-BRUTO + BONIFICACION - DESCUENTO
MOVE NOMBRE TO REP-NOMBRE
MOVE SALARIO-NETO TO SALARIO-NETO
WRITE REG-REP
END-READ
END-PERFORM
CLOSE EMPLEADOS
REPORTE
STOP RUN.
🧪 Módulo 5: Datos de prueba
empleados.txt
JUAN PEREZ 15000.00 2000.00 1500.00
ANA GOMEZ 18000.00 2500.00 1800.00
CARLOS DIAZ 12000.00 1000.00 800.00
El programa generará reporte.txt con los salarios netos calculados.
🖥️ Módulo 6: Compilación y ejecución
- Usá
GnuCOBOL
para compilar en sistemas modernos - Compilá con:
cobc -x nomina.cbl
- Ejecutá con:
./nomina
📊 Módulo final: Extensiones posibles
- Agregar cálculo de impuestos
- Incluir fecha de pago y número de legajo
- Generar reporte en formato CSV
- Integrar con base de datos DB2 o pantalla CICS