Guest User

Untitled

a guest
Jun 28th, 2018
356
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
COBOL 6.74 KB | None | 0 0
  1.        IDENTIFICATION DIVISION.
  2.       ************************
  3.  
  4.        PROGRAM-ID.     Project2.
  5.        AUTHOR.         Josh Leap
  6.        DATE-WRITTEN.   September 30, 2001.
  7.  
  8.        ENVIRONMENT DIVISION.
  9.       *********************
  10.  
  11.        INPUT-OUTPUT SECTION.
  12.       *********************
  13.        FILE-CONTROL.
  14.  
  15.            SELECT SALE-FILE
  16.               ASSIGN TO "NEWSALE.DAT".
  17.  
  18.        DATA DIVISION.
  19.       **************
  20.  
  21.        FILE SECTION.
  22.       *************
  23.        FD SALE-FILE.
  24.            01 SALE-RECORD.
  25.                02 FILLER           PIC X(9).
  26.                02 CUSTOMER-NUMBER  PIC X(4).
  27.                02 CUSTOMER-NAME    PIC X(20).
  28.                02 PURCHASE-DATE    PIC 9(8).
  29.                02 PURCHASE-DATE-ALPHA REDEFINES
  30.                   PURCHASE-DATE    PIC X(8).
  31.                02 AUTO-MAKE        PIC X(20).
  32.                02 PURCHASE-PRICE   PIC 9(5)V99.
  33.                02 PURCHASE-PRICE-ALPHA REDEFINES
  34.                   PURCHASE-PRICE   PIC X(7).
  35.                02 AUTO-YEAR        PIC 9(4).
  36.                02 AUTO-YEAR-ALPHA REDEFINES
  37.                   AUTO-YEAR        PIC X(4).
  38.                02 FILLER           PIC X(3).
  39.                02 SATISFACTION     PIC X.
  40.                    88 DISATISFIED  VALUE '0'.
  41.                    88 UNDECIDED    VALUE '1'.
  42.                    88 SATISFIED    VALUE '2'.
  43.  
  44.        WORKING-STORAGE SECTION.
  45.       ************************
  46.        01 SWITCHES.
  47.  
  48.            02 SW-ENTER-ANOTHER-RECORD     PIC X.
  49.                88 MORE-RECORDS         VALUE "Y" "y".
  50.                88 NO-MORE-RECORDS      VALUE "N" "n".
  51.            02 SW-VALID-ENTRY              PIC X.
  52.                88 VALID-ENTRY          VALUE "Y".
  53.  
  54.        01 ACCUMULATORS.
  55.            02 AC-RECORD-COUNT      PIC 9(5).
  56.  
  57.        01 WORK-AREA.
  58.            02 WA-DATE.
  59.                03 WA-MONTH         PIC 99.
  60.                03 WA-DAY           PIC 99.
  61.                03 WA-YEAR          PIC 9(4).
  62.  
  63.        SCREEN SECTION.
  64.       ********************
  65.        01 SALE-INPUT-SCREEN.
  66.            02 BLANK SCREEN.
  67.            02 LINE 1 COLUMN 1 VALUE "CUSTOMER NUMBER:".
  68.            02 LINE 3 COLUMN 1 VALUE "CUSTOMER NAME:".
  69.            02 LINE 5 COLUMN 1 VALUE "PURCHASE DATE:".
  70.            02 LINE 7 COLUMN 1 VALUE "AUTO MAKE:".
  71.            02 LINE 9 COLUMN 1 VALUE "PURCHASE PRICE:".
  72.            02 LINE 11 COLUMN 1 VALUE "AUTO YEAR:".
  73.            02 LINE 13 COLUMN 1 VALUE "SATISFACTION RATING:".
  74.  
  75.        PROCEDURE DIVISION.
  76.       ********************
  77.  
  78.        MAIN-PROGRAM.
  79.            PERFORM INITIALIZATION.
  80.            PERFORM GET-RECORDS
  81.                UNTIL NO-MORE-RECORDS.
  82.            PERFORM WRAP-UP.
  83.            STOP RUN.
  84.  
  85.        INITIALIZATION.
  86.            MOVE ZERO TO AC-RECORD-COUNT.
  87.            OPEN OUTPUT SALE-FILE.
  88.  
  89.        GET-RECORDS.
  90.            INITIALIZE SALE-RECORD.
  91.            DISPLAY SALE-INPUT-SCREEN.
  92.  
  93.            MOVE "N" TO SW-VALID-ENTRY.
  94.            PERFORM GET-CUSTOMER-NUMBER
  95.                UNTIL VALID-ENTRY.
  96.  
  97.            MOVE "N" TO SW-VALID-ENTRY.
  98.            PERFORM GET-CUSTOMER-NAME
  99.                UNTIL VALID-ENTRY.
  100.  
  101.            MOVE "N" TO SW-VALID-ENTRY.
  102.            PERFORM GET-PURCHASE-DATE
  103.                UNTIL VALID-ENTRY.
  104.  
  105.            MOVE "N" TO SW-VALID-ENTRY.
  106.            PERFORM GET-AUTO-MAKE
  107.                UNTIL VALID-ENTRY.
  108.  
  109.            MOVE "N" TO SW-VALID-ENTRY.
  110.            PERFORM GET-PURCHASE-PRICE
  111.                UNTIL VALID-ENTRY.
  112.  
  113.            MOVE "N" TO SW-VALID-ENTRY.
  114.            PERFORM GET-AUTO-YEAR
  115.                UNTIL VALID-ENTRY.
  116.  
  117.            MOVE "N" TO SW-VALID-ENTRY.
  118.            PERFORM GET-SATISFACTION-RATING
  119.                UNTIL VALID-ENTRY.
  120.  
  121.            WRITE SALE-RECORD.
  122.            ADD 1 TO AC-RECORD-COUNT.
  123.  
  124.            DISPLAY "RECORD HAS BEEN ADDED"
  125.            LINE 21 COLUMN 6 WITH BLANK SCREEN.
  126.            DISPLAY "DO YOU WISH TO ENTER ANOTHER RECORD?"
  127.            LINE 22 COLUMN 6.
  128.            MOVE SPACES TO SW-ENTER-ANOTHER-RECORD
  129.            PERFORM UNTIL MORE-RECORDS OR NO-MORE-RECORDS
  130.                ACCEPT SW-ENTER-ANOTHER-RECORD LINE 22 COLUMN 52
  131.                IF NOT MORE-RECORDS AND NOT NO-MORE-RECORDS
  132.                    DISPLAY "YOU MUST ENTER Y OR N" LINE 23 COLUMN 6
  133.                END-IF
  134.            END-PERFORM.
  135.  
  136.        GET-CUSTOMER-NUMBER.
  137.            DISPLAY "Enter Customer Number." Line 20 COLUMN 6 WITH ERASE
  138.            EOS.
  139.            ACCEPT CUSTOMER-NUMBER LINE 1 COLUMN 21.
  140.            IF CUSTOMER-NUMBER NOT NUMERIC
  141.                DISPLAY "Need a number. Retry" LINE 2 Column 5
  142.            ELSE IF CUSTOMER-NUMBER = ZERO
  143.                DISPLAY "Greater than zero. Retry" LINE 2 COLUMN 5
  144.            ELSE
  145.                MOVE "Y" TO SW-VALID-ENTRY.
  146.  
  147.        GET-CUSTOMER-NAME.
  148.            DISPLAY "Enter Customer Name." LINE 20 COLUMN 6 WITH ERASE
  149.            EOS.
  150.            accept CUSTOMER-NAME LINE 3 COLUMN 21.
  151.            IF CUSTOMER-NAME = SPACES
  152.                DISPLAY "Need something other than spaces, Retry." Line 4
  153.                Column 5
  154.            ELSE
  155.                MOVE "Y" TO SW-VALID-ENTRY.
  156.  
  157.        GET-PURCHASE-DATE.
  158.            DISPLAY "Enter Purchase Date" LINE 20 COLUMN 6 WITH ERASE
  159.            EOS.
  160.            accept PURCHASE-DATE LINE 5 COLUMN 21.
  161.            MOVE "Y" TO SW-VALID-ENTRY.
  162.  
  163.  
  164.        GET-AUTO-MAKE.
  165.            DISPLAY "Enter Auto Make." LINE 20 COLUMN 6 WITH ERASE
  166.            EOS.
  167.            accept AUTO-MAKE LINE 7 COLUMN 21.
  168.            IF AUTO-MAKE = SPACES
  169.                DISPLAY "Need something other than spaces, Retry."
  170.                Line 8 Column 5
  171.            else
  172.                MOVE "Y" TO SW-VALID-ENTRY.
  173.  
  174.        GET-PURCHASE-PRICE.
  175.            DISPLAY "Enter Purchase Price." LINE 20 COLUMN 6 WITH ERASE
  176.            EOS.
  177.            accept PURCHASE-PRICE LINE 9 COLUMN 21.
  178.            IF PURCHASE-PRICE NOT NUMERIC
  179.                DISPLAY "Numbers please." line 10 cOLUMN 5
  180.            ELSE IF PURCHASE-PRICE < "0"
  181.                DISPLAY "Positive numbers please." line 10 column 5
  182.            Else
  183.            MOVE "Y" TO SW-VALID-ENTRY.
  184.  
  185.        GET-AUTO-YEAR.
  186.            DISPLAY "Enter Auto Year." LINE 20 COLUMN 6 WITH ERASE
  187.            EOS.
  188.            accept AUTO-YEAR LINE 11 COLUMN 21.
  189.            if auto-year not numeric
  190.                display "Numbers Please." line 12 column 5
  191.            else if auto-year < "1900"
  192.                display "Newer than 1900 please." line 12 column 5
  193.            else
  194.            MOVE "Y" TO SW-VALID-ENTRY.
  195.  
  196.        GET-SATISFACTION-RATING.
  197.            DISPLAY "ENTER SATISFACTION RATE." LINE 20 COLUMN 6 WITH
  198.            ERASE EOS.
  199.            accept SATISFACTION LINE 13 COLUMN   21.
  200.            MOVE "Y" TO SW-VALID-ENTRY.
  201.        WRAP-UP.
  202.            CLOSE SALE-FILE.
  203.            DISPLAY "BAM, CLOSED." LINE 19 COLUMN 10 WITH BLANK LINE.
Add Comment
Please, Sign In to add comment