Program to compute income tax.

IDENTIFICATION DIVISION.
PROGRAM-ID. Q9.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM PC.
OBJECT-COMPUTER. IBM PC.
INPUT-OUTPUT SECTION.
SELECT IN-FILE ASSIGN TO "Q9IN.DAT" ORGANIZATION IS
LINE SEQUENTIAL.
SELECT OUT-FILE ASSIGN TO "Q9OUT.TXT".

DATA DIVISION.
FILE SECTION.
FD IN-FILE.
01 IN-REC.
02 IN-NAME PIC A(20).
02 IN-INCOME PIC 9(6)V99.
FD OUT-FILE.
01 OUT-REC PIC X(80).


WORKING-STORAGE SECTION.
77 EOF PIC X value "N".
77 HEADING1 PIC X(80) VALUE ALL "-".
77 TAX PIC 9(5)V99.
01 OUT-FORMAT.
02 OUT-NAME PIC X(5).
02 F PIC X(15) VALUE SPACES.
02 OUT-INCOME PIC ***9(3).99.
02 F PIC X(10) VALUE SPACES.
02 OUT-TAX PIC ***9(2).99.

PROCEDURE DIVISION.
MAIN-PARA.
OPEN INPUT IN-FILE OUTPUT OUT-FILE.
READ IN-FILE AT END MOVE "Y" TO EOF.

PERFORM CALC-PARA UNTIL EOF = "Y".
DISPLAY "THE DETAILS HAVE BEEN WRITTEN TO FILE Q9OUT.DAT".
CLOSE IN-FILE , OUT-FILE.
STOP RUN.

CALC-PARA.
IF IN-INCOME IS NOT > 150000
SUBTRACT 50000 FROM IN-INCOME ,
MULTIPLY 0.30 BY IN-INCOME GIVING TAX ,
ADD 9000 TO TAX.
IF IN-INCOME IS NOT > 70000
SUBTRACT 50000 FROM IN-INCOME ,
MULTIPLY 0.20 BY IN-INCOME GIVING TAX ,
ADD 5000 TO TAX.
IF IN-INCOME IS NOT > 50000
SUBTRACT 20000 FROM IN-INCOME ,
MULTIPLY 0.10 BY IN-INCOME GIVING TAX.
IF IN-INCOME IS NOT > 20000
MOVE ZERO TO TAX.
MOVE " INCOME TAX SLIP " TO OUT-REC.
WRITE OUT-REC.
WRITE OUT-REC FROM HEADING1.
MOVE " NAME | INCOME | INCOME-TAX "
TO OUT-REC.
WRITE OUT-REC.
WRITE OUT-REC FROM HEADING1.
MOVE IN-NAME TO OUT-NAME.
MOVE IN-INCOME TO OUT-INCOME.
MOVE TAX TO OUT-TAX.
WRITE OUT-REC FROM OUT-FORMAT.
READ IN-FILE AT END MOVE "Y" TO EOF.