Cobol Program 83 Essay Research Paper 001600

Cobol Program 8.3 Essay, Research Paper 0016.00 * COMPILER: MICRO FOCUS 0017.00 0018.00 ENVIRONMENT DIVISION. 0019.00 0020.00 INPUT-OUTPUT SECTION.

Cobol Program 8.3 Essay, Research Paper

0016.00 * COMPILER: MICRO FOCUS

0017.00

0018.00 ENVIRONMENT DIVISION.

0019.00

0020.00 INPUT-OUTPUT SECTION.

0021.00

0022.00 FILE-CONTROL.

0023.00 SELECT ACCOUNTS-REC-FILE

0024.00 ASSIGN TO DISK-CUSTOMER.

0025.00

0026.00 SELECT ACCOUNTS-REC-REGISTER

0027.00 ASSIGN TO PRINTER-QPRINT.

0028.00

0029.00 DATA DIVISION.

0030.00

0031.00 FILE SECTION.

0032.00

0033.00 FD ACCOUNTS-REC-FILE.

0034.00 01 CUSTOMER-RECORD PIC X(80).

0036.00 FD ACCOUNTS-REC-REGISTER.

0037.00 01 ACCOUNTS-REC-LINE-RECORD PIC X(120).

0038.00

0039.00 WORKING-STORAGE SECTION.

0040.00 * Switches

0041.00 01 PROGRAM-SWITCHES.

0042.00 05 S1-END-OF-FILE-SWITCH PIC X.

0043.00 88 S1-END-OF-FILE VALUE “Y”.

0044.00 88 S1-NOT-END-OF-FILE VALUE “N”.

0045.00

0046.00 * Report Control Fields

0047.00 01 RC-REPORT-CONTROLS.

0048.00 05 RC-PAGE-COUNT PIC 9(3).

0049.00 05 RC-LINES-PER-PAGE PIC 9(2) VALUE 54.

0050.00 05 RC-LINES-USED PIC 9(2).

0051.00 05 RC-LINE-SPACING PIC 9(2).

0052.00

0053.00 * Work Areas

0054.00 01 WA-WORK-AREAS.

0055.00 05 WA-DATE-WORK PIC 9(6).

0056.00 05 WA-FINANCE-CHARGE PIC S9(5)V99.

0057.00 05 WA-MINIMUM-PAYMENT-WORK PIC S9(5)V99.

0058.00 05 WA-LATE-CHARGE PIC S9(4)V99.

0059.00 05 WA-NEW-BALANCE PIC S9(6)V99.

0060.00 05 WA-MINIMUM-PAYMENT PIC S9(5)V99.

0061.00

0062.00 01 AC-ACCUMULATORS.

0063.00 05 AC-TOTAL-BALANCE-FORWARD-ACCUM PIC S9(7)V99.

0064.00 05 AC-TOTAL-PAYMENTS-RECVD-ACCUM PIC S9(7)V99.

0065.00 05 AC-TOTAL-FINANCE-CHARGE-ACCUM PIC S9(6)V99.

0066.00 05 AC-TOTAL-LATE-CHARGE-ACCUM PIC S9(5)V99.

0067.00 05 AC-TOTAL-NEW-PURCHASES-ACCUM PIC S9(7)V99.

0068.00 05 AC-TOTAL-NEW-BALANCE-ACCUM PIC S9(7)V99.

0069.00 05 AC-TOTAL-MINIMUM-PAYMENT-ACCUM PIC S9(6)V99.

0070.00

0071.00 * Input Record Definitions

0072.00 01 CR-CUSTOMER-RECORD.

0073.00 05 CR-RECORD-CODE PIC 9(2).

0074.00 05 CR-CUSTOMER-NUMBER PIC 9(5).

0075.00 05 CR-CUSTOMER-NAME PIC X(24).

0076.00 05 PIC X(7).

0077.00 05 CR-BALANCE-FORWARD PIC S9(6)V99.

0078.00 05 CR-NEW-PURCHASES PIC S9(6)V99.

0079.00 05 PIC X(18).

0080.00 05 CR-PAYMENTS-RECEIVED PIC S9(6)V99.

0081.00

0082.00 * Heading Line Definitions

0083.00 01 H1-HEADING-LINE-1.

0084.00 05 PIC X(20) VALUE “ACCOUNTS RECEIVABLE ”

