000100 IDENTIFICATION DIVISION. 00010000 000200 PROGRAM-ID. NUMBER2. 00020000 000300 AUTHOR. STEVE SAMUELS. 00030003 000400*************************************************************** 00040000 000500* THIS COBOL PROGRAM INCLUDES FINAL TOTALS * 00050001 001000*************************************************************** 00100000 001100 ENVIRONMENT DIVISION. 00110000 001200 INPUT-OUTPUT SECTION. 00120000 001300 FILE-CONTROL. 00130000 001400 SELECT INFILE ASSIGN TO INSTUFF. 00140001 001500 SELECT OUTFILE ASSIGN TO OUTSTUFF. 00150001 001600 DATA DIVISION. 00160000 001700 FILE SECTION. 00170000 001800 FD INFILE 00180000 002300 DATA RECORD IS IN-REC. 00230000 002400 01 IN-REC. 00240000 002500 05 NAME-IN PIC X(20). 00250000 002600 05 SALARY PIC 9(3)V99. 00260000 002700 05 PIC X. 00270000 002800 05 BONUS PIC 9(3)V99. 00280000 002900 05 PIC X(49). 00290000 003000 FD OUTFILE 00300000 003500 DATA RECORD IS OUT-REC. 00350000 003600 01 OUT-REC. 00360000 003700 05 PIC X. 00370000 003800 05 NAME-OUT PIC X(20). 00380000 003900 05 PIC X(10). 00390000 004000 05 NEW-GROSS PIC $$,$$$.99. 00400000 004100 05 PIC X(10). 00410000 004200 05 FEDERAL-TAX PIC $$$$.99. 00420000 004300 05 PIC X(10). 00430000 004400 05 NET-PAY PIC $$$$.99. 00440000 004500 05 PIC X(58). 00450000 004600 WORKING-STORAGE SECTION. 00460000 004700 01 SWITCH PIC XXX VALUE SPACES. 00470000 004800**************************************************************** 00480000 004900* THESE ARE HEADER AND FINAL LINES * 00490000 005000**************************************************************** 00500000 005100 01 HEADER-ONE. 00510000 005200 05 PIC X(133) VALUE ALL '-'. 00520000 005300 01 HEADER-TWO. 00530000 005400 05 PIC X(3) VALUE SPACES. 00540000 005500 05 PIC X(4) VALUE 'NAME'. 00550000 005600 05 PIC X(26) VALUE SPACES. 00560000 005700 05 PIC X(6) VALUE 'SALARY'. 00570000 005800 05 PIC X(10) VALUE SPACES. 00580000 005900 05 PIC X(13) VALUE 'FEDERAL TAXES'. 00590000 006000 05 PIC X(5) VALUE SPACES. 00600000 006100 05 PIC X(7) VALUE 'NET PAY'. 00610000 006200 05 PIC X(58) VALUE SPACES. 00620000 006300 01 FINAL-LINE-ONE. 00630000 006400 05 PIC X(10) VALUE SPACES. 00640000 006500 05 PIC X(18) VALUE 00650000 006600 'TOTAL EMPLOYEES = '. 00660000 006700 05 TOT-EMPLOYEES PIC ZZ9. 00670000 006800 05 PIC X(101) VALUE SPACES. 00680000 006900 01 FINAL-LINE-TWO. 00690000 007000 05 PIC X(10) VALUE SPACES. 00700000 007100 05 PIC X(18) VALUE 00710000 007200 'TOTAL PAYROLL = '. 00720000 007300 05 TOTAL-PAYROLL PIC $$$,$$$.99. 00730000 007400 05 PIC X(94) VALUE SPACES. 00740000 007500***************************************************************** 00750000 007600* THESE ARE TEMPORARY STORAGE AREAS FOR TOTALS * 00760000 007700***************************************************************** 00770000 007800 01 TEMP-GROSS PIC 9999V99. 00780000 007900 01 TEMP-TAX PIC 999V99. 00790000 008000 01 TEMP-TOT-EMPLOYEES PIC 999 VALUE 0. 00800000 008100 01 TEMP-TOTAL-PAYROLL PIC 99999V99 VALUE 0. 00810003 008110* 008200 PROCEDURE DIVISION. 00820000 008210 000-MAINLINE. 00821000 008300 PERFORM 100-BEGIN. 00830000 008400 PERFORM 200-LOOPER UNTIL SWITCH = 'YES'. 00840000 008500 PERFORM 300-ENDER. 00850000 008510 STOP RUN. 00851004 008600 100-BEGIN. 00860000 008700 OPEN INPUT INFILE OUTPUT OUTFILE. 00870000 008800 WRITE OUT-REC FROM HEADER-ONE AFTER PAGE. 00880000 008900 WRITE OUT-REC FROM HEADER-TWO AFTER 1. 00890000 009000 WRITE OUT-REC FROM HEADER-ONE AFTER 1. 00900000 009100 READ INFILE AT END MOVE 'YES' TO SWITCH 00910100 009110 END-READ. 00911000 009200 200-LOOPER. 00920000 009300 ADD 1 TO TEMP-TOT-EMPLOYEES. 00930000 009400 MOVE SPACES TO OUT-REC. 00940000 009500 MOVE NAME-IN TO NAME-OUT. 00950000 009600 COMPUTE TEMP-GROSS = SALARY + BONUS. 00960000 009700 ADD TEMP-GROSS TO TEMP-TOTAL-PAYROLL. 00970000 009800 MULTIPLY TEMP-GROSS BY 0.2 GIVING TEMP-TAX. 00980000 009900 SUBTRACT TEMP-TAX FROM TEMP-GROSS GIVING NET-PAY. 00990000 010000 MOVE TEMP-TAX TO FEDERAL-TAX. 01000000 010100 MOVE TEMP-GROSS TO NEW-GROSS. 01010000 010200 WRITE OUT-REC AFTER 1. 01020000 010300 READ INFILE AT END MOVE 'YES' TO SWITCH 01030100 010310 END-READ. 01031000 010400 300-ENDER. 01040000 010500 MOVE TEMP-TOT-EMPLOYEES TO TOT-EMPLOYEES. 01050000 010600 MOVE TEMP-TOTAL-PAYROLL TO TOTAL-PAYROLL. 01060000 010700 WRITE OUT-REC FROM FINAL-LINE-ONE AFTER 2. 01070002 010800 WRITE OUT-REC FROM FINAL-LINE-TWO AFTER 1. 01080000 010900 CLOSE INFILE OUTFILE. 01090000 Using this input: 000100 STEVE SAMUELS 40000 60000 000200 SARAH JOHNSON 55000 36050 000300 JOEL BERNSTEIN 49000 30000 000400 PETE FEZZO 25020 50580 000500 FRED CROSBY 90000 50000 000600 JOAN HINTON 15000 32000 The program produces this output: ----------------------------------------------------------------------------- NAME SALARY FEDERAL TAX NET PAY ----------------------------------------------------------------------------- STEVE SAMUELS $1,000.00 $200.00 $800.00 SARAH JOHNSON $910.50 $182.10 $728.40 JOEL BERNSTEIN $790.00 $158.00 $632.00 PETE FEZZO $756.00 $151.20 $604.80 FRED CROSBY $1,400.00 $280.00 $120.00 JOAN HINTON $470.00 $94.00 $376.00 TOTAL EMPLOYEES = 6 TOTAL PAYROLL = $5,326.50