Advertisement
Guest User

Untitled

a guest
Jul 18th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
COBOL 2.62 KB | None | 0 0
  1.  
  2.        IDENTIFICATION DIVISION.
  3.        PROGRAM-ID. COB65B.
  4.       **************************************************************************
  5.       *   THIS PROGRAM WILL BE CALLED BY COB60? AND CALCULATE TAXES
  6.       *   FROM INPUT IN-BONUS INTO OUTPUT OUT-FILE
  7.       **************************************************************************
  8.        
  9.        ENVIRONMENT DIVISION.
  10.        INPUT-OUTPUT SECTION.
  11.        FILE CONTROL.
  12.      
  13.        DATA DIVISION.
  14.        FILE SECTION.
  15.      
  16.      
  17.        WORKING-STORAGE SECTION.
  18.      
  19.       *******************************************************************
  20.       * INPUT FILE LAYOUT                                               *
  21.       *******************************************************************
  22.        01  WS-TAX-REC.
  23.            05  WS-TAX-PER                     PIC V99     VALUE 0.28.
  24.            05  WS-BRECKET-BASE                PIC S9(07)V99.
  25.  
  26.        
  27.        LINKAGE SECTION.
  28.  
  29.        01  LS-SALARY                          PIC 9(7)V99.
  30.        01  LS-TAX-AMNT                        PIC 9(7)V99.
  31.          
  32.  
  33.        PROCEDURE DIVISION USING LS-SALARY LS-TAX-AMNT.
  34.      
  35.        P100-MAINLINE.
  36.  
  37.             PERFORM P200-INITIALIZATION     THRU  P299-EXIT.
  38.             PERFORM P300-PROCESS-MAIN       THRU  P399-EXIT.
  39.             PERFORM P400-CALCULATE-TAX      THRU  P499-EXIT.
  40.  
  41.        P199-EXIT.
  42.  
  43.             EXIT.
  44.        
  45.        P200-INITIALIZATION.
  46.  
  47.             MOVE LS-SALARY       TO WS-DISP-SALARY.
  48.             MOVE LS-TAX-AMNT     TO WS-DISP-TAX-AMNT.
  49.  
  50.        P300-PROCESS-MAIN.
  51.      
  52.             IF LS-SALARY < 0
  53.                 DISPLAY 'NEGATIVE NUMBERS ARE NOT ALLOWED'.
  54.                 GOBACK.
  55.             ELSE IF LS-SALARY >= 0 AND < 969.00
  56.                 MOVE +192.00      TO WS-BRECKET-BASE       
  57.             ELSE IF WS-DISP-SALARY >= 969.00 AND < 3354.00
  58.                 MOVE +451.00      TO WS-BRECKET-BASE
  59.             ELSE IF WS-DISP-SALARY >= 3354.00 AND < 7850.00
  60.                 MOVE +1612.00     TO WS-BRECKET-BASE
  61.             ELSE IF WS-DISP-SALARY >= 7850.00 AND < 16163.00
  62.                 MOVE +72280.54    TO WS-BRECKET-BASE
  63.             ELSE IF WS-DISP-SALARY >= 16163.00 AND < 34917.00
  64.                 MOVE +4383.94     TO WS-BRECKET-BASE
  65.             ELSE IF WS-DISP-SALARY >= 34917.00 AND < 35058.00
  66.                 MOVE +6128.69     TO WS-BRECKET-BASE
  67.             ELSE WS-DISP-SALARY >= 35058.00
  68.                 MOVE +9489.16     TO WS-BRECKET-BASe
  69.             END-IF.
  70.  
  71.  
  72.        P400-CALCULATE-TAX.
  73.  
  74.             COMPUTE LS-TAX-AMNT ROUNDED =  (LS-SALARY - WS-BRECKET-BASE) * WS-TAX-PER
  75.  
  76.        P499-EXIT.
  77.  
  78.             EXIT.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement