$ SET SOURCEFORMAT"FREE" IDENTIFICATION DIVISION. PROGRAM-ID. DP173EXAM1986. AUTHOR. Michael Coughlan ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT BOOKING-FILE ASSIGN TO "BOOKING.DAT" ORGANIZATION IS LINE SEQUENTIAL. SELECT WORK-FILE ASSIGN TO "WORK.DAT". SELECT SORTED-FILE ASSIGN TO "BOOKSORT.DAT" ORGANIZATION IS LINE SEQUENTIAL. SELECT SUMMARY-FILE ASSIGN TO "SUMMARY.DAT" ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD BOOKING-FILE. 01 CUSTOMER-RECORD-FA. 02 CUST-NAME-FA PIC X(30). 02 DEST-NAME-FA PIC X(20). 02 BOOKING-CHARGE-FA PIC 9(5)V99. 02 NUM-OF-MALES-FA PIC 99. 02 NUM-OF-FEMALES-FA PIC 99. 02 NUM-OF-CHILDREN-FA PIC 99. 02 CATEGORY-FA PIC X. 88 TOURIST VALUE "T". SD WORK-FILE. 01 WORK-RECORD-FB. 02 FILLER PIC X(30). 02 DEST-NAME-FB PIC X(20). 02 FILLER PIC X(14). FD SORTED-FILE. 01 CUSTOMER-RECORD-FC. 02 CUST-NAME-FC PIC X(30). 02 DEST-NAME-FC PIC X(20). 02 BOOKING-CHARGE-FC PIC 9(5)V99. 02 NUM-OF-MALES-FC PIC 99. 02 NUM-OF-FEMALES-FC PIC 99. 02 NUM-OF-CHILDREN-FC PIC 99. 02 CATEGORY-FC PIC X. FD SUMMARY-FILE. 01 SUMMARY-RECORD-FD. 02 DEST-NAME-FD PIC X(20). 02 TOTAL-RECEIPTS-FD PIC 9(8)V99. 02 TOTAL-MALES-FD PIC 9(6). 02 TOTAL-FEMALES-FD PIC 9(6). 02 TOTAL-CHILDREN-FD PIC 9(6). WORKING-STORAGE SECTION. 01 FLAGS-WA. 02 IS-IT-END-OF-FILE PIC 9 VALUE ZERO. 88 END-OF-FILE VALUE 1. 88 NOT-END-OF-FILE VALUE 0. 01 LOC-SURCHARGE-VALUES-WB. 02 FILLER PIC X(39) VALUE "AFGHANISTAN50CAMBODIA 24CORSICA 18". 02 FILLER PIC X(39) VALUE "EL SALVADOR85HAITI 21HONDURAS 23". 02 FILLER PIC X(39) VALUE "ISRAEL 11IRAN 57IRAQ 33". 02 FILLER PIC X(39) VALUE "LAOS 13LEBANON 90LIBYA 20". 02 FILLER PIC X(39) VALUE "NICARAGUA 47SARDINIA 25SICILY 20". 02 FILLER PIC X(26) VALUE "SPAIN 05SURINAM 07". 01 LOC-SURCHARGE-TABLE-WB REDEFINES LOC-SURCHARGE-VALUES-WB. 02 LOCATION-GROUP-WB OCCURS 17 TIMES INDEXED BY LOC-PTR. 03 LOCATION-WB PIC X(11). 03 SURCHARGE-WB PIC 99. 01 MISC-VARIABLES-WC. 02 SURCHARGE-WC PIC 9(4)V99. 02 HOLD-DEST-WC PIC X(20). PROCEDURE DIVISION. MAIN SECTION. 10-START. SORT WORK-FILE ON ASCENDING DEST-NAME-FB INPUT PROCEDURE IS SELECT-TOURISTS GIVING SORTED-FILE. OPEN INPUT SORTED-FILE. OPEN OUTPUT SUMMARY-FILE. READ SORTED-FILE AT END SET END-OF-FILE TO TRUE. PERFORM 20-CREATE-SUMMARY-FILE UNTIL END-OF-FILE. CLOSE SORTED-FILE SUMMARY-FILE. STOP RUN. 20-CREATE-SUMMARY-FILE. MOVE ZEROS TO SUMMARY-RECORD-FD. MOVE DEST-NAME-FC TO DEST-NAME-FD. PERFORM 30-PROCESS-DESTINATION-RECS UNTIL DEST-NAME-FC NOT EQUAL TO DEST-NAME-FD OR END-OF-FILE. SET LOC-PTR TO 1. SEARCH LOCATION-GROUP-WB AT END DISPLAY DEST-NAME-FD " NOT HOSTILE" WHEN LOCATION-WB(LOC-PTR) = DEST-NAME-FD COMPUTE SURCHARGE-WC ROUNDED = (TOTAL-RECEIPTS-FD / 100) * SURCHARGE-WB(LOC-PTR) ADD SURCHARGE-WC TO TOTAL-RECEIPTS-FD. WRITE SUMMARY-RECORD-FD. 30-PROCESS-DESTINATION-RECS. ADD BOOKING-CHARGE-FC TO TOTAL-RECEIPTS-FD. ADD NUM-OF-MALES-FC TO TOTAL-MALES-FD. ADD NUM-OF-FEMALES-FC TO TOTAL-FEMALES-FD. ADD NUM-OF-CHILDREN-FC TO TOTAL-CHILDREN-FD READ SORTED-FILE AT END SET END-OF-FILE TO TRUE. SELECT-TOURISTS SECTION. BEGIN. OPEN INPUT BOOKING-FILE. READ BOOKING-FILE AT END SET END-OF-FILE TO TRUE. PERFORM UNTIL END-OF-FILE IF TOURIST THEN INSPECT DEST-NAME-FA CONVERTING "abcdefghijklmnopqrstuvwxyz" TO "ABCDEFGHIJKLMNOPQRSTUVWXYZ" RELEASE WORK-RECORD-FB FROM CUSTOMER-RECORD-FA END-IF READ BOOKING-FILE AT END SET END-OF-FILE TO TRUE END-READ END-PERFORM. SET NOT-END-OF-FILE TO TRUE. CLOSE BOOKING-FILE.