*    PROGRAM ID    : CHRISTMAS EXAM                               
       *    PROG NAME     : PROGRAM TO PRINT REPORT FOR SOMETHING        
       *                    REPORT WITH CONTROL BREAKS (CODED)           
       *    PROGRAMMER    : MARTIN O'SULLIVAN                            
       *    DATE          : NOVEMBER 1998                                
       *    INSTALLATION  : LIMERICK INSTITUTE OF TECHNOLOGY             
       ***************************************************************** 
       ***       INDICATORS:        10 PAGE OVERFLOW                     
       ***                          45 END OF FILE                       
       ***************************************************************** 
      F***********************FILE SPEC********************************* 
      H                                                                  
      FGRADESL IF  E                    DISK                             
      FEXAM1998O   E             10     PRINTER                          
      ************************E SPEC************************************ 
      E                    MRKS        4  3 0                            
      E                    CUR#    1   3  5   DESC   18                  
      ************************I SPEC************************************ 
      IGRDREC                                                            
      I              MRK1                            MRKS,1              
      I              MRK2                            MRKS,2              
      I              MRK3                            MRKS,3              
      I              MRK4                            MRKS,4              
      C***********************MAINLINE CODE***************************** 
      C           *LIKE     DEFN COURSE    COURS#                        
      C                     EXSR HDR                                     
      C                     READ GRDREC                   45             
      C           *IN45     DOWEQ'0'                                     
      C                     MOVE COURSE    COURS#                        
      C                     SETON                     66                 
      C           COURSE    DOWEQCOURS#                                  
      C           *IN45     ANDEQ'0'                                     
      C                     EXSR AVRAG                                   
      C                     EXSR ERRAY                                   
      C                     EXSR MOVE                                    
      C                     EXSR GRDLET                                  
      C                     WRITEDETAIL                                  
      C                     SETOF                     66                 
      C                     EXSR PG                                      
      C                     READ GRDREC                   45             
      C                     ENDDO                                        
      C                     EXSR CRSAVG                                  
      C                     WRITEAVERAG                                  
      C                     EXSR RESET                                   
      C                     ENDDO                                        
      C                     EXSR FOOT                                    
      C                     SETON                     LR                 
      C***************************************************************** 
      C*       SUBROUTINE: PG                                            
      C*       PURPOSE:    POSSIBLE NEW PAGE                             
      C***************************************************************** 
      C           PG        BEGSR                                        
      C           *IN10     IFEQ '1'                                     
      C                     EXSR HDR                                     
      C                     SETOF                     10                 
      C                     ENDIF                                        
      C                     ENDSR                                        
      C***************************************************************** 
      C*       SUBROUTINE: HDR                                           
      C*       PURPOSE:    HEADER LINES                                  
      C***************************************************************** 
      C           HDR       BEGSR                                        
      C                     WRITEHEADER                                  
      C                     WRITECOLHDG                                  
      C                     ENDSR                                        
      C***************************************************************** 
      C*       SUBROUTINE: AVRAGE                                        
      C*       PURPOSE:    CALCULATE THE AVERAGE GRADE                   
      C***************************************************************** 
      C           AVRAG     BEGSR                                        
      C                     XFOOTMRKS      MRKAVG  40                    
      C           MRKAVG    DIV  4         PERAVG                        
      C                     ADD  PERAVG    TOTAVG  40                    
      C                     ADD  1         TEMP    40                    
      C                     ENDSR                                        
      C***************************************************************** 
      C*       SUBROUTINE: MOVE                                          
      C*       PURPOSE:    MOVE STUFF                                    
      C***************************************************************** 
      C           MOVE      BEGSR                                        
      C                     Z-ADDMRKS,1    MRK1OT                        
      C                     Z-ADDMRKS,2    MRK2OT                        
      C                     Z-ADDMRKS,3    MRK3OT                        
      C                     Z-ADDMRKS,4    MRK4OT                        
      C                     MOVE DESC,X    DESCR                         
      C                     ENDSR                                        
      C***************************************************************** 
      C*       SUBROUTINE: FOOT                                          
      C*       PURPOSE:    WRITE FOOTING LINES                           
      C***************************************************************** 
      C           FOOT      BEGSR                                        
      C                     WRITEFOOTER                                  
      C                     ENDSR                                        
      C***************************************************************** 
      C*       SUBROUTINE: COURSE AVERAGES                               
      C*       PURPOSE:    CALCULATE COURSE AVERAGES                     
      C***************************************************************** 
      C           CRSAVG    BEGSR                                        
      C           TOTAVG    DIV  TEMP      AVRMRK                        
      C                     ENDSR                                        
      C***************************************************************** 
      C*       SUBROUTINE: RESET                                         
      C*       PURPOSE:    RESET VARABELS TO INSURE CORRECT ANSWERS      
      C***************************************************************** 
      C           RESET     BEGSR                                        
      C                     Z-ADD0         TEMP                          
      C                     Z-ADD0         TOTAVG                        
      C                     ENDSR                                        
      C***************************************************************** 
      C*       SUBROUTINE: ERRAY                                         
      C*       PURPOSE:    WORK WITH THE ALTERNATEING ARRAY              
      C***************************************************************** 
      C           ERRAY     BEGSR                                        
      C                     Z-ADD1         X       20                    
      C           COURSE    LOKUPCUR#,X                   50FIND COURSE  
      C           *IN50     IFEQ *ON                        COURSE FIND? 
      C                     ENDIF                                        
      C                     ENDSR                                        
      C***************************************************************** 
      C*       SUBROUTINE: LETTER                                        
      C*       PURPOSE:    CONVERT THE GRADE FROM A NUMBER TO A LETTER   
      C***************************************************************** 
      C           GRDLET    BEGSR                                        
      C           PERAVG    IFLT 60                                      
      C                     MOVE 'C'       LETTER                        
      C                     ELSE                                         
      C           PERAVG    IFLT 80                                      
      C                     MOVE 'B'       LETTER                        
      C                     ELSE                                         
      C                     MOVE 'A'       LETTER                        
      C                     ENDIF                                        
      C                     ENDIF                                        
      C                     ENDSR                                        
      C***************************************************************** 
 ** TABLE/ARRAY..............CUR#                                        
 CP001APPLIED COMPUTING                                                  
 CP003BUSINESS COMPUTING                                                 
 CP012S/W DEVELOPMENT                                                    


back to RPG page