COBOL FOR 21st CENTURY 11th EDITION Question2 page 298 Write
COBOL FOR 21st CENTURY, 11th EDITION. Question#2 page 298. Write a program to print out information for each employee. The problem definition is shown below: Notes: a. Each employee’s salary is to be increased by 7% b. The union dues have increased by 4% c. The insurance has increased by 3% d. The amounts for dues and insurance are to be printed with actual decimal points.
Solution
IDENTIFICATION DIVISION.
PROGRAM-ID. EXP2.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT IN-EMP-FILE ASSIGN TO DISK
ORGANIZATION IS LINE SEQUENTIAL.
SELECT OUT-PAYROLL-FILE ASSIGN TO DISK
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD IN-EMP-FILE
LABEL RECORDS ARE STANDARD
RECORD CONTAINS 80 CHARACTERS
VALUE OF FILE-ID IS \"INPUTEMP.TXT\"
DATA RECORD IS IN-EMP-REC.
01 IN-EMP-REC.
05 IN-EMP-NUM PIC X(5).
05 IN-EMP-NAME PIC X(20).
05 UN1 PIC X(4).
05 IN-SAL PIC 9(6).
05 UN2 PIC X(13).
05 IN-UNI PIC 9(5).
05 IN-INS PIC 9(5).
05 UN3 PIC X(22).
FD OUT-PAYROLL-FILE
LABEL RECORDS ARE STANDARD
RECORD CONTAINS 400 CHARACTERS
VALUE OF FILE-ID IS \"PAYROLL.TXT\"
DATA RECORD IS PRINT-REC.
01 PRINT-REC PIC X(400).
WORKING-STORAGE SECTION.
01 WS-WORK-AREAS.
05 ARE-THERE-MORE-RECORDS PIC X(3) VALUE \'YES\'.
05 U PIC 9(5)v99.
05 I PIC 9(5)v99.
05 WS-DATE.
10 WS-YEAR PIC 99.
10 WS-MONTH PIC 99.
10 WS-DAY PIC 99.
01 OUT-HDR1.
05 FILLER PIC X(30)
VALUE \'PAYROLL\'.
05 FILLER PIC X(6)
VALUE \'DATE\'.
05 OUT-MONTH PIC XX.
05 FILLER PIC X VALUE \'/\'.
05 OUT-DAY PIC XX.
05 FILLER PIC X VALUE \'/\'.
05 OUT-YEAR PIC XX.
01 OUT-HDR2.
05 FILLER PIC X(30).
05 FILLER PIC X(30)
VALUE \'PAYROLL FILE\'.
01 OUT-HDR3.
05 FILLER PIC X(15)
VALUE \'ACCT NO.\'.
05 FILLER PIC X(30)
VALUE \'NAME OF EMPLOYEE\'.
05 FILLER PIC X(19)
VALUE \'OLD SALARY\'.
05 FILLER PIC X(15)
VALUE \'NEW SALARY\'.
05 FILLER PIC X(10)
VALUE \'OLD DUES\'.
05 FILLER PIC X(10)
VALUE \'NEW DUES\'.
05 FILLER PIC X(20)
VALUE \'OLD INSUR\'.
05 FILLER PIC X(10)
VALUE \'NEW INSUR\'.
01 OUT-PAYROLL-REC.
05 OUT-EMP-NUM PIC X(5).
05 FILLER PIC X(10).
05 OUT-EMP-NAME PIC X(20).
05 FILLER PIC X(4).
05 OUT-SAL PIC Z(6).
05 FILLER PIC X(20).
05 OUT-NSAL PIC Z(6).
05 FILLER PIC X(20).
05 OUT-UNI PIC Z(5).
05 FILLER PIC X(10).
05 OUT-NUNI PIC Z(5).99.
05 FILLER PIC X(10).
05 OUT-INS PIC Z(5).
05 FILLER PIC X(15).
05 OUT-NINS PIC Z(5).99.
05 FILLER PIC X(20).
PROCEDURE DIVISION.
100-MAIN-MODULE.
OPEN INPUT IN-EMP-FILE
OUTPUT OUT-PAYROLL-FILE.
ACCEPT WS-DATE FROM DATE.
MOVE WS-MONTH TO OUT-MONTH.
MOVE WS-DAY TO OUT-DAY.
MOVE WS-YEAR TO OUT-YEAR.
WRITE PRINT-REC FROM OUT-HDR1.
WRITE PRINT-REC FROM OUT-HDR2.
WRITE PRINT-REC FROM OUT-HDR3.
READ IN-EMP-FILE
AT END MOVE \'NO\' TO ARE-THERE-MORE-RECORDS.
PERFORM 200-CALC-RTN UNTIL ARE-THERE-MORE-RECORDS = \'NO\'.
CLOSE IN-EMP-FILE
CLOSE OUT-PAYROLL-FILE.
STOP RUN.
200-CALC-RTN.
MOVE IN-EMP-NUM TO OUT-EMP-NUM.
MOVE IN-EMP-NAME TO OUT-EMP-NAME.
MOVE IN-SAL TO OUT-SAL.
COMPUTE IN-SAL = IN-SAL + IN-SAL * .07.
MOVE IN-SAL TO OUT-NSAL.
MOVE IN-UNI TO OUT-UNI.
COMPUTE U = IN-UNI + (IN-UNI * .04).
MOVE U TO OUT-NUNI.
MOVE IN-INS TO OUT-INS.
COMPUTE I = IN-INS + IN-INS * .03.
MOVE I TO OUT-NINS.
WRITE PRINT-REC FROM OUT-PAYROLL-REC.
READ IN-EMP-FILE
AT END MOVE \'NO\' TO ARE-THERE-MORE-RECORDS.



