Monday, June 6, 2011

P4:Write a program for retrieval from a sequential file.


IDENTIFICATION DIVISION.
        PROGRAM-ID. SEQ-RET.
        ENVIRONMENT DIVISION.
        CONFIGURATION SECTION.
        INPUT-OUTPUT SECTION.
        FILE-CONTROL.
                SELECT STUD-FILE ASSIGN TO DISK
                ORGANIZATION IS LINE SEQUENTIAL.
                SELECT STUD-REPORT ASSIGN TO DISK
                ORGANIZATION IS LINE SEQUENTIAL.
        DATA DIVISION.
        FILE SECTION.
        FD  STUD-FILE
            LABEL RECORDS ARE STANDARD
            VALUE OF FILE-ID IS "STUD1.DAT".
        01  STUD-REC.
            02 ROLL-NO  PIC     9(5).
            02 NAME     PIC     X(20).
            02 SUBJECT  PIC     X(10).
            02  MARKS   PIC     99.
        FD  STUD-REPORT
            LABEL RECORDS ARE STANDARD
            VALUE OF FILE-ID IS "STUD2.DAT".
        01  STUD-OUT-REC        PIC     X(80).
        WORKING-STORAGE SECTION.
        77  TMARKS      PIC     999.
        77  R-NUM       PIC     9(5).
        77  NOS         PIC     X(20).
        77  A           PIC     999.
        01  MAIN-HEADING.
            02 FILLER   PIC X(7)  VALUE "ROLL-NO".
            02 FILLER   PIC X(4)  VALUE SPACES.
            02 FILLER   PIC X(20) VALUE "NAME".
            02 FILLER   PIC X     VALUE SPACES.
            02 FILLER   PIC X(7)  VALUE "SUBJECT".
            02 FILLER   PIC X(12) VALUE SPACES.
            02 FILLER   PIC X(5)  VALUE "MARKS".
         01 ASTERISK2.
            02 FILLER   PIC X(55) VALUE ALL SPACES.
            02 HASH1    PIC X(15) VALUE ALL "-".
         01 ASTERISK1   PIC X(70) VALUE ALL "*".
         01 DETAIL.
            02 ROLL-NUM  PIC Z(5).
            02 NAME-STUD PIC B(6)X(21).
            02 SUB-NAME  PIC X(20).
            02 AGRMARKS1 PIC Z9.
         01 TOTAL-MARK.
            02 FILLER    PIC X(55) VALUE SPACES.
            02 FILLER    PIC X(11) VALUE "TOTAL-MARK:".
            02 AGRMARKS2 PIC ZZZ.
         PROCEDURE DIVISION.
         START-PARA.
                OPEN INPUT STUD-FILE OUTPUT STUD-REPORT.
                WRITE STUD-OUT-REC FROM MAIN-HEADING
                WRITE STUD-OUT-REC FROM ASTERISK1.
                READ STUD-FILE AT END GO TO LAST-PARA.
          READ1.
                MOVE ROLL-NO TO ROLL-NUM.
                MOVE ROLL-NO TO R-NUM.
                MOVE NAME TO NAME-STUD NOS.
                MOVE SUBJECT TO SUB-NAME.
                MOVE MARKS TO AGRMARKS1.
                MOVE MARKS TO A.
                WRITE STUD-OUT-REC FROM DETAIL.
          READ2.
                READ STUD-FILE AT END GO TO LAST-PARA.
                IF (ROLL-NO = R-NUM)
                   MOVE SUBJECT TO SUB-NAME
                   MOVE MARKS TO TMARKS AGRMARKS1
                   ADD TMARKS TO A
                   MOVE 0 TO ROLL-NUM
                   MOVE SPACES TO NAME-STUD
                   WRITE STUD-OUT-REC FROM DETAIL
                   GO TO READ2.
          TOTAL.
                MOVE A TO AGRMARKS2.
                WRITE STUD-OUT-REC FROM ASTERISK2.
                WRITE STUD-OUT-REC FROM TOTAL-MARK.
                WRITE STUD-OUT-REC FROM ASTERISK2.
                GO TO READ1.
          LAST-PARA.
                MOVE A TO AGRMARKS2.
                WRITE STUD-OUT-REC FROM ASTERISK2.
                WRITE STUD-OUT-REC FROM TOTAL-MARK.
                WRITE STUD-OUT-REC FROM ASTERISK2.
                CLOSE STUD-FILE STUD-REPORT
                STOP RUN.

No comments:

Post a Comment