Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- IDENTIFICATION DIVISION.
- ************************
- PROGRAM-ID. Project2.
- AUTHOR. Josh Leap
- DATE-WRITTEN. September 30, 2001.
- ENVIRONMENT DIVISION.
- *********************
- INPUT-OUTPUT SECTION.
- *********************
- FILE-CONTROL.
- SELECT SALE-FILE
- ASSIGN TO "NEWSALE.DAT".
- DATA DIVISION.
- **************
- FILE SECTION.
- *************
- FD SALE-FILE.
- 01 SALE-RECORD.
- 02 FILLER PIC X(9).
- 02 CUSTOMER-NUMBER PIC X(4).
- 02 CUSTOMER-NAME PIC X(20).
- 02 PURCHASE-DATE PIC 9(8).
- 02 PURCHASE-DATE-ALPHA REDEFINES
- PURCHASE-DATE PIC X(8).
- 02 AUTO-MAKE PIC X(20).
- 02 PURCHASE-PRICE PIC 9(5)V99.
- 02 PURCHASE-PRICE-ALPHA REDEFINES
- PURCHASE-PRICE PIC X(7).
- 02 AUTO-YEAR PIC 9(4).
- 02 AUTO-YEAR-ALPHA REDEFINES
- AUTO-YEAR PIC X(4).
- 02 FILLER PIC X(3).
- 02 SATISFACTION PIC X.
- 88 DISATISFIED VALUE '0'.
- 88 UNDECIDED VALUE '1'.
- 88 SATISFIED VALUE '2'.
- WORKING-STORAGE SECTION.
- ************************
- 01 SWITCHES.
- 02 SW-ENTER-ANOTHER-RECORD PIC X.
- 88 MORE-RECORDS VALUE "Y" "y".
- 88 NO-MORE-RECORDS VALUE "N" "n".
- 02 SW-VALID-ENTRY PIC X.
- 88 VALID-ENTRY VALUE "Y".
- 01 ACCUMULATORS.
- 02 AC-RECORD-COUNT PIC 9(5).
- 01 WORK-AREA.
- 02 WA-DATE.
- 03 WA-MONTH PIC 99.
- 03 WA-DAY PIC 99.
- 03 WA-YEAR PIC 9(4).
- SCREEN SECTION.
- ********************
- 01 SALE-INPUT-SCREEN.
- 02 BLANK SCREEN.
- 02 LINE 1 COLUMN 1 VALUE "CUSTOMER NUMBER:".
- 02 LINE 3 COLUMN 1 VALUE "CUSTOMER NAME:".
- 02 LINE 5 COLUMN 1 VALUE "PURCHASE DATE:".
- 02 LINE 7 COLUMN 1 VALUE "AUTO MAKE:".
- 02 LINE 9 COLUMN 1 VALUE "PURCHASE PRICE:".
- 02 LINE 11 COLUMN 1 VALUE "AUTO YEAR:".
- 02 LINE 13 COLUMN 1 VALUE "SATISFACTION RATING:".
- PROCEDURE DIVISION.
- ********************
- MAIN-PROGRAM.
- PERFORM INITIALIZATION.
- PERFORM GET-RECORDS
- UNTIL NO-MORE-RECORDS.
- PERFORM WRAP-UP.
- STOP RUN.
- INITIALIZATION.
- MOVE ZERO TO AC-RECORD-COUNT.
- OPEN OUTPUT SALE-FILE.
- GET-RECORDS.
- INITIALIZE SALE-RECORD.
- DISPLAY SALE-INPUT-SCREEN.
- MOVE "N" TO SW-VALID-ENTRY.
- PERFORM GET-CUSTOMER-NUMBER
- UNTIL VALID-ENTRY.
- MOVE "N" TO SW-VALID-ENTRY.
- PERFORM GET-CUSTOMER-NAME
- UNTIL VALID-ENTRY.
- MOVE "N" TO SW-VALID-ENTRY.
- PERFORM GET-PURCHASE-DATE
- UNTIL VALID-ENTRY.
- MOVE "N" TO SW-VALID-ENTRY.
- PERFORM GET-AUTO-MAKE
- UNTIL VALID-ENTRY.
- MOVE "N" TO SW-VALID-ENTRY.
- PERFORM GET-PURCHASE-PRICE
- UNTIL VALID-ENTRY.
- MOVE "N" TO SW-VALID-ENTRY.
- PERFORM GET-AUTO-YEAR
- UNTIL VALID-ENTRY.
- MOVE "N" TO SW-VALID-ENTRY.
- PERFORM GET-SATISFACTION-RATING
- UNTIL VALID-ENTRY.
- WRITE SALE-RECORD.
- ADD 1 TO AC-RECORD-COUNT.
- DISPLAY "RECORD HAS BEEN ADDED"
- LINE 21 COLUMN 6 WITH BLANK SCREEN.
- DISPLAY "DO YOU WISH TO ENTER ANOTHER RECORD?"
- LINE 22 COLUMN 6.
- MOVE SPACES TO SW-ENTER-ANOTHER-RECORD
- PERFORM UNTIL MORE-RECORDS OR NO-MORE-RECORDS
- ACCEPT SW-ENTER-ANOTHER-RECORD LINE 22 COLUMN 52
- IF NOT MORE-RECORDS AND NOT NO-MORE-RECORDS
- DISPLAY "YOU MUST ENTER Y OR N" LINE 23 COLUMN 6
- END-IF
- END-PERFORM.
- GET-CUSTOMER-NUMBER.
- DISPLAY "Enter Customer Number." Line 20 COLUMN 6 WITH ERASE
- EOS.
- ACCEPT CUSTOMER-NUMBER LINE 1 COLUMN 21.
- IF CUSTOMER-NUMBER NOT NUMERIC
- DISPLAY "Need a number. Retry" LINE 2 Column 5
- ELSE IF CUSTOMER-NUMBER = ZERO
- DISPLAY "Greater than zero. Retry" LINE 2 COLUMN 5
- ELSE
- MOVE "Y" TO SW-VALID-ENTRY.
- GET-CUSTOMER-NAME.
- DISPLAY "Enter Customer Name." LINE 20 COLUMN 6 WITH ERASE
- EOS.
- accept CUSTOMER-NAME LINE 3 COLUMN 21.
- IF CUSTOMER-NAME = SPACES
- DISPLAY "Need something other than spaces, Retry." Line 4
- Column 5
- ELSE
- MOVE "Y" TO SW-VALID-ENTRY.
- GET-PURCHASE-DATE.
- DISPLAY "Enter Purchase Date" LINE 20 COLUMN 6 WITH ERASE
- EOS.
- accept PURCHASE-DATE LINE 5 COLUMN 21.
- MOVE "Y" TO SW-VALID-ENTRY.
- GET-AUTO-MAKE.
- DISPLAY "Enter Auto Make." LINE 20 COLUMN 6 WITH ERASE
- EOS.
- accept AUTO-MAKE LINE 7 COLUMN 21.
- IF AUTO-MAKE = SPACES
- DISPLAY "Need something other than spaces, Retry."
- Line 8 Column 5
- else
- MOVE "Y" TO SW-VALID-ENTRY.
- GET-PURCHASE-PRICE.
- DISPLAY "Enter Purchase Price." LINE 20 COLUMN 6 WITH ERASE
- EOS.
- accept PURCHASE-PRICE LINE 9 COLUMN 21.
- IF PURCHASE-PRICE NOT NUMERIC
- DISPLAY "Numbers please." line 10 cOLUMN 5
- ELSE IF PURCHASE-PRICE < "0"
- DISPLAY "Positive numbers please." line 10 column 5
- Else
- MOVE "Y" TO SW-VALID-ENTRY.
- GET-AUTO-YEAR.
- DISPLAY "Enter Auto Year." LINE 20 COLUMN 6 WITH ERASE
- EOS.
- accept AUTO-YEAR LINE 11 COLUMN 21.
- if auto-year not numeric
- display "Numbers Please." line 12 column 5
- else if auto-year < "1900"
- display "Newer than 1900 please." line 12 column 5
- else
- MOVE "Y" TO SW-VALID-ENTRY.
- GET-SATISFACTION-RATING.
- DISPLAY "ENTER SATISFACTION RATE." LINE 20 COLUMN 6 WITH
- ERASE EOS.
- accept SATISFACTION LINE 13 COLUMN 21.
- MOVE "Y" TO SW-VALID-ENTRY.
- WRAP-UP.
- CLOSE SALE-FILE.
- DISPLAY "BAM, CLOSED." LINE 19 COLUMN 10 WITH BLANK LINE.
Add Comment
Please, Sign In to add comment