Full Code:
***************************** Top of Data ******************************
IDENTIFICATION DIVISION.
PROGRAM-ID. RT7801.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT CTL-CARD ASSIGN TO DD1
FILE STATUS IS CTL-CARD-STAT.
SELECT SRH-FILE ASSIGN TO DD2
FILE STATUS IS SRH-FILE-STAT.
DATA DIVISION.
FILE SECTION.
FD CTL-CARD
RECORDING MODE IS F.
01 CTL-CARD-REC PIC X(80).
FD SRH-FILE
RECORDING MODE IS F.
01 SRH-FILE-REC PIC X(80).
WORKING-STORAGE SECTION.
01 CTL-CARD-STAT PIC XX VALUE SPACES.
88 CTL-CARD-STAT-OK VALUE '00'.
01 SRH-FILE-STAT PIC XX VALUE SPACES.
88 SRH-FILE-STAT-OK VALUE '00'.
01 WS-END-OF-CTL-CARD PIC X VALUE SPACES.
88 END-OF-CTL-CARD VALUE 'Y'.
01 S-EMP-ID1 PIC X(6).
01 S-AMT1 PIC 9(4).
****** CONTROL CARD *********
01 CTL-CARD-RECORD.
05 EMP-ID PIC X(6).
05 FILLER PIC X(3).
05 EMP-NAME PIC X(12).
05 FILLER PIC X(3).
05 EMP-SALARY PIC 9(5)V9(2) DISPLAY VALUE ZEROES.
05 FILLER PIC X(48).
****** SEARCH FILE LAYOUT *****
01 SRH-FILE-RECORD.
05 S-EMP-ID PIC X(6).
05 F PIC X.
05 S-AMT PIC 9(4).
01 TBL.
05 EMP-TBL OCCURS 5 TIMES INDEXED BY TBL-IDX.
10 TBL-EMP-ID PIC X(6).
10 FILLER PIC X(3).
10 TBL-NAME PIC X(12).
10 FILLER PIC X(3).
10 TBL-SALARY PIC 9(5)V9(2) DISPLAY VALUE ZEROES.
10 FILLER PIC X(48).
PROCEDURE DIVISION.
0000-MAIN.
PERFORM 1000-INITIAL-PARA THRU 1000-EXIT.
PERFORM 3000-EXEC-TABLE THRU 3000-EXIT.
PERFORM 4000-CLOSE-PARA THRU 4000-EXIT.
GOBACK.
1000-INITIAL-PARA.
OPEN INPUT CTL-CARD.
OPEN INPUT SRH-FILE.
IF NOT CTL-CARD-STAT-OK
DISPLAY 'PROBLEM IN OPENING FILE'.
IF NOT SRH-FILE-STAT-OK
DISPLAY 'PROBLEM IN OPENING FILE'.
PERFORM 2000-LOAD-TABLE THRU 2000-EXIT.
1000-EXIT.
EXIT.
2000-LOAD-TABLE.
DISPLAY 'GOING TO READ FILE'.
SET TBL-IDX TO 1.
READ CTL-CARD INTO EMP-TBL(TBL-IDX)
AT END
DISPLAY 'NO DATA IN CONTROL CARD'
END-READ.
DISPLAY "*********TABLE*********".
PERFORM 2100-READ-REC THRU 2100-EXIT UNTIL
END-OF-CTL-CARD.
PERFORM 2200-UPDATE-TABLE THRU 2200-EXIT.
2000-EXIT.
EXIT.
2100-READ-REC.
IF NOT CTL-CARD-STAT-OK
DISPLAY 'PROBLEM IN READING CONTROL CARD'.
DISPLAY EMP-TBL(TBL-IDX).
SET TBL-IDX UP BY 1.
READ CTL-CARD INTO EMP-TBL(TBL-IDX)
AT END
SET END-OF-CTL-CARD TO TRUE
END-READ.
2100-EXIT.
EXIT.
2200-UPDATE-TABLE.
DISPLAY "*********UPDATED TABLE*********".
READ SRH-FILE INTO SRH-FILE-RECORD
AT END
DISPLAY 'NO DATA'
END-READ.
MOVE S-AMT TO S-AMT1.
DISPLAY S-AMT1.
PERFORM WITH TEST BEFORE VARYING TBL-IDX
FROM 1 BY 1 UNTIL TBL-IDX = 5
ADD S-AMT1 TO TBL-SALARY(TBL-IDX)
DISPLAY EMP-TBL(TBL-IDX)
END-PERFORM.
2200-EXIT.
EXIT.
3000-EXEC-TABLE.
DISPLAY "*******EXEC-TABLE********".
READ SRH-FILE INTO SRH-FILE-RECORD
AT END
DISPLAY 'NO DATA'
END-READ.
MOVE S-EMP-ID TO S-EMP-ID1.
DISPLAY S-EMP-ID1.
SET TBL-IDX TO 1.
SEARCH EMP-TBL
AT END
DISPLAY 'NO MATCH FOUND'
WHEN S-EMP-ID1 = TBL-EMP-ID(TBL-IDX)
DISPLAY 'EMP FOUND'
DISPLAY EMP-TBL(TBL-IDX)
CONTINUE
SET TBL-IDX UP BY 1
END-SEARCH.
3000-EXIT.
EXIT.
4000-CLOSE-PARA.
CLOSE CTL-CARD.
4000-EXIT.
EXIT.
2500-EXIT.
EXIT.
STOP RUN.
**************************** Bottom of Data ****************************
the INPUT FILE & SEARCH FILE ARE:
INPUT:
***************************** Top of Data ******************************
000010 UTPAL 20000.00
000011 NEHA 25000.90
000012 ETI 29000.56
000013 ABHISHEK 27589.36
**************************** Bottom of Data ****************************
Search:
***************************** Top of Data ******************************
000012 1000
**************************** Bottom of Data ****************************
Output:
********************************* TOP OF DATA **********************************
GOING TO READ FILE
*********TABLE*********
000010 UTPAL 20000.00
000011 NEHA 25000.90
000012 ETI 29000.56
000013 ABHISHEK 27589.36
*********UPDATED TABLE*********
0
CEE3207S The system detected a data exception (System Completion Code=0C7).
From compile unit RT7801 at entry point RT7801 at compile unit offset +00000938 at entry offset +00000938 at
address 0A500938.
******************************** BOTTOM OF DATA ********************************