Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- IDENTIFICATION DIVISION.
- PROGRAM-ID. BASEBALL-3.
- * James Acquaviva II
- ******************************************************************
- *
- * This program reads a file containing baseball players and some of
- *their statistics involved.
- ******************************************************************
- ENVIRONMENT DIVISION.
- INPUT-OUTPUT SECTION.
- FILE-CONTROL.
- SELECT BASEBALL-3-FILE-IN
- ASSIGN TO 'BASEBALL-3.SEQ'
- ORGANIZATION IS LINE SEQUENTIAL.
- SELECT BASEBALL-3-FILE-OUT
- ASSIGN TO 'BASEBALL-3.RPT'
- ORGANIZATION IS LINE SEQUENTIAL.
- DATA DIVISION.
- FILE SECTION.
- FD BASEBALL-3-FILE-IN.
- 01 BASEBALL-RECORD-IN.
- 05 NAME-IN PIC X(18).
- 05 PIC X(2).
- 05 LEAGUE-IN PIC X(2).
- 05 PIC X(1).
- 05 TEAM-IN PIC X(3).
- 05 PIC X(3).
- 05 AT-BATS-IN PIC 9(3).
- 05 PIC X(1).
- 05 HITS-IN PIC 9(3).
- 05 PIC X(1).
- FD BASEBALL-3-FILE-OUT.
- 01 BASEBALL-3-RECORD-OUT PIC X(80).
- WORKING-STORAGE SECTION.
- 01 ARE-THERE-MORE-RECORDS PIC X(3) VALUE 'YES'.
- 01 LINES-PRINTED PIC 99 VALUE ZERO.
- 01 PAGE-NUMBER PIC 99 VALUE ZERO.
- 01 AVERAGE PIC .999 VALUE ZERO.
- 01 TOTAL-AVERAGE PIC V999 VALUE ZERO.
- 01 TOTAL-HITS PIC 9(6) VALUE ZERO.
- 01 TOTAL-AT-BATS PIC 9(6) VALUE ZERO.
- 01 CURRENT-DATE
- 05 YEAR-X PIC XX.
- 05 MONTH-X PIC XX.
- 05 DAY-X PIC XX.
- 01 HEADING-LINE-1.
- 05 PIC X(23) VALUE SPACES.
- 05 PIC X(27)
- VALUE 'PLAYER BASEBALL STATISTICS'.
- 05 PIC X(9) VALUE SPACES.
- 05 HL-1-DATE.
- 10 HL-1-MONTH PIC XX.
- 10 PIC X VALUE '/'.
- 10 HL-1-DAY PIC XX.
- 10 PIC X VALUE '/'.
- 10 HL-1-YEAR PIC XX.
- 05 PIC X(4) VALUE SPACES.
- 05 PIC X(5) VALUE 'PAGE'.
- 05 HL-1-PAGE-NUMBER PIC Z9.
- 01 HEADING-LINE-2.
- 05 PIC X(6) VALUE 'LEAGUE'.
- 05 PIC X(3) VALUE SPACES.
- 05 PIC X(5) VALUE 'TEAM'.
- 05 PIC X(16) VALUE SPACES.
- 05 PIC X(4) VALUE 'NAME'.
- 05 PIC X(12) VALUE SPACES.
- 05 PIC X(4) VALUE 'HITS'.
- 05 PIC X(6) VALUE SPACES.
- 05 PIC X(7) VALUE 'AT-BATS'.
- 05 PIC X(3) VALUE SPACES.
- 05 PIC X(7) VALUE 'AVERAGE'.
- 01 DETAIL-LINE.
- 05 DL-LEAGUE PIC XX.
- 05 PIC X(7) VALUE SPACES.
- 05 DL-TEAM PIC X(21).
- 05 DL-NAME PIC X(14).
- 05 DL-HITS PIC ZZ,ZZ9.
- 05 PIC X(7) VALUE SPACES.
- 05 DL-AT-BATS PIC ZZ,ZZ9.
- 05 PIC X(6) VALUE SPACES.
- 05 DL-AVERAGE PIC .999.
- 01 TOTALS-LINE.
- 05 PIC X(7) VALUE 'TOTALS'.
- 05 PIC X(37) VALUE SPACES.
- 05 TL-HITS PIC ZZ,ZZ9.
- 05 PIC X(7) VALUE SPACES.
- 05 TL-AT-BATS PIC ZZ,ZZ9.
- 05 PIC X(6) VALUE SPACES.
- 05 TL-AVERAGE PIC .999.
- PROCEDURE DIVISION.
- 100-MAIN.
- OPEN INPUT BASEBALL-3-FILE-IN
- OPEN OUTPUT BASEBALL-3-FILE-OUT
- ACCEPT CURRENT-DATE FROM DATE
- MOVE MONTH-X TO HL-1-MONTH
- MOVE DAY-X TO HL-1-DAY
- MOVE YEAR-X TO HL-1-YEAR
- PERFORM 300-WRITE-HEADINGS
- PERFORM UNTIL ARE-THERE-MORE-RECORDS = 'NO '
- READ BASEBALL-3-FILE-IN
- AT END
- MOVE 'NO ' TO ARE-THERE-MORE-RECORDS
- NOT AT END
- PERFORM 200-PROCESS-ONE-RECORD
- END-READ
- END-PERFORM
- PERFORM 400-PRINT-FINAL-TOTALS-LINE
- CLOSE BASEBALL-3-FILE-IN
- CLOSE BASEBALL-3-FILE-OUT
- STOP RUN.
- 200-PROCESS-ONE-RECORD.
- IF LINES-PRINTED >= 57
- PERFORM 300-WRITE-HEADINGS
- END-IF
- compute TOTAL-HITS = TOTAL-HITS + HITS-IN.
- compute TOTAL-AT-BATS = TOTAL-AT-BATS + AT-BATS-IN.
- compute TOTAL-AVERAGE rounded = TOTAL-HITS / TOTAL-AT-BATS.
- compute AVERAGE rounded = HITS-IN / AT-BATS-IN.
- MOVE NAME-IN TO DL-NAME
- MOVE LEAGUE-IN TO DL-LEAGUE
- MOVE TEAM-IN TO DL-TEAM
- MOVE HITS-IN TO DL-HITS
- MOVE AT-BATS-IN TO DL-AT-BATS
- MOVE AVERAGE TO DL-AVERAGE
- MOVE DETAIL-LINE TO BASEBALL-3-RECORD-OUT
- WRITE BASEBALL-3-RECORD-OUT
- AFTER ADVANCING 2 LINES
- ADD 2 TO LINES-PRINTED.
- 300-WRITE-HEADINGS.
- ADD 1 TO PAGE-NUMBER
- MOVE PAGE-NUMBER TO HL-1-PAGE-NUMBER
- MOVE HEADING-LINE-1 TO BASEBALL-3-RECORD-OUT
- WRITE BASEBALL-3-RECORD-OUT
- AFTER ADVANCING PAGE
- MOVE HEADING-LINE-2 TO BASEBALL-3-RECORD-OUT
- WRITE BASEBALL-3-RECORD-OUT
- AFTER ADVANCING 2
- MOVE 3 TO LINES-PRINTED.
- 400-PRINT-FINAL-TOTALS-LINE.
- IF LINES-PRINTED >= 57
- PERFORM 300-WRITE-HEADINGS
- END-IF
- MOVE TOTAL-AVERAGE TO TL-AVERAGE
- MOVE TOTAL-HITS TO TL-HITS
- MOVE TOTAL-AT-BATS TO TL-AT-BATS
- MOVE TOTALS-LINE TO BASEBALL-3-RECORD-OUT
- WRITE BASEBALL-3-RECORD-OUT
- AFTER ADVANCING 3 LINES
- ADD 2 TO LINES-PRINTED.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement