DATADIVISION. FILESECTION. *I will WRITE TO REPORT-OUT which will save the FILE TO disk FD FILEOUTPUT.
01 REPORT-OUT PIC X(80).
WORKING-STORAGESECTION.
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.
* 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.
PROCEDUREDIVISION.
100-MAIN-MODULE. OPENOUTPUT 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 STOPRUN.
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 WHENOTHERDISPLAY'ERROR 1' END-EVALUATE PERFORM 600-WRITE-DATA-MODULE PERFORM 700-MORE-DATA-MODULE.
* /resets VALUES used FOR logic tests
200-INITIALIZATION-MODULE. MOVESPACESTO ENTERED-STATE MOVESPACESTO ENTERED-LOCATION-CT MOVESPACESTO ENTERED-LOCATION-NY MOVESPACESTO 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 WHENOTHERPERFORM 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 WHENOTHERPERFORM 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 WHENOTHERPERFORM 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 WHENOTHERPERFORM 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 WHENOTHERPERFORM 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 WHENOTHERPERFORM 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
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 und die Messung sind noch experimentell.