Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- IDENTIFICATION DIVISION.
- PROGRAM-ID. EXAMPLE2.
- ************************************************************************
- * Put your name and a description of the program here *
- * *
- ************************************************************************
- ENVIRONMENT DIVISION.
- INPUT-OUTPUT SECTION.
- FILE-CONTROL.
- SELECT INFILE ASSIGN TO "BANKIN.DAT".
- SELECT OUTFILE ASSIGN TO "BANKOUT.DAT".
- ************************************************************************
- DATA DIVISION.
- FILE SECTION.
- FD INFILE.
- 01 ACCOUNT-RECORD-IN.
- 05 AR-CUSTOMER-NAME-IN PIC X(20).
- 05 AR-PRINCIPAL-IN PIC 9(7)V99.
- 05 AR-DEPOSIT-IN PIC 9(7)V99.
- 05 AR-DEPOSIT-DAYS-IN PIC 99.
- 05 AR-PRINCIPAL-RATE-IN PIC 99V99.
- 05 AR-DEPOSIT-RATE-IN PIC 99V99.
- FD OUTFILE.
- 01 OUTPUT-BUFFER PIC X(80).
- WORKING-STORAGE SECTION.
- 01 ACCOUNT-RECORD.
- * Declarations for various line formats.
- 01 DETAIL-LINE-OUT.
- 05 PIC XX VALUE SPACES.
- 05 DL-CUSTOMER-NAME-OUT PIC X(20).
- 05 PIC XX VALUE SPACES.
- 05 DL-OLD-PRINCIPAL-OUT PIC Z,ZZZ,ZZ9.99.
- 05 PIC XX VALUE SPACES.
- 05 DL-DEPOSIT-OUT PIC Z,ZZZ,ZZ9.99.
- 05 PIC XX VALUE SPACES.
- 05 DL-INTEREST-OUT PIC Z,ZZZ,ZZ9.99.
- 05 PIC XX VALUE SPACES.
- 05 DL-NEW-PRINCIPAL-OUT PIC $Z,ZZZ,ZZ9.99.
- 05 PIC XX VALUE SPACES.
- 01 MAIN-HEADER.
- 05 PIC X(25) VALUE SPACES.
- 05 PIC X(45) VALUE
- 'Monthly Report on Customer Accounts'.
- * You need to define the header lines and the summary line appropriately
- 01 COLUMN-HEADERS-LINE1.
- 05 COLUMN-LINE1-HEADER1 PIC X(15) VALUE ' CUSTOMER NAME'.
- 05 COLUMN-LINE1-SPACES1 PIC X(12) VALUE SPACES.
- 05 COLUMN-LINE1-HEADER2 PIC X(8) VALUE
- 'STARTING'.
- 05 COLUMN-LINE1-SPACES2 PIC X(22) VALUE SPACES.
- 05 COLUMN-LINE1-HEADER3 PIC X(8) VALUE 'INTEREST'.
- 05 COLUMN-LINE1-SPACES3 PIC X(3) VALUE SPACES.
- 05 COLUMN-LINE1-HEADER4 PIC X(6) VALUE
- 'ENDING'.
- 01 COLUMN-HEADERS-LINE2.
- 05 COLUMN-LINE2-SPACES1 PIC X(27) VALUE SPACES.
- 05 COLUMN-LINE2-HEADER1 PIC X(7) VALUE 'BALANCE'.
- 05 COLUMN-LINE2-SPACES2 PIC X(7) VALUE SPACES.
- 05 COLUMN-LINE2-HEADER2 PIC X(7) VALUE 'DEPOSIT'.
- 05 COLUMN-LINE2-SPACES3 PIC X(10) VALUE SPACES.
- 05 COLUMN-LINE2-HEADER3 PIC X(6) VALUE 'EARNED'.
- 05 COLUMN-LINE2-SPACES4 PIC X(4) VALUE SPACES.
- 05 COLUMN-LINE2-HEADER4 PIC X(7) VALUE 'BALANCE'.
- 01 DASH-LINE-OUT PIC X(80) VALUE ALL '-'.
- 01 SUMMARY-LINE-OUT.
- 05 SUMMARY-SPACES1 PIC X(36) VALUE SPACES.
- 05 SUMMARY-TOTAL-INTEREST-HEADER PIC X(14) VALUE
- 'TOTAL INTEREST'.
- 05 PIC X(5) VALUE SPACES.
- 05 SUMMARY-TOTAL-INTEREST PIC $ZZ,ZZZ,ZZ9.99
- 01 FILE-VARIABLES.
- 05 END-OF-DATA-FLAG PIC X VALUE "N".
- 88 NO-MORE-DATA VALUE "Y".
- 01 CALCULATION-RESULTS.
- 05 WS-INTEREST PIC 9(7)V99.
- * Put declarations for other temp/calculation results here
- 05 WS-PRINCIPAL PIC 9(7)V99.
- 05 WS-DEPOSIT PIC 9(7)V99.
- 05 WS-DEPOSIT-DAYS PIC 99.
- 05 WS-PRINCIPAL-RATE PIC 99V99.
- 05 WS-DEPOSIT-RATE PIC 99V99.
- 01 TEMP-STORAGE.
- 05 WS-PRINC-INTR PIC 9(9)V99.
- 05 WS-P-MONTHLY-INTEREST PIC 99V99.
- 05 WS-D-MONTHLY-INTEREST PIC 99V99.
- 05 WS-DEPOSIT-DEPINT PIC 9(9)V99.
- 05 WS-MONTHS PIC 99.
- 05 WS-SOLUTION PIC 9(10)V99.
- ************************************************************************
- PROCEDURE DIVISION.
- 100-MAIN-LOGIC.
- * open files and introduce program to user
- OPEN INPUT INFILE
- OUTPUT OUTFILE
- DISPLAY " "
- DISPLAY "RUNNING..."
- DISPLAY " "
- * Put the statements to print the headers here
- PERFORM 105-PRINT-HEADERS
- * read records and process them until input
- * is exhausted
- PERFORM UNTIL NO-MORE-DATA
- READ INFILE
- AT END
- MOVE "Y" TO END-OF-DATA-FLAG
- NOT AT END
- PERFORM 200-PROCESS-RECORD
- END-READ
- END-PERFORM
- WRITE OUTPUT-BUFFER FROM SUMMARY-LINE-OUT.
- * close files & wrap up
- CLOSE INFILE
- * Format and print the line of dashes and the line with the total interest here
- CLOSE OUTFILE
- DISPLAY "Processing completed"
- STOP RUN.
- 105-PRINT-HEADERS.
- WRITE OUTPUT-BUFFER FROM MAIN-HEADER.
- WRITE OUTPUT-BUFFER FROM COLUMN-HEADERS-LINE1.
- WRITE OUTPUT-BUFFER FROM COLUMN-HEADERS-LINE2.
- WRITE OUTPUT-BUFFER FROM DASH-LINE-OUT.
- 200-PROCESS-RECORD.
- MOVE AR-CUSTOMER-NAME-IN TO DL-CUSTOMER-NAME-OUT
- MOVE AR-PRINCIPAL-IN TO DL-OLD-PRINCIPAL-OUT
- MOVE AR-DEPOSIT-IN TO DL-DEPOSIT-OUT
- * You should replace the next 2 lines with appropriate calculations
- MOVE AR-PRINCIPAL-RATE-IN TO WS-PRINCIPAL-RATE.
- MOVE AR-DEPOSIT-RATE-IN TO WS-DEPOSIT-RATE.
- MOVE AR-PRINCIPAL-IN TO WS-PRINCIPAL.
- MOVE AR-DEPOSIT-IN TO WS-DEPOSIT.
- MOVE AR-DEPOSIT-DAYS-IN TO WS-DEPOSIT-DAYS.
- * Get monthly interest rates
- DIVIDE WS-PRINCIPAL-RATE BY 12 TO WS-P-MONTHLY-INTEREST.
- DIVIDE WS-DEPOSIT-RATE BY 12 TO WS-D-MONTHLY-INTEREST.
- MULTIPLY WS-PRINCIPAL BY WS-P-MONTHLY-INTEREST TO WS-PRINC-INTR.
- MULTIPLY WS-DEPOSIT BY WS-D-MONTHLY-INTERST TO WS-DEPOSIT-DEPINT.
- DIVIDE WS-DEPOSIT-DAYS BY 30 TO WS-MONTHS.
- MULTIPLY WS-DEPOSIT-DEPINT BY WS-MONTHS TO WS-INTEREST.
- MULTIPLY WS-PRINC-INTR BY WS-SOLUTION TO WS-INTEREST.
- MOVE WS-INTEREST TO DL-INTEREST-OUT.
- WRITE OUTPUT-BUFFER FROM DETAIL-LINE-OUT.
- ************************************************************************
Add Comment
Please, Sign In to add comment