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 PIC9. 05 PROPANE-IN PIC99. 05 PILOTS-IN PIC9. 05 EMPLOYEES-IN PIC9. 05 TOTAL-EX-IN PIC9999.
* this NEXT SECTION will define the various screens * SCREEN SECTION. * /START screen 01 SCREEN-HOME. 05BLANK SCREEN. 05LINE1COLUMN1VALUE'STATE NO.: '. 05COLUMN25PIC X TO ENTERED-STATE. 05LINE2COLUMN5VALUE'ENTER 1 FOR CT'. 05LINE3COLUMN5VALUE'ENTER 2 FOR NY'.
* /AFTER much reading online this will BLANK out PREVIOUS user * /entries 05 ERASE EOL LINE1COLUMN25.
* /this SCREEN will be displayed FOR CT 01 SCREEN-CT. 05LINE4COLUMN1VALUE'LOCATION NO.: '. 05COLUMN25PIC X TO ENTERED-LOCATION-CT. 05LINE5COLUMN5VALUE'ENTER 1 FOR CANAAN'. 05LINE6COLUMN5VALUE'ENTER 2 FOR GOSHEN'. 05LINE7COLUMN5VALUE'ENTER 3 FOR LAKEVILLE'. 05LINE8COLUMN5VALUE'ENTER 4 FOR LIME ROCK'. 05LINE9COLUMN1VALUE'NUMBER OF BALLOONS: '. 05COLUMN25PIC9TO BALLOONS-IN. 05LINE10COLUMN1VALUE'NO. OF PROPANE TANKS: '. 05COLUMN25PIC99TO PROPANE-IN. 05LINE11COLUMN1VALUE'NO. OF PILOTS: '. 05COLUMN25PIC9TO PILOTS-IN. 05LINE12COLUMN1VALUE'NO. OF OTHER EMPS: '. 05COLUMN25PIC9TO EMPLOYEES-IN. 05LINE13COLUMN1VALUE'TOTAL EXPENSES ALL EMP: '. 05COLUMN25PIC9999TO TOTAL-EX-IN. 05 ERASE EOL LINE4COLUMN25. 05 ERASE EOL LINE9COLUMN25. 05 ERASE EOL LINE10COLUMN25. 05 ERASE EOL LINE11COLUMN25. 05 ERASE EOL LINE12COLUMN25. 05 ERASE EOL LINE13COLUMN25.
* /this SCREEN will be displayed FOR NY 01 SCREEN-NY. 05LINE4COLUMN1VALUE'LOCATION NO.: '. 05COLUMN25PIC X TO ENTERED-LOCATION-NY. 05LINE5COLUMN5VALUE'ENTER 1 FOR ITHACA'. 05LINE6COLUMN5VALUE'ENTER 2 FOR LAKE GEORGE'. 05LINE7COLUMN5VALUE'ENTER 3 FOR QUOPUE'. 05LINE9COLUMN1VALUE'NUMBER OF BALLOONS: '. 05COLUMN25PIC9TO BALLOONS-IN. 05LINE10COLUMN1VALUE'NO. OF PROPANE TANKS: '. 05COLUMN25PIC99TO PROPANE-IN. 05LINE11COLUMN1VALUE'NO. OF PILOTS: '. 05COLUMN25PIC9TO PILOTS-IN. 05LINE12COLUMN1VALUE'NO. OF OTHER EMPS: '. 05COLUMN25PIC9TO EMPLOYEES-IN. 05LINE13COLUMN1VALUE'TOTAL EXPENSES ALL EMP: '. 05COLUMN25PIC9999TO TOTAL-EX-IN. 05 ERASE EOL LINE4COLUMN25. 05 ERASE EOL LINE9COLUMN25. 05 ERASE EOL LINE10COLUMN25. 05 ERASE EOL LINE11COLUMN25. 05 ERASE EOL LINE12COLUMN25. 05 ERASE EOL LINE13COLUMN25.
* /this SCREEN will be used IF an incorrect state IS entered 01 SCREEN-INCORRECT-STATE. 05BLANK SCREEN. 05LINE1COLUMN1VALUE'INCORRECT STATE CODE'. 05LINE2COLUMN1VALUE'PLEASE ENTER: '. 05LINE3COLUMN5VALUE'1 FOR CT'. 05LINE4COLUMN5VALUE'OR 2 FOR NY'. 05LINE5COLUMN5PIC9TO ENTERED-STATE. 05 ERASE EOL LINE5COLUMN5.
* /this IS the incorrect location SCREEN FOR CT 01 SCREEN-INCORRECT-LOCATION-CT. 05BLANK SCREEN. 05LINE1COLUMN1VALUE'INCORRECT LOCATION CODE'. 05LINE2COLUMN1VALUE'PLEASE ENTER: '. 05LINE3COLUMN5VALUE'ENTER 1 FOR CANAAN'. 05LINE4COLUMN5VALUE'ENTER 2 FOR GOSHEN'. 05LINE5COLUMN5VALUE'ENTER 3 FOR LAKEVILLE'. 05LINE6COLUMN5VALUE'ENTER 4 FOR LIME ROCK'. 05LINE7COLUMN5PIC9TO ENTERED-LOCATION-CT. 05 ERASE EOL LINE7COLUMN5.
* /this IS the incorrect location SCREEN FOR NY 01 SCREEN-INCORRECT-LOCATION-NY. 05BLANK SCREEN. 05LINE1COLUMN1VALUE'INCORRECT LOCATION CODE'. 05LINE2COLUMN1VALUE'PLEASE ENTER: '. 05LINE3COLUMN5VALUE'ENTER 1 FOR ITHACA'. 05LINE4COLUMN5VALUE'ENTER 2 FOR LAKE GEORGE'. 05LINE5COLUMN5VALUE'ENTER 3 FOR QUOPUE'. 05LINE6COLUMN5PIC9TO ENTERED-LOCATION-NY. 05 ERASE EOL LINE6COLUMN5.
* /this IS the SCREEN TO determine IF there IS more DATA 01 SCREEN-MORE-RECORDS. 05BLANK SCREEN. 05LINE1COLUMN1VALUE'IS THERE MORE DATA?: '. 05COLUMN25PIC X TO ARE-THERE-MORE-RECORDS. 05LINE2COLUMN1VALUE'ENTER Y OR N'. 05 ERASE EOL LINE1COLUMN25.
PROCEDUREDIVISION.
100-MAIN-MODULE. OPENOUTPUT FILEOUTPUT * /This will loop 150-run-module UNTIL the user IS done PERFORM150-RUN-MODULE UNTIL ARE-THERE-MORE-RECORDS = 'n'OR'N'
CLOSE FILEOUTPUT STOPRUN.
150-RUN-MODULE. PERFORM200-INITIALIZATION-MODULE * /starts TO ACCEPT data PERFORM300-ACCEPT-DATA-MODULE * /checks the users INPUT FOR state PERFORM400-STATE-CHECK-MODULE * /checks the users INPUT FOR location EVALUATE ENTERED-STATE WHEN1PERFORM500-LOCATION-CHECK-MODULE-CT WHEN2PERFORM510-LOCATION-CHECK-MODULE-NY WHENOTHERDISPLAY'ERROR 1' END-EVALUATE PERFORM600-WRITE-DATA-MODULE PERFORM700-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 WHEN1PERFORM420-STATE-CT-MODULE WHEN2PERFORM425-STATE-NY-MODULE WHENOTHERPERFORM430-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 WHEN1PERFORM420-STATE-CT-MODULE WHEN2PERFORM425-STATE-NY-MODULE WHENOTHERPERFORM430-STATE-ERROR-MODULE END-EVALUATE. * /check location INPUT IF state = CT 500-LOCATION-CHECK-MODULE-CT. EVALUATE ENTERED-LOCATION-CT WHEN1MOVE"1 (Canaan)"TO LOCATION-IN WHEN2MOVE"2 (Goshen)"TO LOCATION-IN WHEN3MOVE"3 (Lakeville)"TO LOCATION-IN WHEN4MOVE"4 (Lime Rock"TO LOCATION-IN WHENOTHERPERFORM501-CT-WRONG-LOC END-EVALUATE. 501-CT-WRONG-LOC. DISPLAY SCREEN-INCORRECT-LOCATION-CT ACCEPT SCREEN-INCORRECT-LOCATION-CT EVALUATE ENTERED-LOCATION-CT WHEN1MOVE"1 (Canaan)"TO LOCATION-IN WHEN2MOVE"2 (Goshen)"TO LOCATION-IN WHEN3MOVE"3 (Lakeville)"TO LOCATION-IN WHEN4MOVE"4 (Lime Rock"TO LOCATION-IN WHENOTHERPERFORM501-CT-WRONG-LOC END-EVALUATE. * /check location INPUT IF state = NY 510-LOCATION-CHECK-MODULE-NY. EVALUATE ENTERED-LOCATION-NY WHEN1MOVE"1 (Ithaca)"TO LOCATION-IN WHEN2MOVE"2 (Lake George)"TO LOCATION-IN WHEN3MOVE"3 (Quopue)"TO LOCATION-IN WHENOTHERPERFORM512-NY-WRONG-LOC END-EVALUATE. 512-NY-WRONG-LOC. DISPLAY SCREEN-INCORRECT-LOCATION-NY ACCEPT SCREEN-INCORRECT-LOCATION-NY EVALUATE ENTERED-LOCATION-NY WHEN1MOVE"1 (Ithaca)"TO LOCATION-IN WHEN2MOVE"2 (Lake George)"TO LOCATION-IN WHEN3MOVE"3 (Quopue)"TO LOCATION-IN WHENOTHERPERFORM512-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.