Please note, this is a STATIC archive of website www.tutorialspoint.com from 11 May 2019, cach3.com does not collect or store any user information, there is no "phishing" involved.
Tutorialspoint

Compile and Execute COBOL Online

IDENTIFICATION DIVISION.
PROGRAM-ID. HW06FL.
DATA DIVISION.
WORKING-STORAGE SECTION.
01  EMPLOYEE-RECORD-IN.
    05 EMP-PAY-DATE-IN.
       10 EMP-PAY-YY          PIC X(02).
       10 EMP-PAY-MM          PIC X(02).
       10 EMP-PAY-DD          PIC X(02).
    05 EMP-NUMBER             PIC X(03).
    05 EMP-NAME.
       10 EMP-LAST-NAME       PIC X(15).
       10 EMP-FIRST-NAME      PIC X(10).
    05 HOURS-WORKED           PIC 99V99.
    05 PAY-RATE               PIC 99V99.
    05 EMP-PAY-TYPE           PIC X.
       88 HOURLY-PAY                    VALUE 'H'.
       88 SALARY-PAY                    VALUE 'S'.
    05 EMP-POSITION           PIC X.
       88 PROGRAMMER                    VALUE 'P'.
       88 ACCOUNTANT                    VALUE 'A'.
       88 MANAGER                       VALUE 'M'.
       88 INTERN                        VALUE 'I'.
       88 TESTER                        VALUE 'T'.
    05 EMP-GROSS-OUT          PIC 9(04)V99.
    05 EMP-OVERTIME-HOURS-OUT PIC 9(02).
    05 EMP-OVERTIME-OUT       PIC 9(04)V99.
    05 EMP-TAXES-OUT          PIC 9(04)V99.
    05 EMP-NET-OUT            PIC 9(04)V99.
    05 FILLER                 PIC X(10).  
       
01  EMP-TAX-RATE              PIC V99.

01  EMP-POSITION-TITLE        PIC X(18).

01  EMPLOYEE-PAY-TOTALS.       
    05  EMP-GROSS-PAY          PIC 9(04)V99. 
    05  EMP-NET-PAY            PIC 9(04)V99.
    05  EMP-TAXES              PIC 9(04)V99.
    05  EMP-OVERTIME-HOURS     PIC 9(02)V99.
    05  EMP-OVERTIME-PAY       PIC 9(03)V99.
    
01  PROGRAM-TOTALS.    
    05  PROGRAM-GROSS-PAY      PIC 9(04)V99.
    05  PROGRAM-NET-PAY        PIC 9(04)V99.
    05  PROGRAM-TAXES          PIC 9(04)V99.
    05  PROGRAM-RECORD-COUNT   PIC 9(02).
    05  PROGRAM-HOURS-WORKED   PIC 9(04)V99.
    05  PROGRAM-AVERAGE-GROSS  PIC 9(04)V99.
    05  PROGRAM-AVERAGE-NET    PIC 9(04)V99.
    05  PROGRAM-OVERTIME-HOURS PIC 9(04)V99.
    05  PROGRAM-OVERTIME-PAY   PIC 9(04)V99.
    
01  WS-DATE-IN                 PIC 9(08).

01  WS-POSITIONS.
    05 WS-PROGRAMMER.
       10 WS-PROGRAMMER-CODE   PIC X(01)    VALUE 'P'.
       10 WS-PROGRAMMER-TITLE  PIC X(18)    VALUE 'PROGRAMMER'.
       10 WS-PROGRAMMER-RATE   PIC 9(02)V99 VALUE 65.00.
    05 WS-ACCOUNTANT.
       10 WS-ACCOUNTANT-CODE   PIC X(01)    VALUE 'A'.
       10 WS-ACCOUNTANT-TITLE  PIC X(18)    VALUE 'ACCOUNTANT'.
       10 WS-ACCOUNTANT-RATE   PIC 9(02)V99 VALUE 58.00.
    05 WS-MANAGER.
       10 WS-MANAGER-CODE      PIC X(01)    VALUE 'M'.
       10 WS-MANAGER-TITLE     PIC X(18)    VALUE 'MANAGER'.
       10 WS-MANAGER-RATE      PIC 9(02)V99 VALUE 62.00.
    05 WS-INTERN.
       10 WS-INTERN-CODE       PIC X(01)    VALUE 'I'.
       10 WS-INTERN-TITLE      PIC X(18)    VALUE 'INTERN'.
       10 WS-INTERN-RATE       PIC 9(02)V99 VALUE 22.00.
    05 WS-TESTER.
       10 WS-TESTER-CODE       PIC X(01)    VALUE 'T'.
       10 WS-TESTER-TITLE      PIC X(18)    VALUE 'TESTER'.
       10 WS-TESTER-RATE       PIC 9(02)V99 VALUE 22.00.   

PROCEDURE DIVISION.
0000-DRIVER.
*-Place PERFORM statement(s) code to control the program:
* 1) Initialize Program
* 2) Process all the records
* 3) Calculate and Display Final Totals.
* 4) Perform any closing program tasks and end the program.

0100-INITIALIZE-PROGRAM.

*-Place statements here to do initial tasks the program needs:
* 1) Accept & Format the date
* 2) Complete initial display.
* 3) Set tax rate
* 4) Perform a paragraph to get the first record (ACCEPT the record)

1000-PROCESS-PAYROLL-RECORDS.

*-Place Code & PERFORM Statement Code here needed for each record:
* 1) Update the record count
* 2) Display the record
* 3) Perform a paragraph to set the pay & title
* 4) Perform a paragraph to calculate the payroll amounts
* 5) Perform a paragrpah to update the program totals
* 6) Perform a paragraph to Display the Payroll Record Details
* 7) Perform a paragraph to get the next record (ACCEPT the record) 

1100-DETERMINE-POSITION-AND-PAY.
*-set the pay & title here:
    
    
1200-CALCULATE-PAYROLL. 
*-calculate the payroll amount here: 
    
    
1300-UPDATE-PROGRAM-TOTALS.    
*-update the program totals here:


1400-DISPLAY-PAYROLL-RECORD-INFO.
*-Display the Payroll Record Details here:
  
    
1900-ACCEPT-RECORD. 
    ACCEPT EMPLOYEE-RECORD-IN.


2000-PROVIDE-FINAL-TOTALS.
*-Calculate and Display Final Totals here:


3000-CLOSE-PROGRAM.   
*-Perform any closing program tasks and end the program here:

Compile and Execute COBOL Online

