$ 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.