Question: Final Program: I would like to write a program that serves as an amortization table of a loan. It should ask the user the amount
Final Program:
I would like to write a program that serves as an amortization table of a loan. It should ask the user the amount of the loan, the interest rate and the length of it and calculates this table:

I would like this to be printed out to a .csv file so I could plot a graph if I would want to as well.
These are the guidelines I have to follow:
Write a program that demonstrates the skills we've learned throughout this quarter. This type of project offers only a few guidelines, allowing you to invest as much time and polish as you want, as long as you meet the program requirements described below. Your main requirement is that you demonstrate six of the following features in your software program and that you comment and document your code well:
- Functional Decomposition: Use methods (a.k.a., functions) to break up a large program into meaningful chunks, using input to and output from those functions where appropriate.
- Looping with Repetition Control Structures: Use two of the following structures: for, while, do/while, foreach.
- Nested Loops: Use a loop within a loop in your program. Note that this is automatically accomplished when using Multi-Dimensional Arrays.
- Branching with Selection Control Structures: Use multiple (i.e., more than one) if/else and/or switch statements in your code. (You don't need to use both kinds of statements. if/else means any kind of if/else statement.)
- File I/O: Read from or write to a file in your software. Examples of this include be reading in a preset pattern for the computer opponent's answers in a game of rock/paper/scissors, or writing a file that logs each move the player makes, effectively recording a history of the game. Any input or output filename CANNOT HAVE ABSOLUTE PATHS. For instance, you cannot specify filenames "C:\\Users\\file.txt" or "/home/username/file.txt" as our computers have a different directory tree. All filename must be specified without a path (i.e., just the name of the file without any directories specified in front of it).
- Using Multiple Classes: Build and use more than one class in your project. Note that a class that only has a mainmethod and does not have any instance variables or methods does not count as a "class" in this feature. Thus, if you have a driver class that only has a main method and you want credit for this feature, you need at least two other classes in addition to the driver class. Also, for the purpose of this assignment, this grading criterion can only be met by classes that have no static variables or methods (except the main method).
- One-dimensional arrays: Make use of a one-dimensional array in your software. If it is a partially-filled array, keep track of its current number of live elements with an int.
- Class Design using Access Modifiers: Make all class-wide instance variables private in your class, and provide "getters" and "setters" to get and set the data accordingly.
- Multi-Dimensional Arrays: Make use of an array with a dimensionality greater than one.
- Variable Tracing and Testing: Include a method(s) that can be used to provide output for tracing variables for the purpose of testing whether your code is working. The method(s) should be called test-something, e.g., testStatistics. Somewhere in your program, there should be a call to that method(s). In the code you submit, that call should be commented out, but I should be able to find it.
A few thoughts: Don't be intimidated by the requirements above. Reuse, reuse, reuse! Think about how you can you accomplish multiple goals simultaneously. For example, doesn't reading input from a file accomplish both File I/O and Looping with Repetition Control Structures? If you don't know where to start, take an example that looks interesting to you and start by adding to it.
NB: The requirement to comment and document your code well is in addition to the six features you've chosen. (Also, there are additional grading criteria listed.)
Finally, submit a file with your source code (put it in the same directory as your source code) where you list which six of the above features you want to be graded on. Make sure you number these features from one to six; the order doesn't matter, but I'll use the numbering as references while grading. Make this file a plain text file and with an extension .txt.
Thank you!!!
Mortgage Calculator 2 3. Principle Amount: $200000.0 4. Interest Rate(%): 2.0% 5. Term (Years): 30 7. The monthly payment will be: $739.24 Monthly 10. Months 11. Remaining Payment 12 13. 360 14. 359 15. 358 16. 357 17. 356 18. 355 Interest Principal Balance Payment Payment Remaining 739.24 739.24 739.24 739.24 739.24 739.24 $333.33 $333.33 $333.33 $333.33 $333.33 $333.33 $405.91 $405.91 $405.91 $405.91 $405.91 $405.91 $199594.09 $199594.09 $199594.09 $199594.09 $199594.09 $199594.09 Mortgage Calculator 2 3. Principle Amount: $200000.0 4. Interest Rate(%): 2.0% 5. Term (Years): 30 7. The monthly payment will be: $739.24 Monthly 10. Months 11. Remaining Payment 12 13. 360 14. 359 15. 358 16. 357 17. 356 18. 355 Interest Principal Balance Payment Payment Remaining 739.24 739.24 739.24 739.24 739.24 739.24 $333.33 $333.33 $333.33 $333.33 $333.33 $333.33 $405.91 $405.91 $405.91 $405.91 $405.91 $405.91 $199594.09 $199594.09 $199594.09 $199594.09 $199594.09 $199594.09
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
