General Overview: An amortization schedule shows the month‐to‐month state of a loan as a payee makes payments on interest and principle. Generally, your program will allow you to create loans for multiple people, and store these amortization tables in a 3‐dim array
Requirements and Grading Rubric: This is a complex program that will test your knowledge on all concepts we have covered so far. You will be working with Methods, as well as with Multi‐ dimensional arrays in this assignment. Make sure you understand all the major concepts from these chapters and the associated in‐class lectures.
At a minimum, you must implement the methods as listed in the Pseudocode
You may create more if you wish/need.
Your program contains no compile or run‐time
Loan customer names must be stored in the two‐dimensional array nameTable (as shown below). Customer amortization schedules must be stored in the three dimensional array amortDB (as shown below)
The populateAmort() method must be able to handle any loan, interest, and lifetime inputs, along with references to the amortDB and nameTable arrays, and the input of what position in the amortDB to store the new schedule at. You will account for both printing it to the screen and storing the data for each amortization schedule in the three‐dimensional array
Your program must not contain any logic errors. You must properly traverse the two and three‐dimensional arrays that store your customer
When adding a new customer, you must split and reverse their name using the splitName() method, and add this at a new empty position in the nameTable array (Meaning, you will write the code that will traverse the array searching for a new empty spot, and once found, the lastname and firstname will be inserted into this empty spot at column locations 0 and 1,
When adding a new loan schedule for a new customer, you will add the new schedule at the same position in the amortDB array that you added the new name at in the nameTable Meaning: These two arrays will be parallel to each other. If you have three names in nameTable then there should be three schedules stored in amortDB, and at positions 0, 1, and 2 in each, respectively. populateAmort() should be used for generating the new schedule and saving it into amortDB
When updating/changing a schedule for a customer, you will call
populateAmort() at the position you are updating and have it run using the new
loan, APR, or lifetime figures, and it will re‐populate the amortization schedule at that location (overwriting the old values for the new at the pre‐existing position).
Method Hierarchy: (Solid Thin Arrows: Dependencies)
Program will loop at menu after all processing unless user chooses “Exit” option
Listing of main(): (This is all the code you should have in your main() method)
Pseudocode for each method:
Here I am giving you the actual Method Definition’s Header that will use in your code, then I give you some pseudocode for how each method will work. Take note of the parameters passed in and any return values for the methods. Your parameters will tell you what data/value inputs you can see and work with in each method. Your return types (if not ‘void’) will tell you what you need to send back to the calling code.
public static void handleLoanMenuChoice(int menuChoice, double amortDB,
Swtich on menu choice.
Case 1: call addLoan(…); Case 2: call adjustLoan(…);
Case 3: call printAmort(…chooseCustomer() ); Default: Prompt for invalid menu choice.
public static void printAmort(double amortDB, String nameTable, int amortTablePosition)
(Accepts the position of the amortization table to print as a parameter input)
Print out “Amortization schedule for” with lastname, firstname concatenanted on end.
Print out schedule column headers
for (i=0; i<amortDB[parameter position].length;i++
print out the four columns for each row in the schedule selected by amortTablePosition in amortDB
public static void addLoan(double amortDB, String nameTable)
Prompt and capture customer name
call splitArray() and capture the returned single‐dimension String array in a String array
call nameTableFreePosition() and capture the returned integer in a variable for the new empty position in both amortDB and nameTable
Prompt and capture loan amount Prompt and capture APR
Prompt and capture loan lifetime.
call populateAmort() and pass to it references to amortDB, nameTable, as well as the new position number, the loan amount, APR, and loan lifetime.
DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma
Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t
Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th
1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of
1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of