IDENTIFICATION DIVISION.
PROGRAM-ID. INVESTMENT-CAL.
DATA DIVISION.
    WORKING-STORAGE SECTION.
    01  BTD             PIC X(20).
    01  DTB             PIC X(15).
    01  PRT-DTB         PIC X(15).
    01  INPUTS1         PIC X(20).
    01  INPUTS2         PIC X(20).
    01  INPUTS3         PIC X(20).
    01  INTLOOP         PIC 99 VALUE 1.
    01  TBLLOOP         PIC 99 VALUE 1.
    01  INT             PIC 9 OCCURS 10 TIMES.
    01  COUNTER         PIC 99.
    01  MULTIPLIER      PIC 9(6) VALUE 1.
    01  DECIMAL         PIC 9(5).
    01  CTR             PIC 9(20).
    01  COM             PIC 9.
    01  COM-DECIMAL     PIC 9(10).
    01  COM-DECIMAL2     PIC X(10).
    01  PRT-FINAL       PIC 9(10).
    01  PRT-DECIMAL     PIC ZZZZZZZZZ9.
    01  prt-final1       pic x(10).
    01  CNT1            PIC 99.
    01  CNT2            PIC 99.
    01  CTR1            PIC 9(20).
    01  CTR2            PIC 9(5).
    01  ANS             PIC 9.
    01  Q1              PIC 9(15).
    01  R1              PIC 9(02).
    01  R2              PIC 9(02).
    01  R3              PIC X(02).
    01  R4              PIC X(20).
    01  R5              PIC X(20).
    01  RLOOP           PIC 99 VALUE 1.
    01  RTBLLOOP        PIC 99 VALUE 1.
    01  RINT            PIC 9 OCCURS 20 TIMES.
    01  SLOOP           PIC 99 VALUE 1.
    01  STBLLOOP        PIC 99 VALUE 1.
    01  SINT            PIC 9 OCCURS 15 TIMES.
    01  WS              PIC 9(20) OCCURS 20 TIMES.
    01  WS1             PIC 9.
    
PROCEDURE DIVISION.
    DISPLAY "*******************************************************************"
    DISPLAY "**             BINARY TO DECIMAL/DECIMAL TO BINARY               **"
    DISPLAY "**                         CONVERTER                             **"
    DISPLAY "*******************************************************************"
    DISPLAY "**                       SELECT OPTION                           **"
    DISPLAY "**                                                               **"
    DISPLAY "**     1 BINARY TO DECIMAL         2 DECIMAL TO BINARY           **"
    DISPLAY "**                                                               **"
    ACCEPT ANS
    DISPLAY "**     OPTION  :  "ANS"                                              **"
    DISPLAY "**                                                               **"
    
    IF ANS = 1
        PERFORM 1000-BINARY-TO-DECIMAL
        ELSE IF ANS = 2
            PERFORM 2000-DECIMAL-TO-BINARY
        ELSE
        STOP RUN
    END-IF
    .
    1000-BINARY-TO-DECIMAL.
    ACCEPT BTD
    MOVE FUNCTION REVERSE(BTD) TO INPUTS2. 
    INSPECT INPUTS2
        TALLYING CTR1 FOR LEADING SPACES
    MOVE INPUTS2 (CTR1 + 1:) TO INPUTS3
    INSPECT INPUTS3
        TALLYING CNT1 FOR ALL "1"
    INSPECT INPUTS3
        TALLYING CNT2 FOR ALL "0"
    ADD CNT1 TO CNT2
    PERFORM 
        MOVE INPUTS3(INTLOOP:1) TO INT(TBLLOOP)
            COMPUTE MULTIPLIER = MULTIPLIER * 1
            MOVE INT(TBLLOOP) TO COM
            COMPUTE DECIMAL = COM * MULTIPLIER
            ADD DECIMAL TO COM-DECIMAL
            ADD 1 TO COUNTER
            ADD 1 TO INTLOOP
    END-PERFORM
    MOVE 0 TO DECIMAL
    PERFORM UNTIL COUNTER = CNT2
        MOVE INPUTS3(INTLOOP:1) TO INT(TBLLOOP)
            COMPUTE MULTIPLIER = MULTIPLIER * 2
            MOVE INT(TBLLOOP) TO COM
            COMPUTE DECIMAL = COM * MULTIPLIER
            ADD DECIMAL TO COM-DECIMAL
            ADD 1 TO COUNTER
            ADD 1 TO INTLOOP
    END-PERFORM
    MOVE COM-DECIMAL TO PRT-DECIMAL
    MOVE FUNCTION TRIM(prt-decimal LEADING) TO prt-final1
    display prt-final1
    
    DISPLAY "*******************************************************************"
    DISPLAY "**                      BINARY TO DECIMAL                        **"
    DISPLAY "*******************************************************************"
    DISPLAY "**                                                               **"
    DISPLAY "**                         *****************************         **"
    DISPLAY "**         BINARY CODE     *   " BTD              "    *         **"
    DISPLAY "**                         *****************************         **"
    DISPLAY "**                                                               **"
    DISPLAY "**                         ************************              **"
    DISPLAY "**         DECIMAL         *   " PRT-final1 "         *              **"
    DISPLAY "**                         ************************              **"
    DISPLAY "**                                                               **"
    DISPLAY "*******************************************************************"
    STOP RUN
    .
    2000-DECIMAL-TO-BINARY.
    ACCEPT DTB
    MOVE DTB TO Q1 PRT-DTB
    
    PERFORM UNTIL Q1 = 0
        DIVIDE Q1 BY 2 GIVING Q1 REMAINDER R1
        MOVE FUNCTION REVERSE(R1) TO R2 
        MOVE R2(RLOOP:1) TO RINT(RTBLLOOP)
        MOVE RINT(RTBLLOOP) TO R3
        STRING R4 DELIMITED BY " "
            R3 DELIMITED BY " "
            INTO R4
        END-STRING
        MOVE FUNCTION TRIM(FUNCTION REVERSE(R4) LEADING) TO R5
        ADD 1 TO RINT(RTBLLOOP)
    END-PERFORM
    
    DISPLAY "*******************************************************************"
    DISPLAY "**                      DECIMAL TO BINARY                        **"
    DISPLAY "*******************************************************************"
    DISPLAY "**                                                               **"
    DISPLAY "**                         ************************              **"
    DISPLAY "**         DECIMAL         *   " PRT-DTB "    *              **"
    DISPLAY "**                         ************************              **"
    DISPLAY "**                                                               **"
    DISPLAY "**                         *****************************         **"
    DISPLAY "**         BINARY CODE     *   " R5              "    *         **"
    DISPLAY "**                         *****************************         **"
    DISPLAY "**                                                               **"
    DISPLAY "*******************************************************************"
    
    STOP RUN.

THISISTHELASTSRAWINEEDYOUTOSAVE

IDENTIFICATION DIVISION.
PROGRAM-ID. HW02DW.
AUTHOR. DANIELLE WILLIAMS.
DATA DIVISION.
WORKING-STORAGE SECTION.
01  EMPLOYEE-RECORD-IN. 
    05 EMP-PAY-DATE-IN.                 
        10 EMP-PAY-YY            PIC X(02)      VALUE '19'. 
        10 EMP-PAY-MM            PIC X(02)      VALUE '01'.
        10 EMP-PAY-DD            PIC X(02)      VALUE '04'.
    05 EMP-NUMBER                PIC X(03).      
    05 EMP-NAME.
        10 EMP-LAST-NAME         PIC X(15)      VALUE 'WILLIAMS'.
        10 EMP-FIRST-NAME        PIC X(10)      VALUE 'DANIELLE'.
    05 HOURS-WORKED              PIC 99V99.
    05 PAY-RATE                  PIC 99V99.
    05 PAY-TYPE                  PIC X.
        88 H-HOURLY                             VALUE 'H'.                
        88 S-SALARY                             VALUE 'S'.
    05 EMP-POSITION              PIC X.
        88 P-PROGRAMMER                     VALUE 'P'.
        88 A-ACCOUNTANT                     VALUE 'A'.
        88 M-MANAGER                        VALUE 'M'.
        88 I-INTERN                         VALUE 'I'.
        88 T-TESTER                         VALUE 'T'.
    01 GROSS-PAY                 PIC 9(03)  VALUE 0.
PROCEDURE DIVISION.
    DISPLAY 'PAYROLL HW02DW FOR DA WI'.
    DISPLAY '--'.
    ACCEPT EMPLOYEE-RECORD-IN.
    DISPLAY 'WHOLE INPUT RECORD: 190104A01WILLIAMS       DANIELLE 00000000HS'
    DISPLAY 'PAY DATE          :' EMP-PAY-MM '/'EMP-PAY-DD '/' EMP-PAY-YY. 
    DISPLAY 'EMPLOYEE NAME     :'  EMP-LAST-NAME ',' EMP-FIRST-NAME.
    DISPLAY 'NUMBER            :'  EMP-NUMBER.
    DISPLAY 'HOURS             :'  HOURS-WORKED.
    DISPLAY 'PAY RATE          :'  PAY-RATE.
    DISPLAY 'POSITIONS         :'  EMP-POSITION.
    DISPLAY 'PAY TYPE          :'  PAY-TYPE.
    DISPLAY 'EXTRA CREDIT      :'
    COMPUTE GROSS-PAY = HOURS-WORKED * PAY-RATE
        DISPLAY 'GROSS PAY         :'GROSS-PAY.

    DISPLAY '--'.
    DISPLAY 'END OF PROGRAM FOR FIRSTNAME LASTNAME'.
    STOP RUN.

12345

IDENTIFICATION DIVISION.
    PROGRAM-ID. HW05BH.
    AUTHOR. Brian Hamil.
    DATE-WRITTEN. 2/04/19.

DATA DIVISION.

    WORKING-STORAGE SECTION.
    
        01  EMPLOYEE-RECORD-IN.
            05 EMP-PAY-DATE-IN.
                10 EMP-PAY-YY            PIC X(02).
                10 EMP-PAY-MM            PIC X(02).
                10 EMP-PAY-DD            PIC X(02).
       
            05 EMP-NUMBER               PIC X(03).
    
            05 EMP-NAME.
                10 EMP-LAST-NAME         PIC X(15).
                10 EMP-FIRST-NAME        PIC X(10).
    
            05 HOURS-WORKED             PIC 99V99.
            05 PAY-RATE                 PIC 99V99.
    
            05 EMP-PAY-TYPE             PIC X.
                    88 HOURLY-PAY            VALUE 'H', 'h'.
                    88 SALARY-PAY            VALUE 'S', 's'.
       
            05 EMP-POSITION             PIC X.
                    88 PROGRAMMER            VALUE 'P', 'p'.
                    88 ACCOUNTANT            VALUE 'A', 'a'.
                    88 MANAGER               VALUE 'M', 'm'.
                    88 INTERN                VALUE 'I', 'i'.
                    88 TESTER                VALUE 'T', 't'.
                    88 DEFALUT               VALUE 'X', 'x'.
       
        01 EMP-TITLE                    PIC X(18).
        01 EMP-PAY-DISPLAY              PIC X(18).
        01 EMP-MESSAGE                  PIC X(30).

        01  EMP-TAX-RATE                PIC V99 VALUE .32.

        01  EMPLOYEE-PAY-TOTALS. 
            05  EMP-GROSS-PAY           PIC 9(04)V99.
            05  EMP-NET-PAY             PIC 9(04)V99.
            05  EMP-TAXES               PIC 9(04)V99.
            05  EMP-OVERTIME-RATE       PIC 9(02)V99.
            05  EMP-OVERTIME-PAY        PIC 9(04)V99.

        01  PROGRAM-TOTALS.    
            05 LOOP-COUNTER             PIC 999(03) VALUE 1.
            05 RECORD-LEN               PIC 999(03) VALUE 16.
            05 TOTAL-GROSS-PAY          PIC 9(05)V99.
            05 TOTAL-NET-PAY            PIC 9(05)V99.
            05 TOTAL-TAXES              PIC 9(05)V99.
            05 TOTAL-HOURS-S            PIC 9(03)V99.
            05 TOTAL-HOURS-H            PIC 9(03)V99.
            05 TOTAL-HOURS              PIC 9(03)V99.
            05 SYS-DATE.
                10 SYS-YEAR             PIC 9(04).
                10 SYS-MONTH            PIC 9(02).
                10 SYS-DAY              PIC 9(02).
                
            05 AVERAGE-GROSS-PAY        PIC 9(05)V99.
            05 AVERAGE-TAXES            PIC 9(05)V99.
            05 AVERAGE-NET-PAY          PIC 9(05)V99.
            05 TEMP                     PIC 9(05).
            05 OVERTIME-HOURS           PIC 9(03)V99.
            05 OVERTIME-HOURLY          PIC 9(03)V99.
            05 OVERTIME-SALARY          PIC 9(03)V99.
            05 TOTAL-OVERTIME           PIC 9(03)V99.
            05 OVERTIME-PAY             PIC 9(04)V99.
    
        01  WS-POSITIONS.
            05 WS-PROGRAMMER.
                10 WS-PROGRAMMER-CODE   PIC X(01)    VALUE 'P'.
                10 WS-PROGRAMMER-TITLE  PIC X(18)    VALUE 'PROGRAMMER'.
                10 WS-PROGRAMMER-RATE   PIC 9(02)V99 VALUE 65.00.
            05 WS-ACCOUNTANT.
                10 WS-ACCOUNTANT-CODE   PIC X(01)    VALUE 'A'.
                10 WS-ACCOUNTANT-TITLE  PIC X(18)    VALUE 'ACCOUNTANT'.
                10 WS-ACCOUNTANT-RATE   PIC 9(02)V99 VALUE 58.00.
            05 WS-MANAGER.
                10 WS-MANAGER-CODE      PIC X(01)    VALUE 'M'.
                10 WS-MANAGER-TITLE     PIC X(18)    VALUE 'MANAGER'.
                10 WS-MANAGER-RATE      PIC 9(02)V99 VALUE 62.00.
            05 WS-INTERN.
                10 WS-INTERN-CODE       PIC X(01)    VALUE 'I'.
                10 WS-INTERN-TITLE      PIC X(18)    VALUE 'INTERN'.
                10 WS-INTERN-RATE       PIC 9(02)V99 VALUE 22.00.
            05 WS-TESTER.
                10 WS-TESTER-CODE       PIC X(01)    VALUE 'T'.
                10 WS-TESTER-TITLE      PIC X(18)    VALUE 'TESTER'.
                10 WS-TESTER-RATE       PIC 9(02)V99 VALUE 22.00.
            05 WS-DEFAULT.
                10 WS-DEFAULT-CODE      PIC X(01)    VALUE 'X'.
                10 WS-DEFAULT-TITLE     PIC X(18)    VALUE 'UNDEFINED POSITION'.
                10 WS-DEFAULT-RATE      PIC 9(02)V99 VALUE 20.00.

PROCEDURE DIVISION.

0000-DRIVER.
0100-INITIALIZE-PROGRAM.
1000-PROCESS-PAYROLL-RECORDS.
1100-DETERMINE-POSITION-AND-PAY.
1200-CALCULATE-PAYROLL.
1300-UPDATE-PROGRAM-TOTALS.
1400-DISPLAY-PAYROLL-RECORD-INFO.
1900-ACCEPT-RECORD.
2000-PROVIDE-FINAL-TOTALS.
3000-CLOSE-PROGRAM.

    DISPLAY 'PAYROLL HW04BH FOR Brian Hamil.'.
    
    DISPLAY WS-PROGRAMMER-CODE ' ' WS-PROGRAMMER-TITLE ' ' WS-PROGRAMMER-RATE
    DISPLAY WS-ACCOUNTANT-CODE ' ' WS-ACCOUNTANT-TITLE ' ' WS-ACCOUNTANT-RATE
    DISPLAY WS-MANAGER-CODE ' ' WS-MANAGER-TITLE ' ' WS-MANAGER-RATE
    DISPLAY WS-INTERN-CODE ' ' WS-INTERN-TITLE ' ' WS-INTERN-RATE
    DISPLAY WS-TESTER-CODE ' ' WS-TESTER-TITLE ' ' WS-TESTER-RATE
    DISPLAY WS-DEFAULT-CODE ' ' WS-DEFAULT-TITLE ' ' WS-DEFAULT-RATE
    
    DISPLAY '   --  BEGINNING OF RECORDS    --'.
    
    DISPLAY '--'.

    PERFORM UNTIL LOOP-COUNTER = 16

    ACCEPT EMPLOYEE-RECORD-IN
    
    EVALUATE TRUE
        WHEN HOURLY-PAY
            MOVE 'HOURLY' TO EMP-PAY-DISPLAY
        WHEN SALARY-PAY
            MOVE 'SALARY' TO EMP-PAY-DISPLAY
            MOVE '  -- NOT ELIGIBLE --' TO EMP-MESSAGE
            MOVE 0 TO EMP-OVERTIME-PAY
            MOVE 0 TO EMP-OVERTIME-RATE
        WHEN OTHER
            MOVE 'INVALID' TO EMP-PAY-DISPLAY
    END-EVALUATE
    
    EVALUATE TRUE
        WHEN PROGRAMMER
            MOVE WS-PROGRAMMER-RATE TO PAY-RATE
            MOVE WS-PROGRAMMER-CODE TO EMP-POSITION
            MOVE WS-PROGRAMMER-TITLE TO EMP-TITLE
        WHEN ACCOUNTANT
            MOVE WS-ACCOUNTANT-RATE TO PAY-RATE
            MOVE WS-ACCOUNTANT-CODE TO EMP-POSITION
            MOVE WS-ACCOUNTANT-TITLE TO EMP-TITLE
        WHEN MANAGER
            MOVE WS-MANAGER-RATE TO PAY-RATE
            MOVE WS-MANAGER-CODE TO EMP-POSITION
            MOVE WS-MANAGER-TITLE TO EMP-TITLE
        WHEN INTERN 
            MOVE WS-INTERN-RATE TO PAY-RATE
            MOVE WS-INTERN-CODE TO EMP-POSITION
            MOVE WS-INTERN-TITLE TO EMP-TITLE
        WHEN TESTER 
            MOVE WS-TESTER-RATE TO PAY-RATE
            MOVE WS-TESTER-CODE TO EMP-POSITION
            MOVE WS-TESTER-TITLE TO EMP-TITLE
        WHEN OTHER 
            MOVE WS-DEFAULT-RATE TO PAY-RATE
            MOVE WS-DEFAULT-CODE TO EMP-POSITION
            MOVE WS-DEFAULT-TITLE TO EMP-TITLE
    END-EVALUATE
    
    IF HOURS-WORKED > 40
    
        SUBTRACT 40 FROM HOURS-WORKED GIVING OVERTIME-HOURS
        
        IF EMP-PAY-TYPE = 'H' OR 'h'
            MULTIPLY PAY-RATE BY 1.5 GIVING EMP-OVERTIME-RATE
            MULTIPLY OVERTIME-HOURS BY EMP-OVERTIME-RATE GIVING EMP-OVERTIME-PAY
            MULTIPLY PAY-RATE BY 40 GIVING EMP-GROSS-PAY
            
            ADD EMP-OVERTIME-PAY TO EMP-GROSS-PAY GIVING EMP-GROSS-PAY
            
        ELSE IF EMP-PAY-TYPE = 'S' OR 's'
            MULTIPLY PAY-RATE BY 40 GIVING EMP-GROSS-PAY
            
        ELSE
            MULTIPLY PAY-RATE BY HOURS-WORKED GIVING EMP-GROSS-PAY
            
    ELSE
        MULTIPLY HOURS-WORKED BY PAY-RATE GIVING EMP-GROSS-PAY
        
    END-IF

    MULTIPLY EMP-GROSS-PAY BY EMP-TAX-RATE GIVING EMP-TAXES
    
    SUBTRACT EMP-TAXES FROM EMP-GROSS-PAY GIVING EMP-NET-PAY
    
    DISPLAY 'RECORD ENTRY : ' EMPLOYEE-RECORD-IN
    DISPLAY 'PAY DATE     : ' EMP-PAY-MM '/'
                              EMP-PAY-DD '/'
                              EMP-PAY-YY
    DISPLAY 'EMPLOYEE NAME: ' EMP-LAST-NAME ', ' EMP-FIRST-NAME  
    DISPLAY '    NUMBER   : ' EMP-NUMBER
    DISPLAY '    HOURS    :        ' HOURS-WORKED
    DISPLAY '    OT HOURS :       ' OVERTIME-HOURS 
    DISPLAY '    PAY RATE :       $' PAY-RATE
    DISPLAY '    OT RATE  :       $' EMP-OVERTIME-RATE EMP-MESSAGE
    DISPLAY '    POSITION : ' EMP-POSITION
    DISPLAY '    TITLE    : ' EMP-TITLE
    DISPLAY '    PAY TYPE : ' EMP-PAY-DISPLAY
    DISPLAY '    GROSS PAY:     $' EMP-GROSS-PAY
    DISPLAY '    OT PAY   :     $' EMP-OVERTIME-PAY EMP-MESSAGE
    DISPLAY '    TAXES    :     $' EMP-TAXES
    DISPLAY '    NET PAY  :     $' EMP-NET-PAY
    DISPLAY '--'
    
    ADD EMP-GROSS-PAY TO TOTAL-GROSS-PAY
    ADD EMP-TAXES TO TOTAL-TAXES
    ADD EMP-NET-PAY TO TOTAL-NET-PAY
    
    IF EMP-PAY-TYPE = 'H' OR 'h'
        ADD HOURS-WORKED TO TOTAL-HOURS-H
        ADD OVERTIME-HOURS TO OVERTIME-HOURLY
    ELSE
        ADD HOURS-WORKED TO TOTAL-HOURS-S
        ADD OVERTIME-HOURS TO OVERTIME-SALARY
    
    ADD 1 TO LOOP-COUNTER
    
    END-PERFORM.
    
    DISPLAY '   --  END OF RECORDS  --'.
    
    ADD TOTAL-HOURS-H TO TOTAL-HOURS-S GIVING TOTAL-HOURS.
    ADD OVERTIME-SALARY TO OVERTIME-HOURLY GIVING TOTAL-OVERTIME.
    
    DIVIDE TOTAL-GROSS-PAY BY LOOP-COUNTER GIVING AVERAGE-GROSS-PAY.
    DIVIDE TOTAL-TAXES BY LOOP-COUNTER GIVING AVERAGE-TAXES.
    DIVIDE TOTAL-NET-PAY BY LOOP-COUNTER GIVING AVERAGE-NET-PAY
    
    MOVE FUNCTION CURRENT-DATE TO SYS-DATE.
    DISPLAY 'PROGRAM RUN DATE    :   '  SYS-MONTH '/'
                                        SYS-DAY '/' 
                                        SYS-YEAR.
    
    DISPLAY '--'.
    
    DISPLAY '   TOTAL GROSS PAY     :   $' TOTAL-GROSS-PAY.
    DISPLAY '   TOTAL TAXES         :   $' TOTAL-TAXES.
    DISPLAY '   TOTAL NET PAY       :   $' TOTAL-NET-PAY.
    
    DISPLAY '--'.
    
    DISPLAY '   AVERAGE GROSS PAY   :   $' AVERAGE-GROSS-PAY.
    DISPLAY '   AVERAGE TAXES       :   $' AVERAGE-TAXES.
    DISPLAY '   AVERAGE NET PAY     :   $' AVERAGE-NET-PAY.
    
    DISPLAY '--'.
    
    DISPLAY '   NUMBER OF RECORDS   :       ' LOOP-COUNTER.
    DISPLAY '   TOTAL HOURLY HOURS  :      ' TOTAL-HOURS-H.
    DISPLAY '   TOTAL SALARY HOURS  :      ' TOTAL-HOURS-S.
    DISPLAY '   OVERALL HOURS       :      ' TOTAL-HOURS.
    DISPLAY '   TOTAL HOURLY OT     :      ' OVERTIME-HOURLY.
    DISPLAY '   TOTAL SALARY OT     :      ' OVERTIME-SALARY.
    DISPLAY '   OVERALL OT          :      ' TOTAL-OVERTIME.
    
    DISPLAY '--'.

    DISPLAY 'END OF PROGRAM FOR Brian Hamil'.
    STOP RUN.

Compile and Execute COBOL Online

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
PROCEDURE DIVISION.
DISPLAY 'Hello, world'.
STOP RUN.

Compile and Execute COBOL Online

IDENTIFICATION DIVISION.
PROGRAM-ID. CALCULATOR.
ENVIRONMENT DIVISION.
DATA DIVISION.

WORKING-STORAGE SECTION.
01 FIRST-NUMBER     PICTURE IS 9999.
01 CALC-VALUE       PICTURE IS xxxx VALUE 'S'.
01 THE-RESULT       PICTURE IS 9999.
01 SECOND-NUMBER    PICTURE IS 9999.

PROCEDURE DIVISION.

PROGRAM-BEGIN.
    
    SET FIRST-NUMBER TO 5.
    
    SET SECOND-NUMBER TO 15.
    
    EVALUATE TRUE 
        WHEN CALC-VALUE = 'A'
            ADD FIRST-NUMBER SECOND-NUMBER TO THE-RESULT
            DISPLAY "The first number is:"
            DISPLAY FIRST-NUMBER
            DISPLAY "The second number is:"
            DISPLAY SECOND-NUMBER
            DISPLAY "The result is"
            DISPLAY THE-RESULT
        WHEN CALC-VALUE = 'M'
            MULTIPLY FIRST-NUMBER BY SECOND-NUMBER GIVING THE-RESULT ROUNDED
            DISPLAY "The first number is:"
            DISPLAY FIRST-NUMBER
            DISPLAY "The second number is:"
            DISPLAY SECOND-NUMBER
            DISPLAY "The result is"
            DISPLAY THE-RESULT
        WHEN CALC-VALUE = 'D'
            DIVIDE FIRST-NUMBER BY SECOND-NUMBER GIVING THE-RESULT
            DISPLAY "The first number is:"
            DISPLAY FIRST-NUMBER
            DISPLAY "The second number is:"
            DISPLAY SECOND-NUMBER
            DISPLAY "The result is"
            DISPLAY THE-RESULT
        WHEN CALC-VALUE = 'S'
            SUBTRACT FIRST-NUMBER FROM SECOND-NUMBER GIVING THE-RESULT
            DISPLAY "The first number is:"
            DISPLAY FIRST-NUMBER
            DISPLAY "The second number is:"
            DISPLAY SECOND-NUMBER
            DISPLAY "The result is"
            DISPLAY THE-RESULT
    END-EVALUATE.
    
