Tuesday, 17 April 2012

COBOL program to manipulate the bank 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 NAME1 PIC X(5).                
          03 NO1 PIC 9(4).          
          03 BAL PIC 9(4).              
          03 DEP PIC 9(4).              
          03 WID PIC 9(4).              
          03 TOT PIC 9(4).              
          03 FILLER PIC X(21).          
        01 PRNT-DATA1.                  
          03 FILLER PIC X(5) VALUE SPACES.
          03 L-NAME1 PIC X(5).          
          03 L-NO1 PIC 9(4).            
          03 FILLER PIC X(3) VALUE SPACES.  
          03 L-BAL PIC 9(4).                
          03 FILLER PIC X(4) VALUE SPACES.  
          03 L-DEP PIC 9(4).                
          03 FILLER PIC X(4) VALUE SPACES.  
          03 L-WID PIC 9(4).                
          03 FILLER PIC X(4) VALUE SPACES.  
          03 L-TOT PIC 9(4).                
          03 FILLER PIC X(4) VALUE SPACES.  
        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 'ACNO'.  
          03 FILLER PIC X(4) VALUE SPACES.  
          03 FILLER PIC X(4) VALUE 'BAL'.  
          03 FILLER PIC X(4) VALUE SPACES.  
          03 FILLER PIC X(4) VALUE 'DEP'.  
          03 FILLER PIC X(4) VALUE SPACES.  
          03 FILLER PIC X(4) VALUE 'WID'.  
          03 FILLER PIC X(4) VALUE SPACES.  
          03 FILLER PIC X(4) VALUE 'TOT'.    
        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 BAL , DEP GIVING TOT.      
            SUBTRACT TOT FROM WID GIVING TOT.
            MOVE NAME1 TO L-NAME1.          
            MOVE NO1 TO L-NO1.              
            MOVE BAL TO L-BAL.              
            MOVE DEP TO L-DEP.                
            MOVE WID TO L-WID.                
            MOVE TOT TO L-TOT.                
            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 600011601161  
BALA 567 800011801181  
CEMA 901 700011701171  
//GO.PRNT DD SYSOUT=*          

No comments:

Post a Comment