0085.00 05 PIC X(20) VALUE “REGISTER (8-3) ”

0086.00 05 PIC X(20) VALUE ” ”

0087.00 05 PIC X(20) VALUE ” ”

0088.00 05 PIC X(15) VALUE ” RUN DATE “.

0089.00 05 H1-MONTH PIC 9(2).

0090.00 05 PIC X(1) VALUE “/”.

0091.00 05 H1-DAY PIC 9(2).

0092.00 05 PIC X(1) VALUE “/”.

0093.00 05 H1-YEAR PIC 9(2).

0094.00 05 PIC X(9) VALUE ” PAGE “.

0095.00 05 H1-PAGE-NBR PIC ZZ9.

0096.00 05 PIC X(17) VALUE SPACES.

0097.00

0098.00 01 H2-HEADING-LINE-2.

0099.00 05 PIC X(20) VALUE “CUST. ”

0100.00 05 PIC X(20) VALUE ” BALANC”

0101.00 05 PIC X(20) VALUE “E PAYMENTS FIN”

0102.00 05 PIC X(20) VALUE “ANCE LATE NE”

0103.00 05 PIC X(20) VALUE “W NEW ”

0104.00 05 PIC X(20) VALUE “MINIMUM ”

0105.00

0106.00 01 H3-HEADING-LINE-3.

0107.00 05 PIC X(20) VALUE ” NO. CUSTOMER NAM”

0108.00 05 PIC X(20) VALUE “E FORWAR”

0109.00 05 PIC X(20) VALUE “D RECEIVED CH”

0110.00 05 PIC X(20) VALUE “ARGE CHARGE PURCH”

0111.00 05 PIC X(20) VALUE “ASES BALANCE ”

0112.00 05 PIC X(20) VALUE “PAYMENT STATUS ”

0113.00

0114.00 * Print Line Definitions

0115.00 01 AR-ACCOUNTS-REC-LINE.

0116.00 05 AR-CUSTOMER-NUMBER PIC 9(5).

0117.00 05 PIC X(1) VALUE SPACE.

0118.00 05 AR-CUSTOMER-NAME PIC X(24).

0119.00 05 PIC X(1) VALUE SPACE.

0120.00 05 AR-BALANCE-FORWARD PIC ZZZ,ZZZ.99-.

0121.00 05 PIC X(1) VALUE SPACE.

0122.00 05 AR-PAYMENTS-RECEIVED PIC ZZZ,ZZZ.99-.

0123.00 05 PIC X(1) VALUE SPACE.

0124.00 05 AR-FINANCE-CHARGE PIC ZZ,ZZZ.99.

0125.00 05 PIC X(1) VALUE SPACE.

0126.00 05 AR-LATE-CHARGE PIC Z,ZZZ.99.

0127.00 05 PIC X(1) VALUE SPACE.

0128.00 05 AR-NEW-PURCHASES PIC ZZZ,ZZZ.99-.

0129.00 05 PIC X(1) VALUE SPACE.

0130.00 05 AR-NEW-BALANCE PIC ZZZ,ZZZ.99-.

0131.00 05 PIC X(1) VALUE SPACE.

0132.00 05 AR-MINIMUM-PAYMENT PIC ZZ,ZZZ.99.

0133.00 05 PIC X(1) VALUE SPACE.

0134.00 05 AR-ACCOUNT-STATUS PIC X(8).

0135.00

0136.00 * Total Line Definitions

0137.00 01 RT1-TOTAL-LINE.

0138.00 05 PIC X(13) VALUE SPACES

0139.00 05 PIC X(16)

0140.00 VALUE “REPORT TOTALS ”

0141.00 05 RT1-TOTAL-BALANCE-FORWARD PIC Z,ZZZ,ZZZ.99-.

0142.00 05 PIC X(1) VALUE “*”.

0143.00 05 PIC X(11) VALUE SPACES

0144.00 05 RT1-TOTAL-FINANCE-CHARGE PIC ZZZ,ZZZ.99.

0145.00 05 PIC X(2) VALUE ” *”.

0146.00 05 PIC X(6) VALUE SPACES

0147.00 05 RT1-TOTAL-NEW-PURCHASES PIC Z,ZZZ,ZZZ.99-.

0148.00 05 PIC X(1) VALUE “*”.

0149.00 05 PIC X(11) VALUE SPACES

0150.00 05 RT1-TOTAL-MINIMUM-PAYMENT PIC ZZZ,ZZZ.99.

0151.00 05 PIC X(2) VALUE ” *”.

0152.00

0153.00 01 RT2-TOTAL-LINE.

0154.00 05 PIC X(41) VALUE SPACES

0155.00 05 RT2-TOTAL-PAYMENTS-RECEIVED PIC Z,ZZZ,ZZZ.99-.

0156.00 05 PIC X(1) VALUE “*”.

0157.00 05 PIC X(9) VALUE SPACES

0158.00 05 RT2-TOTAL-LATE-CHARGE PIC ZZ,ZZZ.99.

0159.00 05 PIC X(2) VALUE ” *”.

0160.00 05 PIC X(9) VALUE SPACES

0161.00 05 RT2-TOTAL-NEW-BALANCE PIC Z,ZZZ,ZZZ.99-.

0162.00 05 PIC X(1) VALUE “*”.

0163.00

0164.00

0165.00

0166.00 PROCEDURE DIVISION.

0167.00

0168.00 000-PRINT-ACCOUNTS-RECVBL-REG.

0169.00 ********** Initialization Sequence **********

0170.00 OPEN INPUT ACCOUNTS-REC-FILE

0171.00 OUTPUT ACCOUNTS-REC-REGISTER

0172.00

0173.00 PERFORM 100-INITIALIZE-VARIABLE-FIELDS

0174.00

0175.00 ********** Processing Sequence **********

0176.00 PERFORM UNTIL S1-END-OF-FILE

0177.00

0178.00 READ ACCOUNTS-REC-FILE INTO CR-CUSTOMER-RECORD

0179.00 AT END

0180.00 SET S1-END-OF-FILE TO TRUE

0181.00 NOT AT END

0182.00 PERFORM 200-PROCESS-CUSTOMER-RECORD

0183.00 END-READ

0184.00

0185.00 END-PERFORM

0186.00 ********** Termination Sequence **********

0187.00 PERFORM 700-PRINT-TOTAL-LINES

0188.00

0189.00 CLOSE ACCOUNTS-REC-FILE

0190.00 ACCOUNTS-REC-REGISTER

0191.00

0192.00 STOP RUN

0193.00 .

0194.00 ***********************************************

0195.00

0196.00 100-INITIALIZE-VARIABLE-FIELDS.

0197.00 SET S1-NOT-END-OF-FILE TO TRUE

0198.00

0199.00 MOVE RC-LINES-PER-PAGE TO RC-LINES-USED

0200.00

0201.00 INITIALIZE RC-PAGE-COUNT

0202.00 AC-ACCUMULATORS

0203.00

0204.00 ACCEPT WA-DATE-WORK FROM DATE

0205.00 MOVE WA-DATE-WORK(3:2) TO H1-MONTH

0206.00 MOVE WA-DATE-WORK(5:2) TO H1-DAY

0207.00 MOVE WA-DATE-WORK(1:2) TO H1-YEAR

0208.00 .

0209.00

0210.00 200-PROCESS-CUSTOMER-RECORD.

0211.00 IF RC-LINES-USED *= RC-LINES-PER-PAGE

0212.00 PERFORM 870-PRINT-REPORT-HEADINGS

0213.00 END-IF

0214.00

0215.00 MOVE CR-CUSTOMER-NUMBER TO AR-CUSTOMER-NUMBER

0216.00 MOVE CR-CUSTOMER-NAME TO AR-CUSTOMER-NAME

0217.00 MOVE CR-BALANCE-FORWARD TO AR-BALANCE-FORWARD

0218.00 MOVE CR-PAYMENTS-RECEIVED TO AR-PAYMENTS-RECEIVED

0219.00 PERFORM 210-CALCULATE-FINANCE-CHARGE

0220.00 MOVE WA-FINANCE-CHARGE TO AR-FINANCE-CHARGE

0221.00

0222.00 PERFORM 220-CALCULATE-LATE-CHARGE

0223.00 MOVE WA-LATE-CHARGE TO AR-LATE-CHARGE

0224.00 MOVE CR-NEW-PURCHASES TO AR-NEW-PURCHASES

0225.00

0226.00 PERFORM 230-CALCULATE-NEW-BALANCE