STOP RUN.

Compile and Execute COBOL Online

IDENTIFICATION DIVISION.
PROGRAM-ID. ADD01.
ENVIRONMENT DIVISION.
DATA DIVISION.

WORKING-STORAGE SECTION.
01 FIRST-NUMBER     PICTURE IS 9999999999.
01 SECOND-NUMBER    PICTURE IS 99.
01 THE-RESULT       PICTURE IS 99.

PROCEDURE DIVISION.

PROGRAM-BEGIN.
    
    SET FIRST-NUMBER TO 1999999999.
    
    DISPLAY FIRST-NUMBER.

Basic file handling

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
   SELECT P-FILE ASSIGN TO dd-name-jcl
   ORGANIZATION IS SEQUENTIAL
   ACCESS MODE  IS SEQUENTIAL.
   
DATA DIVISION.
FILE SECTION.

   FD P-FILE.
   01 P-NUMBER                      PICTURE 99 USAGE DISPLAY.

WORKING-STORAGE SECTION.

01  WORKING-VARIABLES.
    05  W-SUB                       PICTURE 99.
   
PROCEDURE DIVISION.
OPEN OUTPUT P-FILE.
PERFORM LOOP 10 TIMES.
CLOSE P-FILE.
STOP RUN. 


LOOP.

ADD 1 TO W-SUB.
MOVE W-SUB TO P-NUMBER.
WRITE P-NUMBER
END-WRITE.







STOP RUN.

Compile and Execute COBOL Online

*> Program Name: COBOLSum
 *> Author: Joshua Smith
 *> Class - Principles of Programming Languages
 *> Description: This COBOL application gathers 3 numeric inputs (single digit) from the user, sums them up, then repeats what the user entered and the sum back to the user.
 
 
IDENTIFICATION DIVISION.
*>Program Name is here
PROGRAM-ID. COBOLSum.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   *> 4 integer variables: num1, num2, and num3 are all single-digit (0-9), while total is 2-digits (0-99)
   01 num1 PIC 9.
   01 num2 PIC 9.
   01 num3 PIC 9.
   01 total PIC 99.

PROCEDURE DIVISION.
   *> Start of Procedures

   *> Header Displayed to the user (name of program and author, formatted)
   DISPLAY "*****************************"
   DISPLAY "*---------COBOL SUM---------*"
   DISPLAY "*------By Joshua Smith------*"
   DISPLAY "*****************************"
   
   *> Prompt the user for the first number and store it in num1.
   DISPLAY "*Number 1: (shown in STDIN) *".
   ACCEPT num1
   
   *> Prompt the user for the second number and store it in num2.
   DISPLAY "*Number 2: (shown in STDIN) *".
   ACCEPT num2
   
   *> Prompt the user for the third number and store it in num3.
   DISPLAY "*Number 3: (shown in STDIN) *".
   ACCEPT num3
   
   
   *> Simple formatting line
   DISPLAY "*---------------------------* ".
   
   *> Compute the sum of the three numeric values, num1, num2, and num3
   COMPUTE total = num1 + num2 + num3
   
   *> Display the first value the user entered.
   DISPLAY "Number 1:  " WITH NO ADVANCING
   DISPLAY num1
   
   *> Display the second value the user entered.
   DISPLAY "Number 2:  " WITH NO ADVANCING
   DISPLAY num2
   
   *> Display the third value the user entered.
   DISPLAY "Number 3:  " WITH NO ADVANCING
   DISPLAY num3
   
   *> Display the computed total
   DISPLAY "Total: :  " WITH NO ADVANCING
   DISPLAY total
   
   *> End of program
STOP RUN.

HW05YM

IDENTIFICATION DIVISION.
PROGRAM-ID. HW05YM.
AUTHOR. YIMENG MA
DATA DIVISION.
WORKING-STORAGE SECTION.
01  EMPLOYEE-RECORD-IN.
    05 EMP-PAY-DATE-IN.
       10 EMP-PAY-YY          PIC X(02).
       10 EMP-PAY-MM          PIC X(02).
       10 EMP-PAY-DD          PIC X(02).
    05 EMP-NUMBER             PIC X(03).
    05 EMP-NAME.
       10 EMP-LAST-NAME       PIC X(15).
       10 EMP-FIRST-NAME      PIC X(10).
    05 HOURS-WORKED           PIC 99V99.
    05 PAY-RATE               PIC 99V99.
    05 EMP-PAY-TYPE           PIC X.
       88 HOURLY-PAY                    VALUE 'H'.
       88 SALARY-PAY                    VALUE 'S'.
    05 EMP-POSITION           PIC X.
       88 PROGRAMMER                    VALUE 'P'.
       88 ACCOUNTANT                    VALUE 'A'.
       88 MANAGER                       VALUE 'M'.
       88 INTERN                        VALUE 'I'.
       88 TESTER                        VALUE 'T'.
    05 EMP-GROSS-OUT          PIC 9(04)V99.
    05 EMP-OVERTIME-HOURS-OUT PIC 9(02).
    05 EMP-OVERTIME-OUT       PIC 9(04)V99.
    05 EMP-TAXES-OUT          PIC 9(04)V99.
    05 EMP-NET-OUT            PIC 9(04)V99.
    05 FILLER                 PIC X(10).  
       
01  EMP-TAX-RATE              PIC V99.

01  EMP-POSITION-TITLE        PIC X(18).

01  EMPLOYEE-PAY-TOTALS.       
    05  EMP-GROSS-PAY          PIC 9(04)V99. 
    05  EMP-NET-PAY            PIC 9(04)V99.
    05  EMP-TAXES              PIC 9(04)V99.
    05  EMP-OVERTIME-HOURS     PIC 9(02)V99.
    05  EMP-OVERTIME-PAY       PIC 9(03)V99.
    
01  PROGRAM-TOTALS.    
    05  PROGRAM-GROSS-PAY      PIC 9(04)V99.
    05  PROGRAM-NET-PAY        PIC 9(04)V99.
    05  PROGRAM-TAXES          PIC 9(04)V99.
    05  PROGRAM-RECORD-COUNT   PIC 9(01).
    05  PROGRAM-HOURS-WORKED   PIC 9(04)V99.
    05  PROGRAM-AVERAGE-GROSS  PIC 9(04)V99.
    05  PROGRAM-AVERAGE-NET    PIC 9(04)V99.
    05  PROGRAM-OVERTIME-HOURS PIC 9(02)V99.
    05  PROGRAM-OVERTIME-PAY   PIC 9(03)V99.
    
01  WS-DATE-IN                 PIC 9(08).

01  WS-POSITIONS.
    05 WS-PROGRAMMER.
       10 WS-PROGRAMMER-CODE   PIC X(01)    VALUE 'P'.
       10 WS-PROGRAMMER-TITLE  PIC X(18)    VALUE 'PROGRAMMER'.
       10 WS-PROGRAMMER-RATE   PIC 9(02)V99 VALUE 65.00.
    05 WS-ACCOUNTANT.
       10 WS-ACCOUNTANT-CODE   PIC X(01)    VALUE 'A'.
       10 WS-ACCOUNTANT-TITLE  PIC X(18)    VALUE 'ACCOUNTANT'.
       10 WS-ACCOUNTANT-RATE   PIC 9(02)V99 VALUE 58.00.
    05 WS-MANAGER.
       10 WS-MANAGER-CODE      PIC X(01)    VALUE 'M'.
       10 WS-MANAGER-TITLE     PIC X(18)    VALUE 'MANAGER'.
       10 WS-MANAGER-RATE      PIC 9(02)V99 VALUE 62.00.
    05 WS-INTERN.
       10 WS-INTERN-CODE       PIC X(01)    VALUE 'I'.
       10 WS-INTERN-TITLE      PIC X(18)    VALUE 'INTERN'.
       10 WS-INTERN-RATE       PIC 9(02)V99 VALUE 22.00.
    05 WS-TESTER.
       10 WS-TESTER-CODE       PIC X(01)    VALUE 'T'.
       10 WS-TESTER-TITLE      PIC X(18)    VALUE 'TESTER'.
       10 WS-TESTER-RATE       PIC 9(02)V99 VALUE 22.00.   


