IDENTIFICATION DIVISION. PROGRAM-ID. CHAPTER8. ****************************************************** * PROGRAM CALCULATES A DISCOUNT ON SALES * ****************************************************** * This program has no date function so it is Y2K compliant ** ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT CUSTOMER-TRANS ASSIGN TO 'DISK1'. SELECT CUSTOMER-MASTER ASSIGN TO 'DISK2'. DATA DIVISION. FILE SECTION. FD CUSTOMER-TRANS LABEL RECORDS ARE STANDARD. 01 TRANS-REC. 05 IDENT-IN PIC X(34). 05 SALES-AMT-IN PIC 999V99. FD CUSTOMER-MASTER LABEL RECORDS ARE STANDARD. 01 MASTER-REC. 05 IDENT-OUT PIC X(34). 05 SALES-AMT-OUT PIC 999V99. 05 DISC-PERCENT-OUT PIC V99. 05 DISC-AMT-OUT PIC 999V99. 05 NET-AMT-OUT PIC 999V99. WORKING-STORAGE SECTION. 01 ARE-THERE-MORE-RECORDS PIC XXX VALUE 'YES'. 88 NO-MORE-RECORDS VALUE 'NO '. PROCEDURE DIVISION. **************************************************** * MAIN MODULE CONTROLS OVERALL PROGRAM LOGIC * **************************************************** 100-MAIN-MODULE. OPEN INPUT CUSTOMER-TRANS OUTPUT CUSTOMER-MASTER MOVE SPACES TO MASTER-REC PERFORM UNTIL ARE-THERE-MORE-RECORDS = 'NO ' READ CUSTOMER-TRANS AT END MOVE 'NO ' TO ARE-THERE-MORE-RECORDS NOT AT END PERFORM 200-CALC-RTN END-READ END-PERFORM CLOSE CUSTOMER-TRANS CUSTOMER-MASTER STOP RUN. **************************************************** * PERFORMED FROM 100-MAIN-MODULE, THIS ROUTINE * * CALCULATES A DISCOUNT AND NET AMOUNT FOR * * EACH TRANSACTION * **************************************************** 200-CALC-RTN. MOVE IDENT-IN TO IDENT-OUT. MOVE SALES-AMT-IN TO SALES-AMT-OUT IF SALES-AMT-IN > 500.00 MOVE .05 TO DISC-PERCENT-OUT END-IF IF SALES-AMT-IN >= 100.00 AND <= 500.00 MOVE .02 TO DISC-PERCENT-OUT END-IF IF SALES-AMT-IN < 100.00 MOVE .01 TO DISC-PERCENT-OUT END-IF ******************************************************* * NOTE THAT END-IF, <=, AND >= ARE USED WITH * * COBOL 85 ONLY * ******************************************************* MULTIPLY SALES-AMT-IN BY DISC-PERCENT-OUT GIVING DISC-AMT-OUT SUBTRACT DISC-AMT-OUT FROM SALES-AMT-IN GIVING NET-AMT-OUT WRITE MASTER-REC.