Advertisement
Guest User

Untitled

a guest
Dec 6th, 2017
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
COBOL 4.81 KB | None | 0 0
  1.  
  2.        PROGRAM-ID. PROGRAM1 AS "WEEK13___RANDOMSEQUENTIAL.PROGRAM1".
  3.  
  4.        ENVIRONMENT DIVISION.
  5.        
  6.        INPUT-OUTPUT SECTION.
  7.  
  8.        FILE-CONTROL.
  9.        
  10.        SELECT CUSTOMER-INPUT-FILE ASSIGN TO
  11.            "C:\USERS\BWOOD\DOCUMENTS\COBOL\WEEK13_INPUT.DAT"
  12.                ORGANIZATION IS LINE SEQUENTIAL.
  13.        
  14.        SELECT CUSTOMER-MASTER-FILE ASSIGN TO
  15.            "C:\USERS\BWOOD\DOCUMENTS\COBOL\WEEK13_MASTER.DAT"
  16.                ORGANIZATION IS INDEXED
  17.                ACCESS IS RANDOM RECORD KEY IS MASTER-CUSTOMER-NO.
  18.                
  19.        SELECT CUSTOMER-MASTER-DISPLAY-FILE ASSIGN TO
  20.            "C:\USERS\BWOOD\DOCUMENTS\COBOL\WEEK13_MASTER.DAT"
  21.                ORGANIZATION IS INDEXED
  22.                ACCESS IS SEQUENTIAL
  23.                RECORD KEY IS DISPLAY-CUSTOMER-NO.
  24.        
  25.        DATA DIVISION.
  26.        
  27.        FD CUSTOMER-INPUT-FILE.
  28.        01 INPUT-RECORD.
  29.            05 CUSTOMER-NO              PIC A(5).
  30.            05 CUSTOMER-NAME            PIC A(20).
  31.            05 DATE-OF-PURCHASE.
  32.                10 DATE-OF-PURCHASE-M   PIC 9(2).
  33.                10 DATE-OF-PURCHASE-D   PIC 9(2).
  34.                10 DATE-OF-PURCHASE-Y   PIC 9(4).
  35.            05 AMT-OF-PURCHASE          PIC 9(5).
  36.        
  37.        FD CUSTOMER-MASTER-FILE.
  38.        01 MASTER-REC-IO.
  39.            05 MASTER-CUSTOMER-NO       PIC A(5).
  40.            05 MASTER-CUSTOMER-NAME     PIC A(20).
  41.            05 MASTER-DATE-OF-LAST-PURCHASE.
  42.                10 MASTER-DATE-OF-PURCHASE-M   PIC 9(2).
  43.                10 MASTER-DATE-OF-PURCHASE-D   PIC 9(2).
  44.                10 MASTER-DATE-OF-PURCHASE-Y   PIC 9(4).
  45.            05 MASTER-AMOUNT-OWED       PIC 9(6).
  46.            
  47.        FD CUSTOMER-MASTER-DISPLAY-FILE.
  48.        01 DISPLAY-REC.
  49.            05 DISPLAY-CUSTOMER-NO       PIC A(5).
  50.            05 DISPLAY-CUSTOMER-NAME     PIC A(20).
  51.            05 DISPLAY-DATE-OF-LAST-PURCHASE.
  52.                10 DISPLAY-DATE-OF-PURCHASE-M   PIC 9(2).
  53.                10 DISPLAY-DATE-OF-PURCHASE-D   PIC 9(2).
  54.                10 DISPLAY-DATE-OF-PURCHASE-Y   PIC 9(4).
  55.            05 DISPLAY-AMOUNT-OWED       PIC 9(6).
  56.        
  57.        WORKING-STORAGE SECTION.
  58.  
  59.        01 WORK-AREA.
  60.            05 ARE-THERE-MORE-RECORDS   PIC X(1) VALUE "Y".
  61.                88 NO-MORE-RECORDS               VALUE "N".
  62.  
  63.        PROCEDURE DIVISION.
  64.  
  65.        100-MAIN.
  66.        
  67.            OPEN INPUT CUSTOMER-INPUT-FILE
  68.            OPEN I-O CUSTOMER-MASTER-FILE
  69.            
  70.            PERFORM UNTIL NO-MORE-RECORDS
  71.                READ CUSTOMER-INPUT-FILE
  72.                    AT END
  73.                        MOVE "N" TO ARE-THERE-MORE-RECORDS
  74.                    NOT AT END
  75.                        PERFORM 200-CALC
  76.                END-READ
  77.            END-PERFORM
  78.            
  79.            CLOSE CUSTOMER-INPUT-FILE
  80.            CLOSE CUSTOMER-MASTER-FILE
  81.            
  82.            PERFORM 500-SHOW-MASTER-FILE
  83.            
  84.            STOP RUN.
  85.  
  86.        200-CALC.
  87.        
  88.            MOVE SPACES TO MASTER-REC-IO
  89.            MOVE CUSTOMER-NO TO MASTER-CUSTOMER-NO
  90.            READ CUSTOMER-MASTER-FILE
  91.                INVALID KEY PERFORM 700-INSERT-REC
  92.                NOT INVALID KEY PERFORM 800-UPDATE-REC
  93.            END-READ.
  94.        
  95.        500-SHOW-MASTER-FILE.
  96.        
  97.            OPEN INPUT CUSTOMER-MASTER-DISPLAY-FILE
  98.            
  99.            MOVE "Y" TO ARE-THERE-MORE-RECORDS
  100.            PERFORM UNTIL NO-MORE-RECORDS
  101.                READ CUSTOMER-MASTER-DISPLAY-FILE
  102.                    AT END
  103.                        MOVE "N" TO ARE-THERE-MORE-RECORDS
  104.                    NOT AT END
  105.                        DISPLAY DISPLAY-CUSTOMER-NO & " " & DISPLAY-CUSTOMER-NAME & " " &
  106.                            DISPLAY-DATE-OF-LAST-PURCHASE & " " & DISPLAY-AMOUNT-OWED
  107.                END-READ
  108.            END-PERFORM
  109.            
  110.            CLOSE CUSTOMER-MASTER-DISPLAY-FILE.
  111.            
  112.        
  113.        700-INSERT-REC.
  114.        
  115.            MOVE CUSTOMER-NO TO MASTER-CUSTOMER-NO
  116.            MOVE CUSTOMER-NAME TO MASTER-CUSTOMER-NAME
  117.            MOVE DATE-OF-PURCHASE TO MASTER-DATE-OF-LAST-PURCHASE
  118.            MOVE AMT-OF-PURCHASE TO MASTER-AMOUNT-OWED
  119.            
  120.            WRITE MASTER-REC-IO
  121.                INVALID KEY DISPLAY "ERROR INSERTING RECORD" & CUSTOMER-NO
  122.                NOT INVALID KEY DISPLAY "INSERTED CUSTOMER " & CUSTOMER-NO
  123.            END-WRITE.
  124.        
  125.        800-UPDATE-REC.
  126.        
  127.            MOVE CUSTOMER-NO TO MASTER-CUSTOMER-NO
  128.            MOVE CUSTOMER-NAME TO MASTER-CUSTOMER-NAME
  129.            MOVE DATE-OF-PURCHASE TO MASTER-DATE-OF-LAST-PURCHASE
  130.            ADD AMT-OF-PURCHASE TO MASTER-AMOUNT-OWED
  131.            
  132.            REWRITE MASTER-REC-IO
  133.                INVALID KEY DISPLAY "ERROR UPDATING RECORD" & CUSTOMER-NO
  134.                NOT INVALID KEY DISPLAY "UPDATED CUSTOMER " & CUSTOMER-NO      
  135.            END-REWRITE.
  136.        
  137.        END PROGRAM PROGRAM1.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement