Tuesday, 17 April 2012

COBOL program to manipulate the railway reservetion 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 NO1 PIC 9(4).        
         03 SRC1 PIC 9(8).        
         03 DES1 PIC 9(8).        
         03 FARE1 PIC 9(2).      
         03 DIS1 PIC 9(3).        
         03 TOT PIC 9(5).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-NO1 PIC 9(4).                  
         03 FILLER PIC X(3) VALUE SPACES.    
         03 L-SRC1 PIC 9(8).                
         03 FILLER PIC X(3) VALUE SPACES.    
         03 L-DES1 PIC 9(8).                
         03 FILLER PIC X(3) VALUE SPACES.    
         03 L-FARE1 PIC 9(2).                
         03 FILLER PIC X(4) VALUE SPACES.    
         03 L-DIS1 PIC 9(3).                
         03 FILLER PIC X(4) VALUE SPACES.    
         03 L-TOT PIC 9(5).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 'NO'.      
         03 FILLER PIC X(3) VALUE SPACES.    
         03 FILLER PIC X(10) VALUE 'SRC'.    
         03 FILLER PIC X(3) VALUE SPACES.    
         03 FILLER PIC X(5) VALUE 'DES'.    
         03 FILLER PIC X(3) VALUE SPACES.    
         03 FILLER PIC X(4) VALUE 'FARE'.    
         03 FILLER PIC X(4) VALUE SPACES.    
         03 FILLER PIC X(4) VALUE 'DIST'.    
         03 FILLER PIC X(4) VALUE SPACES.    
         03 FILLER PIC X(7) VALUE 'TOTAL'.  
       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.                        
           MULTIPLY DIS1 BY FARE1 GIVING TOT.
           MOVE I-NAME TO L-NAME1.          
           MOVE NO1 TO L-NO1.              
           MOVE SRC1 TO L-SRC1.            
           MOVE DES1 TO L-DES1.            
           MOVE FARE1 TO L-FARE1.          
           MOVE DIS1 TO L-DIS1.            
           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 MADURAI.CHENNAI.20100            
LAVI 567 MADURAI.CHENNAI.20100            
//GO.PRNT DD SYSOUT=*

No comments:

Post a Comment