Explore BrainMass

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.

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.

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.

*Figure 6-20 is on page 246*


Solution Preview


Please find the solution in the attached file.

Please do let me know, if you have any query. I would be happy to assist you further with this posting.

The program needs to generate a report that shows the balance of the customer at the end of 10, 20, 30 and 40 years assuming that the investment is $10,000 a year for 10,20,30 or 40 years.
Variable requirements:-
We need one variable rate to store the rate of interest and one to store the balance. We need another variable to store the name of the client and one to store the address. So here is the table. We need
Variable name Data type Size
Balance Float sizeof(float)
Rate Float Sizeof(float)
Name Char array 100
Address Char array 250
Date (day) int Sizeof(int)
Date (month) Int Sizeof(int)
Date (year) Int Sizeof (int)
Title Char array 100
CFA's name Char array 100
Fp FILE pointer 2
Reportname[4][100] Char array (2-d) 400
counters Int 2

The solution to the problem contains several modules to be called, the modules are main (), housekeeping (), mainloop(), finishup(), headings(), calc_savings().
Here is the hierarchy chart of the modules being called, i.e the order in which the modules are called.

Main () module: - The Main() module will call the HouseKeeping() module, loop through each client record in the file, and then call ...

Solution Summary

The expert calculates retirement savings. What the program will produce is determined.