>>SOURCE FORMAT IS 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.