Tuesday, 17 April 2012

COBOL program to manipulate the student details


//MYJOB JOB 1,'MCA'                            
//STEP1 EXEC IGYWCLG                            
       IDENTIFICATION DIVISION.                  
       PROGRAM-ID. LAB1.                        
       ENVIRONMENT DIVISION.                    
       CONFIGURATION SECTION.                    
       INPUT-OUTPUT SECTION.                    
       FILE-CONTROL.                            
           SELECT INPUT-FILE ASSIGN TO DA-S-INPUT.
           SELECT PRNT-FILE ASSIGN TO UR-S-PRNT.
           EJECT                                
       DATA DIVISION.                            
           SKIP3                                
       FILE SECTION.                            
        FD INPUT-FILE                            
           BLOCK CONTAINS 0 RECORDS      
           LABEL RECORDS ARE STANDARD.    
       01 INPUT-REC PIC X(80).            
           SKIP2                          
        FD PRNT-FILE                      
           LABEL RECORDS ARE OMITTED.    
       01 PRNT-REC PIC X(125).            
       WORKING-STORAGE SECTION.          
       01 INPUT-DATA.                    
         03 I-NAME PIC X(5).              
         03 REG PIC 9(4).                
         03 MARK1 PIC 9(2).              
         03 MARK2 PIC 9(2).              
         03 MARK3 PIC 9(2).              
         03 TOT PIC 9(3).                
         03 AVG PIC 9(3).9(2).          
         03 FILLER PIC X(21).            
       01 PRNT-DATA1.                    
         03 FILLER PIC X(5) VALUE SPACES.
         03 L-NAME1 PIC X(5).            
         03 FILLER PIC X(5) VALUE SPACES.  
         03 L-REG PIC 9(4).                
         03 FILLER PIC X(3) VALUE SPACES.  
         03 L-MARK1 PIC 9(2).              
         03 FILLER PIC X(3) VALUE SPACES.  
         03 L-MARK2 PIC 9(2).              
         03 FILLER PIC X(3) VALUE SPACES.  
         03 L-MARK3 PIC 9(2).              
         03 FILLER PIC X(4) VALUE SPACES.  
         03 L-TOT PIC 9(3).                
         03 FILLER PIC X(4) VALUE SPACES.  
         03 L-AVG PIC 9(3).9(2).          
       01 PRNT-HEADING1.                  
         03 FILLER PIC X(5) VALUE SPACES.  
         03 FILLER PIC X(5) VALUE 'NAME'.  
         03 FILLER PIC X(5) VALUE SPACES.  
         03 FILLER PIC X(4) VALUE 'REG'.  
         03 FILLER PIC X(3) VALUE SPACES.  
         03 FILLER PIC X(2) VALUE 'M1'.    
         03 FILLER PIC X(3) VALUE SPACES.  
         03 FILLER PIC X(2) VALUE 'M2'.  
         03 FILLER PIC X(3) VALUE SPACES.
         03 FILLER PIC X(2) VALUE 'M3'.  
         03 FILLER PIC X(4) VALUE SPACES.
         03 FILLER PIC X(3) VALUE 'TOT'.  
         03 FILLER PIC X(4) VALUE SPACES.
         03 FILLER PIC X(3) VALUE 'AVG'.  
       01 MISC.                          
        03 EOF-I PIC 9 VALUE 0.          
       PROCEDURE DIVISION.                
       MAINLINE.                        
           OPEN INPUT INPUT-FILE        
           OUTPUT PRNT-FILE.            
           PERFORM READ-INPUT.          
           PERFORM PRINT-HEAD.          
           PERFORM LOOP1                
           UNTIL EOF-I = 1.            
           CLOSE INPUT-FILE            
           PRNT-FILE.                  
           STOP RUN.                    
       PRINT-HEAD.                            
           WRITE PRNT-REC FROM PRNT-HEADING1  
           AFTER ADVANCING PAGE.              
           MOVE SPACES TO PRNT-REC.            
           WRITE PRNT-REC                      
           AFTER ADVANCING 1 LINE.            
       LOOP1.                                  
           PERFORM PRINT-NAMES.                
           PERFORM READ-INPUT.                
       PRINT-NAMES.                            
           ADD MARK1,MARK2,MARK3 GIVING TOT.    
           DIVIDE TOT BY 3 GIVING AVG.          
           MOVE I-NAME TO L-NAME1.              
           MOVE REG TO L-REG.                  
           MOVE MARK1 TO L-MARK1.              
           MOVE MARK2 TO L-MARK2.              
           MOVE MARK3 TO L-MARK3.              
           MOVE TOT TO L-TOT.                  
           MOVE AVG TO L-AVG.                  
           WRITE PRNT-REC FROM PRNT-DATA1      
           AFTER ADVANCING 1 LINE.            
       READ-INPUT.                            
           READ INPUT-FILE INTO INPUT-DATA    
           AT END MOVE 1 TO EOF-I.            
//GO.SYSOUT DD SYSOUT=*                        
//GO.SYSPRINT DD SYSOUT=*                      
//GO.INPUT DD *                                
ANU  123 909090                                
BALA 567 808080                                
CEMA 901 707070                                
DEVI 345 606060      
//GO.PRNT DD SYSOUT=*

No comments:

Post a Comment