Logo 
Search:

Cobol Articles

Submit Article
Home » Articles » Cobol » Homework HelpRSS Feeds

PROGRAM TO GENERATE A STUDENT MARKSHEET USING FILE READ AND WRITE OPERATION

Posted By: Zoe Hughes     Category: Cobol     Views: 10154

WRITE A PROGRAM TO GENERATE A STUDENT MARKSHEET USING FILE READ AND WRITE OPERATION.

Code for PROGRAM TO GENERATE A STUDENT MARKSHEET USING FILE READ AND WRITE OPERATION in Cobol

       IDENTIFICATION DIVISION.
        PROGRAM-ID. T1.

       ENVIRONMENT DIVISION.
        INPUT-OUTPUT SECTION.
        FILE-CONTROL.
         SELECT INP-FILE ASSIGN TO DISK
         ORGANIZATION IS LINE SEQUENTIAL.
         SELECT OUT-FILE ASSIGN TO DISK
         ORGANIZATION IS LINE SEQUENTIAL.

       DATA DIVISION.
        FILE SECTION.
         FD INP-FILE VALUE OF FILE-ID IS "RESULT.DAT".
         01 IN-REC.
          05 IN-ROLL PIC 99.
          05 IN-NAME PIC X(28).
          05 IN-MARKS PIC 99 OCCURS 5 TIMES.
         
         FD OUT-FILE VALUE OF FILE-ID IS "STUREP.RPT".
          
          
          01 REC-OUT.
           05 OUT-ROLL PIC 99.
           05 FILLER PIC XXXX.
           05 OUT-NAME PIC X(10).
           05 OUT-MARKS PIC Z99 OCCURS 5 TIMES.
           05 FILLER PIC X.
           05 OUT-TOTAL PIC 999 VALUE ZEROS.
           05 FILLER PIC X.
           05 OUT-PER PIC 99.99 VALUE ZEROS. 
           05 FILLER PIC X.
           05 OUT-RES PIC X(15).
           05 FILLER PIC X.
           
           WORKING-STORAGE SECTION.
           01 PLINE PIC X(80) VALUE ALL "=".
           01 HEAD-LINE PIC X(50)
              VALUE "NO    NAME         MARK      TOT  PER    CLASS  ".
           
           01 DETAIL-LINE.
             05 FILLER PIC X(7) VALUE "DIST:".
             05 T-DIST PIC 99 VALUE 0.
             05 FILLER PIC X(1).
             05 FILLER PIC X(8) VALUE "FIRST:".
             05 T-FIRST PIC 99 VALUE 0.
             05 FILLER PIC X(1).
             05 FILLER PIC X(9) VALUE "SECOND:".
             05 T-SEC PIC 99 VALUE 0.
             05 FILLER PIC X(1).
             05 FILLER  PIC X(7) VALUE "PASS:".
             05 T-PASS PIC 99 VALUE 0.
             05 FILLER PIC X(1).
             05 FILLER PIC X(7) VALUE "FAIL:".
             05 T-FAIL PIC 99 VALUE 0.
           
           01 EOF PIC X VALUE 'Y'.
           01 I PIC 9.
           01 T-MARKS PIC 99 OCCURS 5 TIMES.
           01 T-TOTAL PIC 999 VALUE 0.
           01 T-PER PIC 99V99.
       PROCEDURE DIVISION.  
        PARA1.
          
         OPEN INPUT INP-FILE.
         OPEN OUTPUT OUT-FILE.
           WRITE REC-OUT FROM PLINE.
           WRITE REC-OUT FROM HEAD-LINE BEFORE ADVANCING 1 LINE.
           WRITE REC-OUT FROM PLINE.
           PERFORM UNTIL EOF = 'N'
             READ INP-FILE
               AT END MOVE 'N' TO EOF
               NOT AT END PERFORM PARA2
             END-READ
           END-PERFORM.
           WRITE REC-OUT FROM PLINE.
           WRITE REC-OUT FROM DETAIL-LINE AFTER ADVANCING 1 LINES.
         CLOSE INP-FILE.
         CLOSE OUT-FILE.
           STOP RUN.
       
        PARA2.
         MOVE SPACE TO REC-OUT.
         MOVE IN-ROLL TO OUT-ROLL.
         MOVE IN-NAME TO OUT-NAME.
         PERFORM VARYING I FROM 1 BY 1 UNTIL I > 5
          COMPUTE T-TOTAL=T-TOTAL + IN-MARKS(I)
          MOVE IN-MARKS(I) TO OUT-MARKS(I)
         END-PERFORM.
         COMPUTE T-PER=T-TOTAL / 5.
         MOVE T-TOTAL TO OUT-TOTAL.
         MOVE T-PER TO OUT-PER.
         PERFORM VARYING I FROM 1 BY 1 UNTIL I > 5   
           IF IN-MARKS(I) < 40
              MOVE ZEROS TO T-PER
           END-IF
         END-PERFORM.
         EVALUATE T-PER
         WHEN 70 THRU 100
           MOVE "DISTINCTION" TO OUT-RES
           ADD 1 TO T-DIST
      *     MOVE ZEROS TO T-DST
         WHEN 60 THRU 69
           MOVE "FIRST CLASS" TO OUT-RES
           ADD 1 TO T-FIRST
         WHEN 50 THRU 59
           MOVE "SECPND CLASS" TO OUT-RES
           ADD 1 TO T-SEC
         WHEN 45 THRU 49
           MOVE "PASS" TO OUT-RES
           ADD 1 TO T-PASS
         WHEN 0 THRU 44
           MOVE "FAIL" TO OUT-RES
           ADD 1 TO T-FAIL
         END-EVALUATE.
         
         WRITE REC-OUT.
          MOVE 0 TO T-TOTAL.

/*********************************************************************************************
INPUT FILE - RESULT.DAT
*********************************************************************************************/
01vd 9990898888 02JAYANT 9090909090 03VISHAL 4040404040 04DHIREN 6040609090 05FALGUN 5050305060 /*********************************************************************************************
OUTPUT FILE - STUREP.RPT
*********************************************************************************************/
========================================================== NO NAME MARK TOT PER CLASS ========================================================== 01 vd 99 90 89 88 88 454 90.80 DISTINCTION 02 JAYANT 90 90 90 90 90 450 90.00 DISTINCTION 03 VISHAL 40 40 40 40 40 200 40.00 FAIL 04 DHIREN 60 40 60 90 90 340 68.00 FIRST CLASS 05 FALGUN 50 50 30 50 60 240 48.00 FAIL ========================================================== DIST: 02 FIRST: 01 SECOND: 00 PASS: 00 FAIL: 02
  
Share: 



Zoe Hughes
Zoe Hughes author of PROGRAM TO GENERATE A STUDENT MARKSHEET USING FILE READ AND WRITE OPERATION is from London, United Kingdom.
 
View All Articles

 
Please enter your Comment

  • Comment should be atleast 30 Characters.
  • Please put code inside [Code] your code [/Code].

 
No Comment Found, Be the First to post comment!