PROCEDURE DIVISION.
    DISPLAY 'PAYROLL HW05FL FOR YIMENG MA'.
    ACCEPT WS-DATE-IN FROM DATE YYYYMMDD.
    DISPLAY 'PROGRAM BEGINS: ' WS-DATE-IN.
   

    DISPLAY WS-POSITIONS.
    
    DISPLAY '--'.
    MOVE .32 TO EMP-TAX-RATE.
    
    ACCEPT EMPLOYEE-RECORD-IN.
    COMPUTE PROGRAM-RECORD-COUNT = PROGRAM-RECORD-COUNT + 1

    EVALUATE EMP-POSITION 
        WHEN WS-PROGRAMMER-CODE
        MOVE WS-PROGRAMMER-TITLE TO EMP-POSITION-TITLE
        MOVE WS-PROGRAMMER-RATE TO PAY-RATE 
        WHEN WS-ACCOUNTANT-CODE
        MOVE WS-ACCOUNTANT-TITLE TO EMP-POSITION-TITLE
        MOVE WS-ACCOUNTANT-RATE TO PAY-RATE 
        WHEN WS-MANAGER-CODE
        MOVE WS-MANAGER-TITLE TO EMP-POSITION-TITLE
        MOVE WS-MANAGER-RATE TO PAY-RATE 
        WHEN WS-INTERN-CODE
        MOVE WS-INTERN-TITLE TO EMP-POSITION-TITLE
        MOVE WS-INTERN-RATE TO PAY-RATE 
        WHEN WS-TESTER-CODE
        MOVE WS-TESTER-TITLE TO EMP-POSITION-TITLE
        MOVE WS-TESTER-RATE TO PAY-RATE 
        WHEN OTHER
        MOVE 'UNDEFINED-POSITION' TO EMP-POSITION-TITLE
        MOVE '00.00' TO PAY-RATE.

    
    IF EMP-PAY-TYPE = 'S'
    COMPUTE EMP-GROSS-PAY = 40 * PAY-RATE
    MOVE '0' TO EMP-OVERTIME-PAY
        IF HOURS-WORKED > 40
            COMPUTE EMP-OVERTIME-HOURS = HOURS-WORKED - 40.
    IF EMP-PAY-TYPE = 'H'
        IF HOURS-WORKED > 40
        COMPUTE EMP-OVERTIME-HOURS = HOURS-WORKED - 40
        COMPUTE EMP-OVERTIME-PAY = 1.5 * PAY-RATE * EMP-OVERTIME-HOURS
        COMPUTE EMP-GROSS-PAY = 40 * PAY-RATE + EMP-OVERTIME-PAY
        IF HOURS-WORKED < 40
        COMPUTE EMP-GROSS-PAY = HOURS-WORKED * PAY-RATE.
            
        
    COMPUTE EMP-TAXES = EMP-GROSS-PAY * EMP-TAX-RATE.
    COMPUTE EMP-NET-PAY = EMP-GROSS-PAY - EMP-TAXES.
    COMPUTE PROGRAM-HOURS-WORKED = PROGRAM-HOURS-WORKED + HOURS-WORKED
    COMPUTE PROGRAM-GROSS-PAY = PROGRAM-GROSS-PAY + EMP-GROSS-PAY
    COMPUTE PROGRAM-TAXES = PROGRAM-TAXES + EMP-TAXES
    COMPUTE PROGRAM-NET-PAY = PROGRAM-NET-PAY + EMP-NET-PAY
    COMPUTE PROGRAM-OVERTIME-HOURS = PROGRAM-OVERTIME-HOURS + EMP-OVERTIME-HOURS
    COMPUTE PROGRAM-OVERTIME-PAY = PROGRAM-OVERTIME-PAY + EMP-OVERTIME-PAY


    DISPLAY 'PAY DATE     : '   EMP-PAY-MM '/'
                                EMP-PAY-DD '/'
                                EMP-PAY-YY.
    DISPLAY 'EMPLOYEE NAME: '   EMP-LAST-NAME ', ' EMP-FIRST-NAME. 
    DISPLAY '    NUMBER   : '   EMP-NUMBER.
    DISPLAY '    HOURS    : '   HOURS-WORKED.
    DISPLAY '    PAY RATE : '   PAY-RATE.
    DISPLAY '    POSITION : '   EMP-POSITION.    
    DISPLAY '    TITLE    : '   EMP-POSITION-TITLE
    DISPLAY '    PAY TYPE : '   EMP-PAY-TYPE.
    DISPLAY '    GROSS PAY: '   EMP-GROSS-PAY.
    DISPLAY '    OT PAY   : '   EMP-OVERTIME-PAY.
    DISPLAY '    OT HOURS : '   EMP-OVERTIME-HOURS
    DISPLAY '    TAXES    : '   EMP-TAXES.
    DISPLAY '    NET PAY  : '   EMP-NET-PAY.
    DISPLAY '--'. 

    ACCEPT EMPLOYEE-RECORD-IN.
    COMPUTE PROGRAM-RECORD-COUNT = PROGRAM-RECORD-COUNT + 1

    EVALUATE EMP-POSITION 
        WHEN WS-PROGRAMMER-CODE
        MOVE WS-PROGRAMMER-TITLE TO EMP-POSITION-TITLE
        MOVE WS-PROGRAMMER-RATE TO PAY-RATE 
        WHEN WS-ACCOUNTANT-CODE
        MOVE WS-ACCOUNTANT-TITLE TO EMP-POSITION-TITLE
        MOVE WS-ACCOUNTANT-RATE TO PAY-RATE 
        WHEN WS-MANAGER-CODE
        MOVE WS-MANAGER-TITLE TO EMP-POSITION-TITLE
        MOVE WS-MANAGER-RATE TO PAY-RATE 
        WHEN WS-INTERN-CODE
        MOVE WS-INTERN-TITLE TO EMP-POSITION-TITLE
        MOVE WS-INTERN-RATE TO PAY-RATE 
        WHEN WS-TESTER-CODE
        MOVE WS-TESTER-TITLE TO EMP-POSITION-TITLE
        MOVE WS-TESTER-RATE TO PAY-RATE 
        WHEN OTHER
        MOVE 'UNDEFINED-POSITION' TO EMP-POSITION-TITLE
        MOVE '00.00' TO PAY-RATE.

    
    IF EMP-PAY-TYPE = 'S'
    COMPUTE EMP-GROSS-PAY = 40 * PAY-RATE
    MOVE '0' TO EMP-OVERTIME-PAY
        IF HOURS-WORKED > 40
            COMPUTE EMP-OVERTIME-HOURS = HOURS-WORKED - 40.
    IF EMP-PAY-TYPE = 'H'
        IF HOURS-WORKED > 40
        COMPUTE EMP-OVERTIME-HOURS = HOURS-WORKED - 40
        COMPUTE EMP-OVERTIME-PAY = 1.5 * PAY-RATE * EMP-OVERTIME-HOURS
        COMPUTE EMP-GROSS-PAY = 40 * PAY-RATE + EMP-OVERTIME-PAY
        IF HOURS-WORKED < 40
        COMPUTE EMP-GROSS-PAY = HOURS-WORKED * PAY-RATE.
        
    COMPUTE EMP-TAXES = EMP-GROSS-PAY * EMP-TAX-RATE.
    COMPUTE EMP-NET-PAY = EMP-GROSS-PAY - EMP-TAXES.
    COMPUTE PROGRAM-HOURS-WORKED = PROGRAM-HOURS-WORKED + HOURS-WORKED
    COMPUTE PROGRAM-GROSS-PAY = PROGRAM-GROSS-PAY + EMP-GROSS-PAY
    COMPUTE PROGRAM-TAXES = PROGRAM-TAXES + EMP-TAXES
    COMPUTE PROGRAM-NET-PAY = PROGRAM-NET-PAY + EMP-NET-PAY
    COMPUTE PROGRAM-OVERTIME-HOURS = PROGRAM-OVERTIME-HOURS + EMP-OVERTIME-HOURS
    COMPUTE PROGRAM-OVERTIME-PAY = PROGRAM-OVERTIME-PAY + EMP-OVERTIME-PAY


    DISPLAY 'PAY DATE     : '   EMP-PAY-MM '/'
                                EMP-PAY-DD '/'
                                EMP-PAY-YY.
    DISPLAY 'EMPLOYEE NAME: '   EMP-LAST-NAME ', ' EMP-FIRST-NAME. 
    DISPLAY '    NUMBER   : '   EMP-NUMBER.
    DISPLAY '    HOURS    : '   HOURS-WORKED.
    DISPLAY '    PAY RATE : '   PAY-RATE.
    DISPLAY '    POSITION : '   EMP-POSITION.    
    DISPLAY '    TITLE    : '   EMP-POSITION-TITLE
    DISPLAY '    PAY TYPE : '   EMP-PAY-TYPE.
    DISPLAY '    GROSS PAY: '   EMP-GROSS-PAY.
    DISPLAY '    OT PAY   : '   EMP-OVERTIME-PAY.
    DISPLAY '    OT HOURS : '   EMP-OVERTIME-HOURS
    DISPLAY '    TAXES    : '   EMP-TAXES.
    DISPLAY '    NET PAY  : '   EMP-NET-PAY.
    DISPLAY '--'. 
    
    
    COMPUTE PROGRAM-AVERAGE-GROSS = PROGRAM-GROSS-PAY / 2
    COMPUTE PROGRAM-AVERAGE-NET = PROGRAM-NET-PAY /2



    DISPLAY 'FILE TOTALS:'.
    DISPLAY '    RECORDS  : ' PROGRAM-RECORD-COUNT.
    DISPLAY '    HOURS    : ' PROGRAM-HOURS-WORKED.
    DISPLAY '    GROSS    : ' PROGRAM-GROSS-PAY.
    DISPLAY '    TAXES    : ' PROGRAM-TAXES.
    DISPLAY '    NET      : ' PROGRAM-NET-PAY.
    DISPLAY '    OT HOURS : ' PROGRAM-OVERTIME-HOURS.
    DISPLAY '    OT PAY   : ' PROGRAM-OVERTIME-PAY.
    DISPLAY 'AVERAGE GROSS: ' PROGRAM-AVERAGE-GROSS.
    DISPLAY '  AVERAGE NET: ' PROGRAM-AVERAGE-NET.
    
    DISPLAY '--'.
    

    DISPLAY 'EXTRA CREDIT:'


    DISPLAY 'RECORD #1: '  EMP-PAY-DATE-IN EMP-NUMBER EMP-NAME HOURS-WORKED PAY-RATE EMP-PAY-TYPE EMP-POSITION
    DISPLAY 'RECORD #2: '  EMP-PAY-DATE-IN EMP-NUMBER EMP-NAME HOURS-WORKED PAY-RATE EMP-PAY-TYPE EMP-POSITION
    DISPLAY '--'.

    DISPLAY 'END OF PROGRAM FOR YIMENG MA'.
    STOP RUN.

Previous 1 ... 3 4 5 6 7 8 9 ... 67 Next
Advertisements
Loading...

We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.