IDENTIFICATION DIVISION.
PROGRAM-ID. INDEX-FILE.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT IN-FILE ASSIGN TO DISK
ORGANIZATION IS INDEXED
ACCESS MODE IS RANDOM
RECORD KEY IS NUM.
DATA DIVISION.
FILE SECTION.
FD IN-FILE
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID IS "INDEX.DAT"
DATA RECORDS ARE IN-REC.
01 IN-REC.
02 NAME PIC X(25).
02 SALARY PIC 9(8)V99.
02 ADDRESS PIC X(40).
02 NUM PIC 9(5).
WORKING-STORAGE SECTION.
77 N PIC ZZZZ9.
77 SAL PIC ZZZZ9.99.
77 CH PIC X.
PROCEDURE DIVISION.
MAIN-PARA.
OPEN OUTPUT IN-FILE.
MOVE "Y" TO CH.
PERFORM ACCEPT-PARA UNTIL (( CH = "N" ) OR (CH = "n" )).
CLOSE IN-FILE.
STOP-PARA.
OPEN INPUT IN-FILE.
DISPLAY (1 , 1) ERASE.
DISPLAY (6 , 2) "DO YOU WANT TO RETRIEVE THE RECORDS [Y/N]? : ".
ACCEPT (6, 48) CH.
IF (( CH = "Y" ) OR ( CH = "y" ))
PERFORM DISPLAY-PARA UNTIL (( CH = "N" ) OR ( CH = "n" ))
ELSE
GO TO CLOSING-PARA.
CLOSING-PARA.
CLOSE IN-FILE.
LAST-PARA.
STOP RUN.
ACCEPT-PARA.
DISPLAY (1, 1) ERASE.
DISPLAY (1, 10) "ENTER THE RECORD DETAILS ".
DISPLAY (2, 10) "************************".
DISPLAY (6, 10) "ENTER NAME :".
ACCEPT (6, 45) NAME.
DISPLAY (8, 10) "ENTER SALARY :".
ACCEPT (8, 45) SALARY.
DISPLAY (10 10) "ENTER ADDRESS :".
ACCEPT (10, 45) ADDRESS.
DISPLAY (12, 10) "ENTER NUMBER :".
ACCEPT (12, 45) NUM.
WRITE IN-REC INVALID KEY GO TO ERROR-PARA.
DISPLAY (14, 1) "DO YOU WANT TO ENTER ONE MORE RECORD [Y/N]? : ".
ACCEPT (14, 48) CH.
ERROR-PARA.
DISPLAY "ERROR IN EMPLOYEE'S NUMBER".
DISPLAY "IT MAY BE SAME OR LESS THAN THE PREVIOUS NUMBER".
DISPLAY "THIS RECORD ID NOT WRITTEN IN TO THE FILE.".
GO TO ACCEPT-PARA.
DISPLAY-PARA.
DISPLAY (1, 1) ERASE.
DISPLAY (8, 10) "ENTER THE NUMBER :".
ACCEPT (8, 45) NUM.
READ IN-FILE INVALID KEY GO TO E-PARA.
DISPLAY (10, 10) "NAME :" NAME.
MOVE NUM TO N.
DISPLAY (12, 10) "NUMBER :" N.
MOVE SALARY TO SAL.
DISPLAY (14, 10) "SALARY :" SAL.
DISPLAY (16, 10) "ADDRESS :" ADDRESS.
DISPLAY (18, 1) "DO YOU WANT TO SEE ONE MORE RECORD [Y/N]? : ".
ACCEPT (18, 48) CH.
E-PARA.
DISPLAY (1, 1) ERASE.
DISPLAY (10, 10) "GIVEN EMPLOYEE NUMBER MAY NOT BE FOUND".
DISPLAY (12, 10) "TRY ONCE AGAIN.".
DISPLAY " ".
GO TO DISPLAY-PARA.