Assignment:
Calculating Retirement Savings
A Chartered Financial Analyst wants a program that will produce a report to show her clients the benefits of saving for retirement. The report should show 4 predicted account values for each client (each on a separate page). The report will assume the client will invest $10,000 a year for 10, 20, 30 or 40 years. The report will show the return when $10.000 is invested annually and will earn a 9% rate of return.
Example:
Read from File:
client name: Anthony Martin
client address: 123 Main Street, Anytown USA
Sample Calculations:
balance year 0 = 10000 (initial investment)
balance year i = balance year i-1 times 1.09 + 10000 (i = 1 to 40)
Sample Account Balances:
balance at 10 years: $175,605
balance at 20 years: $567,645
balance at 30 years: $1,495,750
balance at 40 years: $3,692,920
Your logic should produce a table formatted as follows:
account balance at 10 years
account balance at 20 years
account balance at 30 years
account balance at 40 years
a) Identify required variables and choose descriptive names and data types for each.
b) Draw the hierarchy chart for this program.
c) Write the pseudocode for this program.
L A B S T E P S
STEP 1: Variable List and Data Types
List of all variables and their respective data types that are used in the algorithm . Variable names should follow naming rules and conventions.
STEP 2: Hierarchy Chart
Note: the solultion of this problem is not unique -there are many ways to design the logic for the program. The logic in the flowchart should be used as a general guide to the modules you should. Use the flowchart attached.
STEP 3: Pseudocode for Main()
Write the pseudocode for the Main() module. The Main() module will call the HouseKeeping() module, loop through each client record in the file, and then call the FinishUp() module.
STEP 4: Pseudocode for Housekeeping()
Write the pseudocode for the HouseKeeping() module. It should declare the variables to be used in the program (using proper naming conventions), open the file, and read a client record.
STEP 5: Pseudocode for Headings()
Write the pseudocode for the Headings() module. The header should include a name for the report, CFA's name and title, date, and the client's name and address.
STEP 6: Pseudocode for MainLoop()
Write the pseudocode for the MainLoop() module. This module will call the Headings() module.
After it calls the Headings() module, it will then need to loop 4 times. One way to do this is to assign a value (10) to a counter for the number of years and design a loop that will execute until the last year (40) has been exceeded with an increment of 10.
Within the loop it will call the CalcSavings() module and after the loop it will read another client record.
STEP 7: Pseudocode for FinishUp()
Write the pseudocode for the FinishUp() module. Its only purpose is to close the file.
STEP 8: Pseudocode for CalcSavings()
Write the pseudocode for the CalcSavings() module. This module will perform the calculations for the account balances.
It should initialize a counter and an accumulator before entering a loop. One suggestion is to have a counter initialized to 1 and a variable to hold the total initialized to the the amount invested (10000).
Then, this module will need a loop that should execute ten times. Within the loop you should 1) calculate the return on the investment and add it to the current total to get the new total; 2) add the investment amount to the total to get the new total, and 3) increment the counter.
It should then print the year and the total.
Use the (partial) flowchart for Step 2 as a general guide.
Deliverable: use Figure 6-20 on page 246 for an example.
STEP 9: Using Arrays
Briefly explain how arrays could be used in the above application. Specifically list the name(s) of the arrays and describe the data that would be stored. Clearly explain how the array(s) would be used and how the use of an array would improve the design of the program's logic.
Attachment:- flowchart.rar