Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PROGRAM-ID. PROGRAM1 AS "WEEK13___RANDOMSEQUENTIAL.PROGRAM1".
- ENVIRONMENT DIVISION.
- INPUT-OUTPUT SECTION.
- FILE-CONTROL.
- SELECT CUSTOMER-INPUT-FILE ASSIGN TO
- "C:\USERS\BWOOD\DOCUMENTS\COBOL\WEEK13_INPUT.DAT"
- ORGANIZATION IS LINE SEQUENTIAL.
- SELECT CUSTOMER-MASTER-FILE ASSIGN TO
- "C:\USERS\BWOOD\DOCUMENTS\COBOL\WEEK13_MASTER.DAT"
- ORGANIZATION IS INDEXED
- ACCESS IS RANDOM RECORD KEY IS MASTER-CUSTOMER-NO.
- SELECT CUSTOMER-MASTER-DISPLAY-FILE ASSIGN TO
- "C:\USERS\BWOOD\DOCUMENTS\COBOL\WEEK13_MASTER.DAT"
- ORGANIZATION IS INDEXED
- ACCESS IS SEQUENTIAL
- RECORD KEY IS DISPLAY-CUSTOMER-NO.
- DATA DIVISION.
- FD CUSTOMER-INPUT-FILE.
- 01 INPUT-RECORD.
- 05 CUSTOMER-NO PIC A(5).
- 05 CUSTOMER-NAME PIC A(20).
- 05 DATE-OF-PURCHASE.
- 10 DATE-OF-PURCHASE-M PIC 9(2).
- 10 DATE-OF-PURCHASE-D PIC 9(2).
- 10 DATE-OF-PURCHASE-Y PIC 9(4).
- 05 AMT-OF-PURCHASE PIC 9(5).
- FD CUSTOMER-MASTER-FILE.
- 01 MASTER-REC-IO.
- 05 MASTER-CUSTOMER-NO PIC A(5).
- 05 MASTER-CUSTOMER-NAME PIC A(20).
- 05 MASTER-DATE-OF-LAST-PURCHASE.
- 10 MASTER-DATE-OF-PURCHASE-M PIC 9(2).
- 10 MASTER-DATE-OF-PURCHASE-D PIC 9(2).
- 10 MASTER-DATE-OF-PURCHASE-Y PIC 9(4).
- 05 MASTER-AMOUNT-OWED PIC 9(6).
- FD CUSTOMER-MASTER-DISPLAY-FILE.
- 01 DISPLAY-REC.
- 05 DISPLAY-CUSTOMER-NO PIC A(5).
- 05 DISPLAY-CUSTOMER-NAME PIC A(20).
- 05 DISPLAY-DATE-OF-LAST-PURCHASE.
- 10 DISPLAY-DATE-OF-PURCHASE-M PIC 9(2).
- 10 DISPLAY-DATE-OF-PURCHASE-D PIC 9(2).
- 10 DISPLAY-DATE-OF-PURCHASE-Y PIC 9(4).
- 05 DISPLAY-AMOUNT-OWED PIC 9(6).
- WORKING-STORAGE SECTION.
- 01 WORK-AREA.
- 05 ARE-THERE-MORE-RECORDS PIC X(1) VALUE "Y".
- 88 NO-MORE-RECORDS VALUE "N".
- PROCEDURE DIVISION.
- 100-MAIN.
- OPEN INPUT CUSTOMER-INPUT-FILE
- OPEN I-O CUSTOMER-MASTER-FILE
- PERFORM UNTIL NO-MORE-RECORDS
- READ CUSTOMER-INPUT-FILE
- AT END
- MOVE "N" TO ARE-THERE-MORE-RECORDS
- NOT AT END
- PERFORM 200-CALC
- END-READ
- END-PERFORM
- CLOSE CUSTOMER-INPUT-FILE
- CLOSE CUSTOMER-MASTER-FILE
- PERFORM 500-SHOW-MASTER-FILE
- STOP RUN.
- 200-CALC.
- MOVE SPACES TO MASTER-REC-IO
- MOVE CUSTOMER-NO TO MASTER-CUSTOMER-NO
- READ CUSTOMER-MASTER-FILE
- INVALID KEY PERFORM 700-INSERT-REC
- NOT INVALID KEY PERFORM 800-UPDATE-REC
- END-READ.
- 500-SHOW-MASTER-FILE.
- OPEN INPUT CUSTOMER-MASTER-DISPLAY-FILE
- MOVE "Y" TO ARE-THERE-MORE-RECORDS
- PERFORM UNTIL NO-MORE-RECORDS
- READ CUSTOMER-MASTER-DISPLAY-FILE
- AT END
- MOVE "N" TO ARE-THERE-MORE-RECORDS
- NOT AT END
- DISPLAY DISPLAY-CUSTOMER-NO & " " & DISPLAY-CUSTOMER-NAME & " " &
- DISPLAY-DATE-OF-LAST-PURCHASE & " " & DISPLAY-AMOUNT-OWED
- END-READ
- END-PERFORM
- CLOSE CUSTOMER-MASTER-DISPLAY-FILE.
- 700-INSERT-REC.
- MOVE CUSTOMER-NO TO MASTER-CUSTOMER-NO
- MOVE CUSTOMER-NAME TO MASTER-CUSTOMER-NAME
- MOVE DATE-OF-PURCHASE TO MASTER-DATE-OF-LAST-PURCHASE
- MOVE AMT-OF-PURCHASE TO MASTER-AMOUNT-OWED
- WRITE MASTER-REC-IO
- INVALID KEY DISPLAY "ERROR INSERTING RECORD" & CUSTOMER-NO
- NOT INVALID KEY DISPLAY "INSERTED CUSTOMER " & CUSTOMER-NO
- END-WRITE.
- 800-UPDATE-REC.
- MOVE CUSTOMER-NO TO MASTER-CUSTOMER-NO
- MOVE CUSTOMER-NAME TO MASTER-CUSTOMER-NAME
- MOVE DATE-OF-PURCHASE TO MASTER-DATE-OF-LAST-PURCHASE
- ADD AMT-OF-PURCHASE TO MASTER-AMOUNT-OWED
- REWRITE MASTER-REC-IO
- INVALID KEY DISPLAY "ERROR UPDATING RECORD" & CUSTOMER-NO
- NOT INVALID KEY DISPLAY "UPDATED CUSTOMER " & CUSTOMER-NO
- END-REWRITE.
- END PROGRAM PROGRAM1.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement