Logo 
Search:

Cobol Articles

Submit Article
Home » Articles » Cobol » Homework HelpRSS Feeds

School management system

Posted By: Victoria Hughes     Category: Cobol     Views: 5840

School management system in cobol using file operations.

PROGRAM WHICH READ THE MARKS FROM THE FILE GENERATE THE TOTAL,FIND PERSENTAGE & FIND CLASS AND THEN WRITE THE MARKSHEET IN THE FILE.

Code for School management system in Cobol

       IDENTIFICATION DIVISION.
       PROGRAM-ID.file-read-write.

       ENVIRONMENT DIVISION.
        INPUT-OUTPUT SECTION.
         FILE-CONTROL.
          SELECT  in-emp ASSIGN TO DISK
          ORGANIZATION IS LINE SEQUENTIAL.
          
          SELECT  out-emp ASSIGN TO DISK
          ORGANIZATION IS LINE SEQUENTIAL.

       DATA DIVISION.

        FILE SECTION.
         FD in-emp  
            VALUE OF FILE-ID IS "empin.txt".
          01 inemp-rec.
            05 rno1 PIC 99.
            05 name1 PIC x(20).
            05 marks1 PIC 99 OCCURS 5 TIMES.
         
         FD out-emp 
          VALUE OF FILE-ID IS "empout.txt".
            01 outemp-rec PIC X(80).
         
        WORKING-STORAGE SECTION.
          01 eof PIC x value'n'.
          01 I PIC 9.
          01 HEAD.
           05 H1 PIC x(30) VALUE "ROLL NAME                    ". 
           05 H2 PIC x(36) VALUE "<---MARKS--->       TOTAL PERSENTAGE".
           05 H3 PIC x(10) VALUE  "    RESULT".
          01 HEAD2.
           05 He1 PIC x(26) VALUE " NO                      ". 
           05 He2 PIC X(35) VALUE "  FOP FCO BDP BMA DMS".
          01 SUM1.
           05 F1 PIC  X(52) VALUE "DISTICTION FIRST SECOND  PASS  FAIL". 
          01 DASH.
            05  PIC X(80) VALUE ALL "-".
          01 det-line.
            05 drno PIC Z99.
            05 FILLER PIC XX.
            05 dname PIC X(22).
            05 dmarks PIC ZZ99 OCCURS 5 TIMES.
            05 dtot PIC zzzzzzz99.
            05 dper PIC zzzzzzz9.99.
            05 FILLER PIC XX.
            05 dresult PIC X(12).
          01 total PIC 999.
          01 per PIC 999V99.
          01 flag PIC 9 VALUE 0.
          01 TOTAL1.
            02 DT PIC 9 OCCURS 5 TIMES. 
          01 TOTAL2.  
            02 DT1 PIC ZZZZZZ9 OCCURS 5 TIMES.
        
        PROCEDURE DIVISION.
        para1.
           PERFORM 
           OPEN INPUT in-emp.
           OPEN OUTPUT out-emp.
           PERFORM READ1.
           CLOSE in-emp.
           CLOSE out-emp.
           STOP-RUN.
        
        READ1.
           PERFORM VARYING I FROM 1 BY 1 UNTIL I>5
             MOVE 0 TO DT(i)
             MOVE 0 TO DT1(i)
           END-PERFORM.
           READ in-emp 
              AT END MOVE 'y' TO eof
           END-READ.
           WRITE outemp-rec FROM HEAD. 
           WRITE outemp-rec FROM HEAD2.
           WRITE outemp-rec FROM DASH.
           PERFORM UNTIL eof='y'
            PERFORM WRITE1
             READ in-emp 
              AT END MOVE 'y' TO eof
             END-READ
           END-PERFORM.
           WRITE outemp-rec FROM DASH.
           WRITE outemp-rec FROM SUM1.          
           PERFORM VARYING I FROM 1 BY 1 UNTIL I>5
             MOVE DT(i) TO DT1(i)
           END-PERFORM.
           WRITE outemp-rec FROM TOTAL2.

         WRITE1. 
           MOVE 1 TO flag.
           MOVE 0 TO total.
           MOVE rno1 TO drno.
           MOVE name1 TO dname.
           PERFORM VARYING i FROM 1 BY 1 UNTIL i>5
             MOVE marks1(i) TO dmarks(i)
             ADD marks1(i) TO total
             IF marks1(i) < 40 
               MOVE 0 TO flag
             END-IF
           END-PERFORM. 
           MOVE total TO dtot.
           COMPUTE per = total * 100 / 500.
           MOVE per TO dper.

           IF flag=1 THEN
             IF per>=70 AND per<=100 THEN
               MOVE "distinction" TO dresult
               ADD 1 TO DT(1)
             ELSE
              IF per>=60 THEN
               MOVE "first class" TO dresult
               ADD 1 TO DT(2)
              ELSE
               IF PER>=50 THEN
                MOVE "second class" TO dresult
                ADD 1 TO DT(3)
               ELSE
                IF PER>=45 THEN
                 MOVE "pass class" TO dresult
                 ADD 1 TO DT(4) 
                ELSE
                 MOVE "fail" TO dresult
                 ADD 1 TO DT(5)
           ELSE
             MOVE "fail" TO dresult
             ADD 1 TO DT(5).
           
           WRITE outemp-rec FROM det-line. 



************************INPUT**********************************
01vd                  7585778085
02hemal               6550707050
03bharat              3050605545


************************OUTPUT**********************************
ROLL NAME                     <---MARKS--->       TOTAL PERSENTAGE    RESULT
 NO                         FOP FCO BDP BMA DMS
--------------------------------------------------------------------------------
 01  vd                      75  85  77  80  85      402      80.40  distinction
 02  hemal                   65  50  70  70  50      305      61.00  first class
 03  bharat                  30  50  60  55  45      240      48.00  fail
--------------------------------------------------------------------------------
DISTICTION FIRST SECOND  PASS  FAIL
      1      1      0      0      1
  
Share: 


Didn't find what you were looking for? Find more on School management system Or get search suggestion and latest updates.

Victoria Hughes
Victoria Hughes author of School management system 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!