Reference no: EM132909984
ITECH1400 Fundamentals of Programming - Federation University
ASSIGNMENT - MORTGAGE CALCULATOR
Overview
In this assignment you will have the opportunity to test your Python skills in developing classes and using matplotlib library. Throughout the assignment you are expected to apply the principles of problem solving that we have already discussed in this course.
Learning Outcomes Assessed
Knowledge:
K1. Identify and use the correct syntax of a common programming language.
K2. Recall and use typical programming constructs to design and implement simple software solutions.
K3. Reproduce and adapt commonly used basic algorithms. K4. Explain the importance of programming style concepts (documentation, mnemonic names, indentation).
Skills:
S2. Write and implement a solution algorithm using basic programming constructs.
S3. Demonstrate debugging and testing skills whilst writing code.
Application of knowledge and skills:
A1. Develop self-reliance and judgement in adapting algorithms to diverse contexts.
A2. Design and write program solutions to identified problems using accepted design constructs.
ASSESSMENT DETAILS
Introduction. Your assignment is to write a Python program that takes inputs for the Loan Amount, Loan Term and Interest Rate and then calculates and displays values of Weekly (Fortnightly, Monthly) Repayments. Also, the program plots the values of Remaining Principal by years.
Explained below is how to calculate these values:
First, let's assume the following notations (in your program, you will input these values from the command line):
L - loan amount in AUD. Y - loan term in years. p - interest rate.
k - repayment frequency in days (i.e. weekly - 7 days, fortnightly - 14 days, monthly - 30 days).
Repayments, P0, are calculated by the following formula:
P0 =L.(1+p/365)365.y.(1+p/365)k -1/(1+p/365)365.Y -1
Remaining Principal Balance, Bn, at the end of year n is calculated by the formula:
Bn =L.(1+p/365)365.n -P0.(1+p/365)365.n -1/(1+p/365)k -1
1. Develop a Mortgage class.
The class should have the following attributes (instance variables):
loan - for the loan amount in AUD. years - loan term in years. interest - interest rate.
r_frequency - repayment frequency in days.
These attributes should be defined in the constructor, __init_. Also, the class should define the following methods:
repayments(self) - calculates the value of repayments using the formula provided in the introduction (for P0) and returns the calculated value.
balance_after(self,n) - calculates the remaining balance (debt) after n years using the formula provided in the introduction (for Bn) and returns the calculated value.
print(self) - prints information about the mortgage on screen, i.e.: loan amount, loan term, interest and repayments. The output of this method should be similar to the following:
Loan Amount: 100000.0 AUD Loan Term (Years): 20 Interest: 4.8%
Fortnightly Repayments: 298.61
draw_balance_graph(self) - using the matplotlib library, the method plots a graph of the Remaining Balances by years using balance_after method. The output of this method should be similar to the following:
Task 2. Write main() function.
This should be your main program that:
1. Prompts and takes inputs for the loan amount, loan term, interest rate and repayment frequency.
2. Creates a Mortgage object using the entered values.
3. Using the Mortgage object's methods, prints the mortgage information on screen and plots the mortgage balances by years.
You are required to use exception handling to make your inputs robust (foolproof) i.e. if the user will enter a wrong value, the program won't crash, but instead it will prompt the user to enter a correct value.
Attachment:- Mortgage_Calculator.rar