Project Demo: Annuity Valuation
Here is a project I worked on in COBOL for FinTech: Annuity Valuation.
IDENTIFICATION DIVISION.
PROGRAM-ID. ANNUITY.
*----------------------------------------------------------------
*
DATA DIVISION.
WORKING-STORAGE SECTION.
01 TOTAL-LOAN PIC 9(9)V99.
01 FTOTAL-LOAN PIC $$$,$$$,$$9.99.
01 INTEREST-RATE PIC 999V99. *> INTEREST OF 5%.
01 INTEREST-RATEP PIC 999V99 VALUE ZERO.
01 MONTHS PIC 999 VALUE ZERO.
01 YEARS PIC 999.
01 MONTHLY-PAYMENT PIC 9(9)V99.
01 FMONTHLY-PAYMENT PIC $$$,$$$,$$9.99.
01 INPUTVALID PIC X VALUE 'N'.
*----------------------------------------------------------------
*
Above you can see Ive got several data items. Some of them are for user input and
have a second similar item for formatted output.
PROCEDURE DIVISION.
DISPLAY ' '.
DISPLAY 'D8888B. .D888B.'.
DISPLAY '88 `8D VP `8D DB'.
DISPLAY '88OODD~ ODD VP'.
DISPLAY '88~~~ .88~'.
DISPLAY '88 J88~. DB'.
DISPLAY '88 888888D VP'.
DISPLAY ' '.
DISPLAY ' _, _ __ _ __ __ ,___________ _'.
DISPLAY ' / | ( / )( / )( / /( /( / ( / / '.
DISPLAY ' /--| / / / / / / / / (__/ '.
DISPLAY '_/ |_/ (_ / (_ (_,/__/_ _/ _/_ '.
DISPLAY ' // '.
DISPLAY ' (/ '.
DISPLAY ' '.
DISPLAY 'PRESENTED BY JACK ANDERSON, N01585386'.
DISPLAY ' '.
* -----------------------
This section above is basically just a fancy title screen haha. The ASCII art looks a little
goofy in this format but when printed to the user in TSO it looks nice.
* GATHER USER INPUT
* // USE PERFORM UNTIL INSTEAD
PERFORM UNTIL INPUTVALID = 'Y'
DISPLAY 'ENTER THE TOTAL AMOUNT OF YOUR LOAN:'
DISPLAY 'FORMAT: XXXXXXXXX.XX (OMIT DECIMAL POINT)'
ACCEPT TOTAL-LOAN
IF TOTAL-LOAN IS NUMERIC THEN MOVE 'Y' TO INPUTVALID
ELSE DISPLAY 'INPUT IS INVALID, PLEASE TRY AGAIN'
END-IF
END-PERFORM.
MOVE TOTAL-LOAN TO FTOTAL-LOAN.
*
MOVE 'N' TO INPUTVALID.