IDENTIFICATION DIVISION.
PROGRAM-ID. P136PART1.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
* assigns C:P136.DAT TO FILEOUPUT
SELECT FILEOUTPUT
ASSIGN TO "C:*P136.DOC"
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
*I will WRITE TO REPORT-OUT which will save the FILE TO disk
FD FILEOUTPUT.
01 REPORT-OUT PIC X(80).
WORKING-STORAGE SECTION.
01 ARE-THERE-MORE-RECORDS PIC X VALUE "Y".
* I will do a logic check ON the users input AND ASSIGN the
* /correct STRING TO the USER-IN variables
01 ENTERED-STATE PIC X.
01 ENTERED-LOCATION-CT PIC X.
01 ENTERED-LOCATION-NY PIC X.
* this will be the users INPUT AND moved TO USER-OUT
01 USER-IN.
05 STATE-IN PIC X(6).
05 LOCATION-IN PIC X(15).
05 BALLOONS-IN PIC 9.
05 PROPANE-IN PIC 99.
05 PILOTS-IN PIC 9.
05 EMPLOYEES-IN PIC 9.
05 TOTAL-EX-IN PIC 9999.
01 USER-OUT.
05 STATE-OUT PIC X(6) VALUE SPACES.
05 PIC X(7) VALUE SPACES.
05 LOCATION-OUT PIC X(15) VALUE SPACES.
05 PIC X(7) VALUE SPACES.
05 BALLOONS-OUT PIC X VALUE SPACES.
05 PIC X(7) VALUE SPACES.
05 PROPANE-OUT PIC XX VALUE SPACES.
05 PIC X(7) VALUE SPACES.
05 PILOTS-OUT PIC X VALUE SPACES.
05 PIC X(7) VALUE SPACES.
05 EMPLOYEES-OUT PIC X VALUE SPACES.
05 PIC X(6) VALUE SPACES.
05 TOTAL-EX-OUT PIC $$,$$$ VALUE SPACES.
05 PIC X(5) VALUE SPACES.
* this NEXT SECTION will define the various screens
* SCREEN SECTION.
* /START screen
01 SCREEN-HOME.
05 BLANK SCREEN.
05 LINE 1 COLUMN 1 VALUE 'STATE NO.: '.
05 COLUMN 25 PIC X TO ENTERED-STATE.
05 LINE 2 COLUMN 5 VALUE 'ENTER 1 FOR CT'.
05 LINE 3 COLUMN 5 VALUE 'ENTER 2 FOR NY'.
* /AFTER much reading online this will BLANK out PREVIOUS user
* /entries
05 ERASE EOL LINE 1 COLUMN 25.
* /this SCREEN will be displayed FOR CT
01 SCREEN-CT.
05 LINE 4 COLUMN 1 VALUE 'LOCATION NO.: '.
05 COLUMN 25 PIC X TO ENTERED-LOCATION-CT.
05 LINE 5 COLUMN 5 VALUE 'ENTER 1 FOR CANAAN'.
05 LINE 6 COLUMN 5 VALUE 'ENTER 2 FOR GOSHEN'.
05 LINE 7 COLUMN 5 VALUE 'ENTER 3 FOR LAKEVILLE'.
05 LINE 8 COLUMN 5 VALUE 'ENTER 4 FOR LIME ROCK'.
05 LINE 9 COLUMN 1 VALUE 'NUMBER OF BALLOONS: '.
05 COLUMN 25 PIC 9 TO BALLOONS-IN.
05 LINE 10 COLUMN 1 VALUE 'NO. OF PROPANE TANKS: '.
05 COLUMN 25 PIC 99 TO PROPANE-IN.
05 LINE 11 COLUMN 1 VALUE 'NO. OF PILOTS: '.
05 COLUMN 25 PIC 9 TO PILOTS-IN.
05 LINE 12 COLUMN 1 VALUE 'NO. OF OTHER EMPS: '.
05 COLUMN 25 PIC 9 TO EMPLOYEES-IN.
05 LINE 13 COLUMN 1 VALUE 'TOTAL EXPENSES ALL EMP: '.
05 COLUMN 25 PIC 9999 TO TOTAL-EX-IN.
05 ERASE EOL LINE 4 COLUMN 25.
05 ERASE EOL LINE 9 COLUMN 25.
05 ERASE EOL LINE 10 COLUMN 25.
05 ERASE EOL LINE 11 COLUMN 25.
05 ERASE EOL LINE 12 COLUMN 25.
05 ERASE EOL LINE 13 COLUMN 25.
* /this SCREEN will be displayed FOR NY
01 SCREEN-NY.
05 LINE 4 COLUMN 1 VALUE 'LOCATION NO.: '.
05 COLUMN 25 PIC X TO ENTERED-LOCATION-NY.
05 LINE 5 COLUMN 5 VALUE 'ENTER 1 FOR ITHACA'.
05 LINE 6 COLUMN 5 VALUE 'ENTER 2 FOR LAKE GEORGE'.
05 LINE 7 COLUMN 5 VALUE 'ENTER 3 FOR QUOPUE'.
05 LINE 9 COLUMN 1 VALUE 'NUMBER OF BALLOONS: '.
05 COLUMN 25 PIC 9 TO BALLOONS-IN.
05 LINE 10 COLUMN 1 VALUE 'NO. OF PROPANE TANKS: '.
05 COLUMN 25 PIC 99 TO PROPANE-IN.
05 LINE 11 COLUMN 1 VALUE 'NO. OF PILOTS: '.
05 COLUMN 25 PIC 9 TO PILOTS-IN.
05 LINE 12 COLUMN 1 VALUE 'NO. OF OTHER EMPS: '.
05 COLUMN 25 PIC 9 TO EMPLOYEES-IN.
05 LINE 13 COLUMN 1 VALUE 'TOTAL EXPENSES ALL EMP: '.
05 COLUMN 25 PIC 9999 TO TOTAL-EX-IN.
05 ERASE EOL LINE 4 COLUMN 25.
05 ERASE EOL LINE 9 COLUMN 25.
05 ERASE EOL LINE 10 COLUMN 25.
05 ERASE EOL LINE 11 COLUMN 25.
05 ERASE EOL LINE 12 COLUMN 25.
05 ERASE EOL LINE 13 COLUMN 25.
* /this SCREEN will be used IF an incorrect state IS entered
01 SCREEN-INCORRECT-STATE.
05 BLANK SCREEN.
05 LINE 1 COLUMN 1 VALUE 'INCORRECT STATE CODE'.
05 LINE 2 COLUMN 1 VALUE 'PLEASE ENTER: '.
05 LINE 3 COLUMN 5 VALUE '1 FOR CT'.
05 LINE 4 COLUMN 5 VALUE 'OR 2 FOR NY'.
05 LINE 5 COLUMN 5 PIC 9 TO ENTERED-STATE.
05 ERASE EOL LINE 5 COLUMN 5.
* /this IS the incorrect location SCREEN FOR CT
01 SCREEN-INCORRECT-LOCATION-CT.
05 BLANK SCREEN.
05 LINE 1 COLUMN 1 VALUE 'INCORRECT LOCATION CODE'.
05 LINE 2 COLUMN 1 VALUE 'PLEASE ENTER: '.
05 LINE 3 COLUMN 5 VALUE 'ENTER 1 FOR CANAAN'.
05 LINE 4 COLUMN 5 VALUE 'ENTER 2 FOR GOSHEN'.
05 LINE 5 COLUMN 5 VALUE 'ENTER 3 FOR LAKEVILLE'.
05 LINE 6 COLUMN 5 VALUE 'ENTER 4 FOR LIME ROCK'.
05 LINE 7 COLUMN 5 PIC 9 TO ENTERED-LOCATION-CT.
05 ERASE EOL LINE 7 COLUMN 5.
* /this IS the incorrect location SCREEN FOR NY
01 SCREEN-INCORRECT-LOCATION-NY.
05 BLANK SCREEN.
05 LINE 1 COLUMN 1 VALUE 'INCORRECT LOCATION CODE'.
05 LINE 2 COLUMN 1 VALUE 'PLEASE ENTER: '.
05 LINE 3 COLUMN 5 VALUE 'ENTER 1 FOR ITHACA'.
05 LINE 4 COLUMN 5 VALUE 'ENTER 2 FOR LAKE GEORGE'.
05 LINE 5 COLUMN 5 VALUE 'ENTER 3 FOR QUOPUE'.
05 LINE 6 COLUMN 5 PIC 9 TO ENTERED-LOCATION-NY.
05 ERASE EOL LINE 6 COLUMN 5.
* /this IS the SCREEN TO determine IF there IS more DATA
01 SCREEN-MORE-RECORDS.
05 BLANK SCREEN.
05 LINE 1 COLUMN 1 VALUE 'IS THERE MORE DATA?: '.
05 COLUMN 25 PIC X TO ARE-THERE-MORE-RECORDS.
05 LINE 2 COLUMN 1 VALUE 'ENTER Y OR N'.
05 ERASE EOL LINE 1 COLUMN 25.
PROCEDURE DIVISION.
100-MAIN-MODULE.
OPEN OUTPUT FILEOUTPUT
* /This will loop 150-run-module UNTIL the user IS done
PERFORM 150-RUN-MODULE
UNTIL ARE-THERE-MORE-RECORDS = 'n' OR 'N'
CLOSE FILEOUTPUT
STOP RUN.
150-RUN-MODULE.
PERFORM 200-INITIALIZATION-MODULE
* /starts TO ACCEPT data
PERFORM 300-ACCEPT-DATA-MODULE
* /checks the users INPUT FOR state
PERFORM 400-STATE-CHECK-MODULE
* /checks the users INPUT FOR location
EVALUATE ENTERED-STATE
WHEN 1 PERFORM 500-LOCATION-CHECK-MODULE-CT
WHEN 2 PERFORM 510-LOCATION-CHECK-MODULE-NY
WHEN OTHER DISPLAY 'ERROR 1'
END-EVALUATE
PERFORM 600-WRITE-DATA-MODULE
PERFORM 700-MORE-DATA-MODULE.
* /resets VALUES used FOR logic tests
200-INITIALIZATION-MODULE.
MOVE SPACES TO ENTERED-STATE
MOVE SPACES TO ENTERED-LOCATION-CT
MOVE SPACES TO ENTERED-LOCATION-NY
MOVE SPACES TO USER-IN.
300-ACCEPT-DATA-MODULE.
DISPLAY SCREEN-HOME
ACCEPT SCREEN-HOME.
400-STATE-CHECK-MODULE.
EVALUATE ENTERED-STATE
WHEN 1 PERFORM 420-STATE-CT-MODULE
WHEN 2 PERFORM 425-STATE-NY-MODULE
WHEN OTHER PERFORM 430-STATE-ERROR-MODULE
END-EVALUATE.
* /accepts the rest OF the DATA FOR CT
420-STATE-CT-MODULE.
DISPLAY SCREEN-CT
ACCEPT SCREEN-CT
MOVE "1 (CT)" TO STATE-IN.
* /accepts the rest OF the DATA FOR NY
425-STATE-NY-MODULE.
DISPLAY SCREEN-NY
ACCEPT SCREEN-NY
MOVE "2 (NY)" TO STATE-IN.
430-STATE-ERROR-MODULE.
DISPLAY SCREEN-INCORRECT-STATE
ACCEPT SCREEN-INCORRECT-STATE
* /checks users INPUT FOR state
EVALUATE ENTERED-STATE
WHEN 1 PERFORM 420-STATE-CT-MODULE
WHEN 2 PERFORM 425-STATE-NY-MODULE
WHEN OTHER PERFORM 430-STATE-ERROR-MODULE
END-EVALUATE.
* /check location INPUT IF state = CT
500-LOCATION-CHECK-MODULE-CT.
EVALUATE ENTERED-LOCATION-CT
WHEN 1 MOVE "1 (Canaan)" TO LOCATION-IN
WHEN 2 MOVE "2 (Goshen)" TO LOCATION-IN
WHEN 3 MOVE "3 (Lakeville)" TO LOCATION-IN
WHEN 4 MOVE "4 (Lime Rock" TO LOCATION-IN
WHEN OTHER PERFORM 501-CT-WRONG-LOC
END-EVALUATE.
501-CT-WRONG-LOC.
DISPLAY SCREEN-INCORRECT-LOCATION-CT
ACCEPT SCREEN-INCORRECT-LOCATION-CT
EVALUATE ENTERED-LOCATION-CT
WHEN 1 MOVE "1 (Canaan)" TO LOCATION-IN
WHEN 2 MOVE "2 (Goshen)" TO LOCATION-IN
WHEN 3 MOVE "3 (Lakeville)" TO LOCATION-IN
WHEN 4 MOVE "4 (Lime Rock" TO LOCATION-IN
WHEN OTHER PERFORM 501-CT-WRONG-LOC
END-EVALUATE.
* /check location INPUT IF state = NY
510-LOCATION-CHECK-MODULE-NY.
EVALUATE ENTERED-LOCATION-NY
WHEN 1 MOVE "1 (Ithaca)" TO LOCATION-IN
WHEN 2 MOVE "2 (Lake George)" TO LOCATION-IN
WHEN 3 MOVE "3 (Quopue)" TO LOCATION-IN
WHEN OTHER PERFORM 512-NY-WRONG-LOC
END-EVALUATE.
512-NY-WRONG-LOC.
DISPLAY SCREEN-INCORRECT-LOCATION-NY
ACCEPT SCREEN-INCORRECT-LOCATION-NY
EVALUATE ENTERED-LOCATION-NY
WHEN 1 MOVE "1 (Ithaca)" TO LOCATION-IN
WHEN 2 MOVE "2 (Lake George)" TO LOCATION-IN
WHEN 3 MOVE "3 (Quopue)" TO LOCATION-IN
WHEN OTHER PERFORM 512-NY-WRONG-LOC
END-EVALUATE.
* /writes DATA TO file
600-WRITE-DATA-MODULE.
MOVE STATE-IN TO STATE-OUT
MOVE LOCATION-IN TO LOCATION-OUT
MOVE BALLOONS-IN TO BALLOONS-OUT
MOVE PROPANE-IN TO PROPANE-OUT
MOVE PILOTS-IN TO PILOTS-OUT
MOVE EMPLOYEES-IN TO EMPLOYEES-OUT
MOVE TOTAL-EX-IN TO TOTAL-EX-OUT
WRITE REPORT-OUT FROM USER-OUT
AFTER ADVANCING 2 LINES.
700-MORE-DATA-MODULE.
DISPLAY SCREEN-MORE-RECORDS
ACCEPT SCREEN-MORE-RECORDS.
¤ Dauer der Verarbeitung: 0.4 Sekunden
(vorverarbeitet)
¤
|
Haftungshinweis
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.
|