Monday, June 6, 2011

P7: Write a program for creation of an Indexed file.


 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.

No comments:

Post a Comment