0227.00 MOVE WA-NEW-BALANCE TO AR-NEW-BALANCE

0228.00

0229.00 PERFORM 240-CALCULATE-MINIMUM-PAYMENT

0230.00 MOVE WA-MINIMUM-PAYMENT TO AR-MINIMUM-PAYMENT

0231.00

0232.00 PERFORM 250-DETERMINE-ACCOUNT-STATUS

0233.00

0234.00 MOVE AR-ACCOUNTS-REC-LINE TO ACCOUNTS-REC-LINE-RECORD

0235.00 MOVE 2 TO RC-LINE-SPACING

0236.00 PERFORM 890-WRITE-REPORT-LINE

0237.00

0238.00 ADD CR-BALANCE-FORWARD TO AC-TOTAL-BALANCE-FORWARD-ACCU

0239.00 ADD CR-PAYMENTS-RECEIVED TO AC-TOTAL-PAYMENTS-RECVD-ACCUM

0240.00 ADD WA-FINANCE-CHARGE TO AC-TOTAL-FINANCE-CHARGE-ACCUM

0241.00 ADD WA-LATE-CHARGE TO AC-TOTAL-LATE-CHARGE-ACCUM

0242.00 ADD CR-NEW-PURCHASES TO AC-TOTAL-NEW-PURCHASES-ACCUM

0243.00 ADD WA-NEW-BALANCE TO AC-TOTAL-NEW-BALANCE-ACCUM

0244.00 ADD WA-MINIMUM-PAYMENT TO AC-TOTAL-MINIMUM-PAYMENT-ACCU

0245.00 .

0246.00

0247.00 210-CALCULATE-FINANCE-CHARGE.

0248.00 SUBTRACT CR-PAYMENTS-RECEIVED FROM CR-BALANCE-FORWARD

0249.00 GIVING WA-NEW-BALANCE

0250.00

0251.00 IF WA-NEW-BALANCE IS POSITIVE

0252.00 MULTIPLY WA-NEW-BALANCE BY .015

0253.00 GIVING WA-FINANCE-CHARGE ROUNDED

0254.00 ELSE

0255.00 MOVE ZERO TO WA-FINANCE-CHARGE

0256.00 END-IF

0257.00 .

0258.00

0259.00 220-CALCULATE-LATE-CHARGE.

0260.00 IF CR-BALANCE-FORWARD IS POSITIVE

0261.00

0262.00 MULTIPLY CR-BALANCE-FORWARD BY .10

0263.00 GIVING WA-MINIMUM-PAYMENT-WORK ROUNDED

0264.00

0265.00 SUBTRACT CR-PAYMENTS-RECEIVED

0266.00 FROM WA-MINIMUM-PAYMENT-WORK

0267.00

0268.00 ELSE

0269.00 MOVE ZERO TO WA-MINIMUM-PAYMENT-WORK

0270.00 END-IF

0271.00

0272.00 IF WA-MINIMUM-PAYMENT-WORK IS POSITIVE

0273.00 MULTIPLY WA-MINIMUM-PAYMENT-WORK BY .01

0274.00 GIVING WA-LATE-CHARGE ROUNDED

0275.00 ELSE

0276.00 MOVE ZEROS TO WA-LATE-CHARGE

0277.00 END-IF

0278.00

0279.00 IF WA-LATE-CHARGE IS GREATER THAN ZERO

0280.00 AND WA-LATE-CHARGE IS LESS THAN 5.00

0281.00 MOVE 5.00 TO WA-LATE-CHARGE

0282.00 END-IF

0283.00 .

0284.00

0285.00 230-CALCULATE-NEW-BALANCE.

0286.00 ADD WA-FINANCE-CHARGE WA-LATE-CHARGE CR-NEW-PURCHASES

0287.00 TO WA-NEW-BALANCE

0288.00 .

0289.00

0290.00 240-CALCULATE-MINIMUM-PAYMENT.

0291.00 IF WA-NEW-BALANCE IS POSITIVE

0292.00 MULTIPLY WA-NEW-BALANCE BY .10

0293.00 GIVING WA-MINIMUM-PAYMENT ROUNDED

0294.00 ELSE

0295.00 MOVE ZERO TO WA-MINIMUM-PAYMENT

0296.00 END-IF

0297.00 .

0298.00

0299.00 250-DETERMINE-ACCOUNT-STATUS.

0300.00 EVALUATE TRUE

0301.00 WHEN WA-NEW-BALANCE IS ZERO

0302.00 OR WA-NEW-BALANCE IS NEGATIVE

0303.00 MOVE SPACES TO AR-ACCOUNT-STATUS

0304.00

0305.00 WHEN CR-BALANCE-FORWARD IS NOT ZERO

0306.00 AND CR-PAYMENTS-RECEIVED IS ZERO

0307.00 MOVE “PAST DUE” TO AR-ACCOUNT-STATUS

0308.00

0309.00 WHEN WA-MINIMUM-PAYMENT-WORK IS POSITIVE

0310.00 MOVE “OVERDUE ” TO AR-ACCOUNT-STATUS

0311.00

0312.00 WHEN OTHER

0313.00 MOVE “CURRENT ” TO AR-ACCOUNT-STATUS

0314.00 END-EVALUATE

0315.00 .

0316.00

0317.00 700-PRINT-TOTAL-LINES.

0318.00 MOVE AC-TOTAL-BALANCE-FORWARD-ACCUM

0319.00 TO RT1-TOTAL-BALANCE-FORWARD

0320.00 MOVE AC-TOTAL-FINANCE-CHARGE-ACCUM

0321.00 TO RT1-TOTAL-FINANCE-CHARGE

0322.00 MOVE AC-TOTAL-NEW-PURCHASES-ACCUM

0323.00 TO RT1-TOTAL-NEW-PURCHASES

0324.00 MOVE AC-TOTAL-MINIMUM-PAYMENT-ACCUM

0325.00 TO RT1-TOTAL-MINIMUM-PAYMENT

0326.00

0327.00 MOVE RT1-TOTAL-LINE TO ACCOUNTS-REC-LINE-RECORD

0328.00 MOVE 3 TO RC-LINE-SPACING

0329.00 PERFORM 890-WRITE-REPORT-LINE

0330.00

0331.00 MOVE AC-TOTAL-PAYMENTS-RECVD-ACCUM

0332.00 TO RT2-TOTAL-PAYMENTS-RECEIVED

0333.00 MOVE AC-TOTAL-LATE-CHARGE-ACCUM

0334.00 TO RT2-TOTAL-LATE-CHARGE

0335.00 MOVE AC-TOTAL-NEW-BALANCE-ACCUM

0336.00 TO RT2-TOTAL-NEW-BALANCE

0337.00

0338.00 MOVE RT2-TOTAL-LINE TO ACCOUNTS-REC-LINE-RECORD

0339.00 MOVE 1 TO RC-LINE-SPACING

0340.00 PERFORM 890-WRITE-REPORT-LINE

0341.00 .

0342.00

0343.00 870-PRINT-REPORT-HEADINGS.

0344.00 ADD 1 TO RC-PAGE-COUNT

0345.00 MOVE RC-PAGE-COUNT TO H1-PAGE-NBR

0346.00 MOVE H1-HEADING-LINE-1 TO ACCOUNTS-REC-LINE-RECORD

0347.00 PERFORM 880-WRITE-REPORT-TOP-LINE

0348.00

0349.00 MOVE H2-HEADING-LINE-2 TO ACCOUNTS-REC-LINE-RECORD

0350.00 MOVE 2 TO RC-LINE-SPACING

0351.00 PERFORM 890-WRITE-REPORT-LINE

0352.00

0353.00 MOVE H3-HEADING-LINE-3 TO ACCOUNTS-REC-LINE-RECORD

0354.00 MOVE 1 TO RC-LINE-SPACING

0355.00 PERFORM 890-WRITE-REPORT-LINE

0356.00 .

0357.00

0358.00 880-WRITE-REPORT-TOP-LINE.

0359.00 WRITE ACCOUNTS-REC-LINE-RECORD

0360.00 AFTER ADVANCING PAGE

0361.00 MOVE 1 TO RC-LINES-USED

0362.00 .

0363.00

0364.00 890-WRITE-REPORT-LINE.

0365.00 WRITE ACCOUNTS-REC-LINE-RECORD

0366.00 AFTER ADVANCING RC-LINE-SPACING LINES

0367.00 ADD RC-LINE-SPACING TO RC-LINES-USED

0368.00 .

****************** End of data