* 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