Advertisement
Guest User

Untitled

a guest
Mar 18th, 2019
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.00 KB | None | 0 0
  1. IDENTIFICATION DIVISION.
  2. PROGRAM-ID. BASEBALL-3.
  3. * James Acquaviva II
  4. ******************************************************************
  5. *
  6. * This program reads a file containing baseball players and some of
  7. *their statistics involved.
  8. ******************************************************************
  9. ENVIRONMENT DIVISION.
  10. INPUT-OUTPUT SECTION.
  11. FILE-CONTROL.
  12.  
  13. SELECT BASEBALL-3-FILE-IN
  14. ASSIGN TO 'BASEBALL-3.SEQ'
  15. ORGANIZATION IS LINE SEQUENTIAL.
  16.  
  17. SELECT BASEBALL-3-FILE-OUT
  18. ASSIGN TO 'BASEBALL-3.RPT'
  19. ORGANIZATION IS LINE SEQUENTIAL.
  20.  
  21. DATA DIVISION.
  22. FILE SECTION.
  23.  
  24. FD BASEBALL-3-FILE-IN.
  25. 01 BASEBALL-RECORD-IN.
  26. 05 NAME-IN PIC X(18).
  27. 05 PIC X(2).
  28. 05 LEAGUE-IN PIC X(2).
  29. 05 PIC X(1).
  30. 05 TEAM-IN PIC X(3).
  31. 05 PIC X(3).
  32. 05 AT-BATS-IN PIC 9(3).
  33. 05 PIC X(1).
  34. 05 HITS-IN PIC 9(3).
  35. 05 PIC X(1).
  36.  
  37.  
  38.  
  39. FD BASEBALL-3-FILE-OUT.
  40. 01 BASEBALL-3-RECORD-OUT PIC X(80).
  41.  
  42.  
  43. WORKING-STORAGE SECTION.
  44. 01 ARE-THERE-MORE-RECORDS PIC X(3) VALUE 'YES'.
  45. 01 LINES-PRINTED PIC 99 VALUE ZERO.
  46. 01 PAGE-NUMBER PIC 99 VALUE ZERO.
  47. 01 AVERAGE PIC .999 VALUE ZERO.
  48. 01 TOTAL-AVERAGE PIC V999 VALUE ZERO.
  49. 01 TOTAL-HITS PIC 9(6) VALUE ZERO.
  50. 01 TOTAL-AT-BATS PIC 9(6) VALUE ZERO.
  51.  
  52.  
  53.  
  54. 01 CURRENT-DATE
  55. 05 YEAR-X PIC XX.
  56. 05 MONTH-X PIC XX.
  57. 05 DAY-X PIC XX.
  58.  
  59. 01 HEADING-LINE-1.
  60. 05 PIC X(23) VALUE SPACES.
  61. 05 PIC X(27)
  62. VALUE 'PLAYER BASEBALL STATISTICS'.
  63. 05 PIC X(9) VALUE SPACES.
  64. 05 HL-1-DATE.
  65. 10 HL-1-MONTH PIC XX.
  66. 10 PIC X VALUE '/'.
  67. 10 HL-1-DAY PIC XX.
  68. 10 PIC X VALUE '/'.
  69. 10 HL-1-YEAR PIC XX.
  70. 05 PIC X(4) VALUE SPACES.
  71. 05 PIC X(5) VALUE 'PAGE'.
  72. 05 HL-1-PAGE-NUMBER PIC Z9.
  73.  
  74. 01 HEADING-LINE-2.
  75. 05 PIC X(6) VALUE 'LEAGUE'.
  76. 05 PIC X(3) VALUE SPACES.
  77. 05 PIC X(5) VALUE 'TEAM'.
  78. 05 PIC X(16) VALUE SPACES.
  79. 05 PIC X(4) VALUE 'NAME'.
  80. 05 PIC X(12) VALUE SPACES.
  81. 05 PIC X(4) VALUE 'HITS'.
  82. 05 PIC X(6) VALUE SPACES.
  83. 05 PIC X(7) VALUE 'AT-BATS'.
  84. 05 PIC X(3) VALUE SPACES.
  85. 05 PIC X(7) VALUE 'AVERAGE'.
  86.  
  87.  
  88.  
  89. 01 DETAIL-LINE.
  90. 05 DL-LEAGUE PIC XX.
  91. 05 PIC X(7) VALUE SPACES.
  92. 05 DL-TEAM PIC X(21).
  93. 05 DL-NAME PIC X(14).
  94. 05 DL-HITS PIC ZZ,ZZ9.
  95. 05 PIC X(7) VALUE SPACES.
  96. 05 DL-AT-BATS PIC ZZ,ZZ9.
  97. 05 PIC X(6) VALUE SPACES.
  98. 05 DL-AVERAGE PIC .999.
  99.  
  100. 01 TOTALS-LINE.
  101. 05 PIC X(7) VALUE 'TOTALS'.
  102. 05 PIC X(37) VALUE SPACES.
  103. 05 TL-HITS PIC ZZ,ZZ9.
  104. 05 PIC X(7) VALUE SPACES.
  105. 05 TL-AT-BATS PIC ZZ,ZZ9.
  106. 05 PIC X(6) VALUE SPACES.
  107. 05 TL-AVERAGE PIC .999.
  108.  
  109.  
  110.  
  111. PROCEDURE DIVISION.
  112. 100-MAIN.
  113. OPEN INPUT BASEBALL-3-FILE-IN
  114. OPEN OUTPUT BASEBALL-3-FILE-OUT
  115.  
  116. ACCEPT CURRENT-DATE FROM DATE
  117. MOVE MONTH-X TO HL-1-MONTH
  118. MOVE DAY-X TO HL-1-DAY
  119. MOVE YEAR-X TO HL-1-YEAR
  120. PERFORM 300-WRITE-HEADINGS
  121.  
  122. PERFORM UNTIL ARE-THERE-MORE-RECORDS = 'NO '
  123. READ BASEBALL-3-FILE-IN
  124. AT END
  125.  
  126. MOVE 'NO ' TO ARE-THERE-MORE-RECORDS
  127. NOT AT END
  128. PERFORM 200-PROCESS-ONE-RECORD
  129. END-READ
  130. END-PERFORM
  131.  
  132. PERFORM 400-PRINT-FINAL-TOTALS-LINE
  133.  
  134. CLOSE BASEBALL-3-FILE-IN
  135. CLOSE BASEBALL-3-FILE-OUT
  136. STOP RUN.
  137.  
  138. 200-PROCESS-ONE-RECORD.
  139.  
  140. IF LINES-PRINTED >= 57
  141. PERFORM 300-WRITE-HEADINGS
  142. END-IF
  143. compute TOTAL-HITS = TOTAL-HITS + HITS-IN.
  144. compute TOTAL-AT-BATS = TOTAL-AT-BATS + AT-BATS-IN.
  145. compute TOTAL-AVERAGE rounded = TOTAL-HITS / TOTAL-AT-BATS.
  146.  
  147. compute AVERAGE rounded = HITS-IN / AT-BATS-IN.
  148. MOVE NAME-IN TO DL-NAME
  149. MOVE LEAGUE-IN TO DL-LEAGUE
  150. MOVE TEAM-IN TO DL-TEAM
  151. MOVE HITS-IN TO DL-HITS
  152. MOVE AT-BATS-IN TO DL-AT-BATS
  153. MOVE AVERAGE TO DL-AVERAGE
  154. MOVE DETAIL-LINE TO BASEBALL-3-RECORD-OUT
  155. WRITE BASEBALL-3-RECORD-OUT
  156. AFTER ADVANCING 2 LINES
  157. ADD 2 TO LINES-PRINTED.
  158.  
  159. 300-WRITE-HEADINGS.
  160. ADD 1 TO PAGE-NUMBER
  161. MOVE PAGE-NUMBER TO HL-1-PAGE-NUMBER
  162. MOVE HEADING-LINE-1 TO BASEBALL-3-RECORD-OUT
  163. WRITE BASEBALL-3-RECORD-OUT
  164. AFTER ADVANCING PAGE
  165. MOVE HEADING-LINE-2 TO BASEBALL-3-RECORD-OUT
  166. WRITE BASEBALL-3-RECORD-OUT
  167. AFTER ADVANCING 2
  168. MOVE 3 TO LINES-PRINTED.
  169.  
  170. 400-PRINT-FINAL-TOTALS-LINE.
  171.  
  172. IF LINES-PRINTED >= 57
  173. PERFORM 300-WRITE-HEADINGS
  174. END-IF
  175.  
  176. MOVE TOTAL-AVERAGE TO TL-AVERAGE
  177. MOVE TOTAL-HITS TO TL-HITS
  178. MOVE TOTAL-AT-BATS TO TL-AT-BATS
  179. MOVE TOTALS-LINE TO BASEBALL-3-RECORD-OUT
  180. WRITE BASEBALL-3-RECORD-OUT
  181. AFTER ADVANCING 3 LINES
  182. ADD 2 TO LINES-PRINTED.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement