Guest User

Untitled

a guest
Jan 21st, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
COBOL 6.78 KB | None | 0 0
  1.        IDENTIFICATION DIVISION.
  2.        PROGRAM-ID. LAB3.
  3.        AUTHOR.
  4.            JACOB BREEN.
  5.  
  6.        ENVIRONMENT DIVISION.
  7.  
  8.        INPUT-OUTPUT SECTION.
  9.        FILE-CONTROL.
  10.            SELECT SALES-FILE  ASSIGN TO "./lab3.dat"
  11.                     ORGANIZATION IS LINE SEQUENTIAL.
  12.            SELECT REPORT-FILE ASSIGN TO "./lab3out.txt"
  13.                     ORGANIZATION IS LINE SEQUENTIAL.
  14.  
  15.        DATA DIVISION.
  16.        FILE SECTION.
  17.        FD  SALES-FILE
  18.            DATA RECORD IS SALES-REC
  19.            RECORDING MODE IS F
  20.            RECORD CONTAINS 80 CHARACTERS.
  21.  
  22.        01  SALES-REC.
  23.            05  SR-SMAN-NUM     PIC XX.
  24.            05  SR-NAME         PIC X(8).
  25.            05  SR-SALES        PIC 9(4).
  26.            05  SR-RATE         PIC 99.
  27.            05  SR-MIN          PIC 999.
  28.            05  SR-MAX          PIC 9999.
  29.  
  30.        FD  REPORT-FILE
  31.            DATA RECORD IS PRINT-LINE
  32.            RECORDING MODE IS F
  33.            RECORD CONTAINS 132 CHARACTERS.
  34.  
  35.        01  PRINT-LINE.
  36.       ** ADD THE PIC VALUES IN THE FOLLOWING LINE.
  37.  
  38.            05  FILLER           PIC X(1).
  39.            05  SDL-SMAN-NUM     PIC XXX.
  40.            05  FILLER           PIC X(2).
  41.            05  SDL-NAME         PIC X(20).
  42.            05  FILLER           PIC X(2).
  43.            05  SDL-SALES        PIC 9(10).
  44.            05  FILLER           PIC X(2).
  45.            05  SDL-MIN          PIC 9(6).
  46.            05  FILLER           PIC X(2).
  47.            05  SDL-MAX          PIC 9(6).
  48.            05  FILLER           PIC X(3).
  49.            05  SDL-RATE         PIC 9(6).
  50.            05  SDL-PERC-SIGN    PIC X VALUE '%'.
  51.            05  FILLER           PIC X(3).
  52.            05  SDL-EARNED       PIC 9(6).
  53.            05  FILLER           PIC X(4).
  54.            05  SDL-PAID         PIC 9(6).
  55.  
  56.        WORKING-STORAGE SECTION.
  57.  
  58.       * ADD THE PIC VALUES IN THE FOLLOWING TOTAL LINES.
  59.         01 END-SWITCH            PIC XXX VALUE 'NO'.
  60.  
  61.         01 WS-SMAN-NUM PIC XXX.
  62.         01 WS-NAME     PIC X(20).
  63.         01 WS-SALES    PIC 9(10).
  64.         01 WS-MIN      PIC 9(6).
  65.         01 WS-MAX      PIC 9(6).
  66.         01 WS-RATE     PIC 9(6).
  67.         01 WS-EARNED   PIC 9(6).
  68.         01 WS-PAID     PIC 9(6).
  69.  
  70.  
  71.        01  TOTAL-LINE.
  72.            05  FILLER           PIC X(24).
  73.            05  FILLER           PIC X(6)
  74.                    VALUE "TOTALS".
  75.            05  FILLER           PIC X(9).
  76.            05  TL-TOT-EARNED    PIC 9(9).
  77.            05  FILLER           PIC X(2).
  78.            05  TL-TOT-PAID      PIC 9(9).
  79.  
  80.        01  NUM-MAX-LINE.
  81.            05  FILLER          PIC X(40)
  82.                 VALUE "     NUMBER WITH BONUS MORE THAN MAX    ".
  83.            05  MAXL-NUM-MOR-MAX  PIC 9(9).
  84.  
  85.        01  NUM-MIN-LINE.
  86.            05  FILLER          PIC X(40)
  87.                 VALUE "     NUMBER WITH NO BONUS LESS THAN MIN ".
  88.            05  MINL-NUM-LESS-MIN  PIC 9(9).
  89.  
  90.        01  RPT-HEADING.
  91.            05 FILLER  PIC X(28).
  92.            05 FILLER  PIC X(23)
  93.                    VALUE "SALES COMMISSION REPORT".
  94.  
  95.        01  HEADING-LINE1.
  96.            05  FILLER          PIC X(1)  VALUE SPACES.
  97.            05  FILLER          PIC X(2)  VALUE "NO".
  98.            05  FILLER          PIC X(2)  VALUE SPACES.
  99.            05  FILLER          PIC X(4)  VALUE "NAME".
  100.            05  FILLER          PIC X(6)  VALUE SPACES.
  101.            05  FILLER          PIC X(5)  VALUE "SALES".
  102.            05  FILLER          PIC X(2)  VALUE SPACES.
  103.            05  FILLER          PIC X(3)  VALUE "MIN".
  104.            05  FILLER          PIC X(3)  VALUE SPACES.
  105.            05  FILLER          PIC X(3)  VALUE "MAX".
  106.            05  FILLER          PIC X(3)  VALUE SPACES.
  107.            05  FILLER          PIC X(4)  VALUE "RATE".
  108.            05  FILLER          PIC X(3)  VALUE SPACES.
  109.            05  FILLER          PIC X(6)  VALUE "EARNED".
  110.            05  FILLER          PIC X(5)  VALUE SPACES.
  111.            05  FILLER          PIC X(4)  VALUE "PAID".
  112.  
  113.        01  UNDERLINES.
  114.            05  FILLER          PIC X(1)  VALUE SPACES.
  115.            05  FILLER          PIC X(2)  VALUE "--".
  116.            05  FILLER          PIC X(2)  VALUE SPACES.
  117.            05  FILLER          PIC X(4)  VALUE "----".
  118.            05  FILLER          PIC X(6)  VALUE SPACES.
  119.            05  FILLER          PIC X(5)  VALUE "-----".
  120.            05  FILLER          PIC X(2)  VALUE SPACES.
  121.            05  FILLER          PIC X(3)  VALUE "---".
  122.            05  FILLER          PIC X(3)  VALUE SPACES.
  123.            05  FILLER          PIC X(3)  VALUE "---".
  124.            05  FILLER          PIC X(3)  VALUE SPACES.
  125.            05  FILLER          PIC X(4)  VALUE "----".
  126.            05  FILLER          PIC X(3)  VALUE SPACES.
  127.            05  FILLER          PIC X(6)  VALUE "------".
  128.            05  FILLER          PIC X(5)  VALUE SPACES.
  129.            05  FILLER          PIC X(4)  VALUE "----".
  130.  
  131.        01  NAME-LINE.
  132.            05  FILLER          PIC X(5) VALUE SPACES.
  133.            05  FILLER          PIC X(28)
  134.                    VALUE "JACOB BREEN, LAB 3".
  135.            05  FILLER          PIC X(5)  VALUE SPACES.
  136.            05  NL-DATE         PIC 9(6).
  137.            05  FILLER          PIC X(5)  VALUE SPACES.
  138.            05  NL-TIME         PIC 9(8).
  139.  
  140.        PROCEDURE DIVISION.
  141.            OPEN INPUT  SALES-FILE.
  142.            OPEN OUTPUT REPORT-FILE.
  143.  
  144.            ACCEPT NL-DATE FROM DATE.
  145.            ACCEPT NL-TIME FROM TIME.
  146.  
  147.            PERFORM 100-PRINT-HEADINGS.
  148.  
  149.            READ SALES-FILE AT END MOVE
  150.                        'YES' TO END-SWITCH.
  151.  
  152.            PERFORM 10-PROCESS-RECORDS UNTIL END-SWITCH = 'YES'.
  153.  
  154.       *   PERFORM 200-PRINT-TOTALS.
  155.  
  156.            CLOSE   SALES-FILE
  157.                    REPORT-FILE.
  158.            STOP RUN.
  159.  
  160.        10-PROCESS-RECORDS.
  161.  
  162.       * MOVE SPACES TO PRINT-LINE.
  163.  
  164.         MOVE SR-SMAN-NUM TO WS-SMAN-NUM.
  165.         MOVE SR-NAME TO WS-NAME.
  166.         MOVE SR-SALES TO WS-SALES.
  167.         MOVE SR-MIN  TO WS-MIN.
  168.         MOVE SR-MAX  TO WS-MAX.
  169.         MOVE SR-RATE  TO WS-RATE.
  170.  
  171.         IF WS-SALES >= 5000
  172.             COMPUTE WS-EARNED = ((WS-SALES - 5000) * (WS-RATE * 100))
  173.                 + (WS-SALES * WS-RATE).
  174.             IF WS-EARNED > WS-MAX
  175.                 MOVE WS-MAX TO WS-EARNED.
  176.  
  177.  
  178.  
  179.         MOVE SR-SMAN-NUM TO SDL-SMAN-NUM.
  180.         MOVE SR-NAME TO SDL-NAME.
  181.         MOVE WS-SALES TO SDL-SALES.
  182.        MOVE WS-MIN  TO SDL-MIN.
  183.        MOVE WS-MAX  TO SDL-MAX.
  184.        MOVE WS-RATE  TO SDL-RATE.
  185.       *MOVE SDL-PERC-SIGN TO PRINT-LINE.
  186.        MOVE WS-EARNED TO SDL-EARNED.
  187.        MOVE WS-PAID TO SDL-PAID.
  188.  
  189.  
  190.  
  191.  
  192.         WRITE PRINT-LINE AFTER ADVANCING 2 LINES.
  193.  
  194.         READ SALES-FILE AT END MOVE
  195.                        'YES' TO END-SWITCH.
  196.  
  197.  
  198.        100-PRINT-HEADINGS.
  199.  
  200.            WRITE PRINT-LINE FROM NAME-LINE AFTER ADVANCING PAGE.
  201.       * * ADD OTHER WRITE'S FOR HEADINGS HERE....
  202.  
  203.           WRITE PRINT-LINE FROM RPT-HEADING AFTER ADVANCING 1 LINES.
  204.  
  205.           WRITE PRINT-LINE FROM HEADING-LINE1 AFTER ADVANCING 1 LINES.
  206.  
  207.           WRITE PRINT-LINE FROM UNDERLINES AFTER ADVANCING 2 LINES.
Add Comment
Please, Sign In to add comment