Guest User

Untitled

a guest
Feb 19th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.00 KB | None | 0 0
  1. IDENTIFICATION DIVISION.
  2.  
  3. PROGRAM-ID. EXAMPLE2.
  4. ************************************************************************
  5. * Put your name and a description of the program here *
  6. * *
  7. ************************************************************************
  8.  
  9. ENVIRONMENT DIVISION.
  10.  
  11. INPUT-OUTPUT SECTION.
  12.  
  13. FILE-CONTROL.
  14. SELECT INFILE ASSIGN TO "BANKIN.DAT".
  15. SELECT OUTFILE ASSIGN TO "BANKOUT.DAT".
  16.  
  17. ************************************************************************
  18.  
  19. DATA DIVISION.
  20.  
  21. FILE SECTION.
  22.  
  23. FD INFILE.
  24. 01 ACCOUNT-RECORD-IN.
  25. 05 AR-CUSTOMER-NAME-IN PIC X(20).
  26. 05 AR-PRINCIPAL-IN PIC 9(7)V99.
  27. 05 AR-DEPOSIT-IN PIC 9(7)V99.
  28. 05 AR-DEPOSIT-DAYS-IN PIC 99.
  29. 05 AR-PRINCIPAL-RATE-IN PIC 99V99.
  30. 05 AR-DEPOSIT-RATE-IN PIC 99V99.
  31.  
  32. FD OUTFILE.
  33. 01 OUTPUT-BUFFER PIC X(80).
  34.  
  35. WORKING-STORAGE SECTION.
  36. 01 ACCOUNT-RECORD.
  37.  
  38. * Declarations for various line formats.
  39.  
  40. 01 DETAIL-LINE-OUT.
  41. 05 PIC XX VALUE SPACES.
  42. 05 DL-CUSTOMER-NAME-OUT PIC X(20).
  43. 05 PIC XX VALUE SPACES.
  44. 05 DL-OLD-PRINCIPAL-OUT PIC Z,ZZZ,ZZ9.99.
  45. 05 PIC XX VALUE SPACES.
  46. 05 DL-DEPOSIT-OUT PIC Z,ZZZ,ZZ9.99.
  47. 05 PIC XX VALUE SPACES.
  48. 05 DL-INTEREST-OUT PIC Z,ZZZ,ZZ9.99.
  49. 05 PIC XX VALUE SPACES.
  50. 05 DL-NEW-PRINCIPAL-OUT PIC $Z,ZZZ,ZZ9.99.
  51. 05 PIC XX VALUE SPACES.
  52.  
  53.  
  54. 01 MAIN-HEADER.
  55. 05 PIC X(25) VALUE SPACES.
  56. 05 PIC X(45) VALUE
  57. 'Monthly Report on Customer Accounts'.
  58.  
  59. * You need to define the header lines and the summary line appropriately
  60. 01 COLUMN-HEADERS-LINE1.
  61. 05 COLUMN-LINE1-HEADER1 PIC X(15) VALUE ' CUSTOMER NAME'.
  62. 05 COLUMN-LINE1-SPACES1 PIC X(12) VALUE SPACES.
  63. 05 COLUMN-LINE1-HEADER2 PIC X(8) VALUE
  64. 'STARTING'.
  65. 05 COLUMN-LINE1-SPACES2 PIC X(22) VALUE SPACES.
  66. 05 COLUMN-LINE1-HEADER3 PIC X(8) VALUE 'INTEREST'.
  67. 05 COLUMN-LINE1-SPACES3 PIC X(3) VALUE SPACES.
  68. 05 COLUMN-LINE1-HEADER4 PIC X(6) VALUE
  69. 'ENDING'.
  70. 01 COLUMN-HEADERS-LINE2.
  71. 05 COLUMN-LINE2-SPACES1 PIC X(27) VALUE SPACES.
  72. 05 COLUMN-LINE2-HEADER1 PIC X(7) VALUE 'BALANCE'.
  73. 05 COLUMN-LINE2-SPACES2 PIC X(7) VALUE SPACES.
  74. 05 COLUMN-LINE2-HEADER2 PIC X(7) VALUE 'DEPOSIT'.
  75. 05 COLUMN-LINE2-SPACES3 PIC X(10) VALUE SPACES.
  76. 05 COLUMN-LINE2-HEADER3 PIC X(6) VALUE 'EARNED'.
  77. 05 COLUMN-LINE2-SPACES4 PIC X(4) VALUE SPACES.
  78. 05 COLUMN-LINE2-HEADER4 PIC X(7) VALUE 'BALANCE'.
  79.  
  80. 01 DASH-LINE-OUT PIC X(80) VALUE ALL '-'.
  81.  
  82. 01 SUMMARY-LINE-OUT.
  83. 05 SUMMARY-SPACES1 PIC X(36) VALUE SPACES.
  84. 05 SUMMARY-TOTAL-INTEREST-HEADER PIC X(14) VALUE
  85. 'TOTAL INTEREST'.
  86. 05 PIC X(5) VALUE SPACES.
  87. 05 SUMMARY-TOTAL-INTEREST PIC $ZZ,ZZZ,ZZ9.99
  88.  
  89. 01 FILE-VARIABLES.
  90. 05 END-OF-DATA-FLAG PIC X VALUE "N".
  91. 88 NO-MORE-DATA VALUE "Y".
  92.  
  93. 01 CALCULATION-RESULTS.
  94. 05 WS-INTEREST PIC 9(7)V99.
  95. * Put declarations for other temp/calculation results here
  96. 05 WS-PRINCIPAL PIC 9(7)V99.
  97. 05 WS-DEPOSIT PIC 9(7)V99.
  98. 05 WS-DEPOSIT-DAYS PIC 99.
  99. 05 WS-PRINCIPAL-RATE PIC 99V99.
  100. 05 WS-DEPOSIT-RATE PIC 99V99.
  101. 01 TEMP-STORAGE.
  102. 05 WS-PRINC-INTR PIC 9(9)V99.
  103. 05 WS-P-MONTHLY-INTEREST PIC 99V99.
  104. 05 WS-D-MONTHLY-INTEREST PIC 99V99.
  105. 05 WS-DEPOSIT-DEPINT PIC 9(9)V99.
  106. 05 WS-MONTHS PIC 99.
  107. 05 WS-SOLUTION PIC 9(10)V99.
  108.  
  109. ************************************************************************
  110.  
  111. PROCEDURE DIVISION.
  112.  
  113. 100-MAIN-LOGIC.
  114.  
  115. * open files and introduce program to user
  116. OPEN INPUT INFILE
  117. OUTPUT OUTFILE
  118.  
  119. DISPLAY " "
  120. DISPLAY "RUNNING..."
  121. DISPLAY " "
  122.  
  123.  
  124. * Put the statements to print the headers here
  125. PERFORM 105-PRINT-HEADERS
  126.  
  127. * read records and process them until input
  128. * is exhausted
  129. PERFORM UNTIL NO-MORE-DATA
  130. READ INFILE
  131. AT END
  132. MOVE "Y" TO END-OF-DATA-FLAG
  133. NOT AT END
  134. PERFORM 200-PROCESS-RECORD
  135. END-READ
  136. END-PERFORM
  137. WRITE OUTPUT-BUFFER FROM SUMMARY-LINE-OUT.
  138. * close files & wrap up
  139. CLOSE INFILE
  140.  
  141. * Format and print the line of dashes and the line with the total interest here
  142. CLOSE OUTFILE
  143. DISPLAY "Processing completed"
  144. STOP RUN.
  145.  
  146. 105-PRINT-HEADERS.
  147. WRITE OUTPUT-BUFFER FROM MAIN-HEADER.
  148. WRITE OUTPUT-BUFFER FROM COLUMN-HEADERS-LINE1.
  149. WRITE OUTPUT-BUFFER FROM COLUMN-HEADERS-LINE2.
  150. WRITE OUTPUT-BUFFER FROM DASH-LINE-OUT.
  151.  
  152. 200-PROCESS-RECORD.
  153. MOVE AR-CUSTOMER-NAME-IN TO DL-CUSTOMER-NAME-OUT
  154. MOVE AR-PRINCIPAL-IN TO DL-OLD-PRINCIPAL-OUT
  155. MOVE AR-DEPOSIT-IN TO DL-DEPOSIT-OUT
  156.  
  157. * You should replace the next 2 lines with appropriate calculations
  158. MOVE AR-PRINCIPAL-RATE-IN TO WS-PRINCIPAL-RATE.
  159. MOVE AR-DEPOSIT-RATE-IN TO WS-DEPOSIT-RATE.
  160. MOVE AR-PRINCIPAL-IN TO WS-PRINCIPAL.
  161. MOVE AR-DEPOSIT-IN TO WS-DEPOSIT.
  162. MOVE AR-DEPOSIT-DAYS-IN TO WS-DEPOSIT-DAYS.
  163. * Get monthly interest rates
  164. DIVIDE WS-PRINCIPAL-RATE BY 12 TO WS-P-MONTHLY-INTEREST.
  165. DIVIDE WS-DEPOSIT-RATE BY 12 TO WS-D-MONTHLY-INTEREST.
  166. MULTIPLY WS-PRINCIPAL BY WS-P-MONTHLY-INTEREST TO WS-PRINC-INTR.
  167. MULTIPLY WS-DEPOSIT BY WS-D-MONTHLY-INTERST TO WS-DEPOSIT-DEPINT.
  168. DIVIDE WS-DEPOSIT-DAYS BY 30 TO WS-MONTHS.
  169. MULTIPLY WS-DEPOSIT-DEPINT BY WS-MONTHS TO WS-INTEREST.
  170. MULTIPLY WS-PRINC-INTR BY WS-SOLUTION TO WS-INTEREST.
  171. MOVE WS-INTEREST TO DL-INTEREST-OUT.
  172. WRITE OUTPUT-BUFFER FROM DETAIL-LINE-OUT.
  173. ************************************************************************
Add Comment
Please, Sign In to add comment