Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- IDENTIFICATION DIVISION.
- PROGRAM-ID. LAB3.
- AUTHOR.
- JACOB BREEN.
- ENVIRONMENT DIVISION.
- INPUT-OUTPUT SECTION.
- FILE-CONTROL.
- SELECT SALES-FILE ASSIGN TO "./lab3.dat"
- ORGANIZATION IS LINE SEQUENTIAL.
- SELECT REPORT-FILE ASSIGN TO "./lab3out.txt"
- ORGANIZATION IS LINE SEQUENTIAL.
- DATA DIVISION.
- FILE SECTION.
- FD SALES-FILE
- DATA RECORD IS SALES-REC
- RECORDING MODE IS F
- RECORD CONTAINS 80 CHARACTERS.
- 01 SALES-REC.
- 05 SR-SMAN-NUM PIC XX.
- 05 SR-NAME PIC X(8).
- 05 SR-SALES PIC 9(4).
- 05 SR-RATE PIC 99.
- 05 SR-MIN PIC 999.
- 05 SR-MAX PIC 9999.
- FD REPORT-FILE
- DATA RECORD IS PRINT-LINE
- RECORDING MODE IS F
- RECORD CONTAINS 132 CHARACTERS.
- 01 PRINT-LINE.
- ** ADD THE PIC VALUES IN THE FOLLOWING LINE.
- 05 FILLER PIC X(1).
- 05 SDL-SMAN-NUM PIC XXX.
- 05 FILLER PIC X(2).
- 05 SDL-NAME PIC X(20).
- 05 FILLER PIC X(2).
- 05 SDL-SALES PIC 9(10).
- 05 FILLER PIC X(2).
- 05 SDL-MIN PIC 9(6).
- 05 FILLER PIC X(2).
- 05 SDL-MAX PIC 9(6).
- 05 FILLER PIC X(3).
- 05 SDL-RATE PIC 9(6).
- 05 SDL-PERC-SIGN PIC X VALUE '%'.
- 05 FILLER PIC X(3).
- 05 SDL-EARNED PIC 9(6).
- 05 FILLER PIC X(4).
- 05 SDL-PAID PIC 9(6).
- WORKING-STORAGE SECTION.
- * ADD THE PIC VALUES IN THE FOLLOWING TOTAL LINES.
- 01 END-SWITCH PIC XXX VALUE 'NO'.
- 01 WS-SMAN-NUM PIC XXX.
- 01 WS-NAME PIC X(20).
- 01 WS-SALES PIC 9(10).
- 01 WS-MIN PIC 9(6).
- 01 WS-MAX PIC 9(6).
- 01 WS-RATE PIC 9(6).
- 01 WS-EARNED PIC 9(6).
- 01 WS-PAID PIC 9(6).
- 01 TOTAL-LINE.
- 05 FILLER PIC X(24).
- 05 FILLER PIC X(6)
- VALUE "TOTALS".
- 05 FILLER PIC X(9).
- 05 TL-TOT-EARNED PIC 9(9).
- 05 FILLER PIC X(2).
- 05 TL-TOT-PAID PIC 9(9).
- 01 NUM-MAX-LINE.
- 05 FILLER PIC X(40)
- VALUE " NUMBER WITH BONUS MORE THAN MAX ".
- 05 MAXL-NUM-MOR-MAX PIC 9(9).
- 01 NUM-MIN-LINE.
- 05 FILLER PIC X(40)
- VALUE " NUMBER WITH NO BONUS LESS THAN MIN ".
- 05 MINL-NUM-LESS-MIN PIC 9(9).
- 01 RPT-HEADING.
- 05 FILLER PIC X(28).
- 05 FILLER PIC X(23)
- VALUE "SALES COMMISSION REPORT".
- 01 HEADING-LINE1.
- 05 FILLER PIC X(1) VALUE SPACES.
- 05 FILLER PIC X(2) VALUE "NO".
- 05 FILLER PIC X(2) VALUE SPACES.
- 05 FILLER PIC X(4) VALUE "NAME".
- 05 FILLER PIC X(6) VALUE SPACES.
- 05 FILLER PIC X(5) VALUE "SALES".
- 05 FILLER PIC X(2) VALUE SPACES.
- 05 FILLER PIC X(3) VALUE "MIN".
- 05 FILLER PIC X(3) VALUE SPACES.
- 05 FILLER PIC X(3) VALUE "MAX".
- 05 FILLER PIC X(3) VALUE SPACES.
- 05 FILLER PIC X(4) VALUE "RATE".
- 05 FILLER PIC X(3) VALUE SPACES.
- 05 FILLER PIC X(6) VALUE "EARNED".
- 05 FILLER PIC X(5) VALUE SPACES.
- 05 FILLER PIC X(4) VALUE "PAID".
- 01 UNDERLINES.
- 05 FILLER PIC X(1) VALUE SPACES.
- 05 FILLER PIC X(2) VALUE "--".
- 05 FILLER PIC X(2) VALUE SPACES.
- 05 FILLER PIC X(4) VALUE "----".
- 05 FILLER PIC X(6) VALUE SPACES.
- 05 FILLER PIC X(5) VALUE "-----".
- 05 FILLER PIC X(2) VALUE SPACES.
- 05 FILLER PIC X(3) VALUE "---".
- 05 FILLER PIC X(3) VALUE SPACES.
- 05 FILLER PIC X(3) VALUE "---".
- 05 FILLER PIC X(3) VALUE SPACES.
- 05 FILLER PIC X(4) VALUE "----".
- 05 FILLER PIC X(3) VALUE SPACES.
- 05 FILLER PIC X(6) VALUE "------".
- 05 FILLER PIC X(5) VALUE SPACES.
- 05 FILLER PIC X(4) VALUE "----".
- 01 NAME-LINE.
- 05 FILLER PIC X(5) VALUE SPACES.
- 05 FILLER PIC X(28)
- VALUE "JACOB BREEN, LAB 3".
- 05 FILLER PIC X(5) VALUE SPACES.
- 05 NL-DATE PIC 9(6).
- 05 FILLER PIC X(5) VALUE SPACES.
- 05 NL-TIME PIC 9(8).
- PROCEDURE DIVISION.
- OPEN INPUT SALES-FILE.
- OPEN OUTPUT REPORT-FILE.
- ACCEPT NL-DATE FROM DATE.
- ACCEPT NL-TIME FROM TIME.
- PERFORM 100-PRINT-HEADINGS.
- READ SALES-FILE AT END MOVE
- 'YES' TO END-SWITCH.
- PERFORM 10-PROCESS-RECORDS UNTIL END-SWITCH = 'YES'.
- * PERFORM 200-PRINT-TOTALS.
- CLOSE SALES-FILE
- REPORT-FILE.
- STOP RUN.
- 10-PROCESS-RECORDS.
- * MOVE SPACES TO PRINT-LINE.
- MOVE SR-SMAN-NUM TO WS-SMAN-NUM.
- MOVE SR-NAME TO WS-NAME.
- MOVE SR-SALES TO WS-SALES.
- MOVE SR-MIN TO WS-MIN.
- MOVE SR-MAX TO WS-MAX.
- MOVE SR-RATE TO WS-RATE.
- IF WS-SALES >= 5000
- COMPUTE WS-EARNED = ((WS-SALES - 5000) * (WS-RATE * 100))
- + (WS-SALES * WS-RATE).
- IF WS-EARNED > WS-MAX
- MOVE WS-MAX TO WS-EARNED.
- MOVE SR-SMAN-NUM TO SDL-SMAN-NUM.
- MOVE SR-NAME TO SDL-NAME.
- MOVE WS-SALES TO SDL-SALES.
- MOVE WS-MIN TO SDL-MIN.
- MOVE WS-MAX TO SDL-MAX.
- MOVE WS-RATE TO SDL-RATE.
- *MOVE SDL-PERC-SIGN TO PRINT-LINE.
- MOVE WS-EARNED TO SDL-EARNED.
- MOVE WS-PAID TO SDL-PAID.
- WRITE PRINT-LINE AFTER ADVANCING 2 LINES.
- READ SALES-FILE AT END MOVE
- 'YES' TO END-SWITCH.
- 100-PRINT-HEADINGS.
- WRITE PRINT-LINE FROM NAME-LINE AFTER ADVANCING PAGE.
- * * ADD OTHER WRITE'S FOR HEADINGS HERE....
- WRITE PRINT-LINE FROM RPT-HEADING AFTER ADVANCING 1 LINES.
- WRITE PRINT-LINE FROM HEADING-LINE1 AFTER ADVANCING 1 LINES.
- WRITE PRINT-LINE FROM UNDERLINES AFTER ADVANCING 2 LINES.
Add Comment
Please, Sign In to add comment