CSCI 362 — Lab 1b

(Re)writing a CSCI 161 Lab in C++

Due: May 20, 2019 @ 6:00PM

Overview

Calculate the interest earned on a certificate of deposit (CD) over a specified period. Prompt the user for an initial balance, an annual rate, and the number of years the money will be invested. Output a table that shows the starting balance, interest earned, and updated balance at the end of each year.

Use at least the REQUIRED METHODS listed below, with the EXACT same SPELLING for method names and parameters.

Input Specification

Ask the user for an initial balance, annual rate, and the number of years the money will be invested. The balance and rate will be real numbers, while the number of years must be an integer.

Use PRECISELY the format below with the EXACT same SPACING.

Please enter the initial balance: <user input>
Please enter the interest rate  : <user input>
Please enter the number of years: <user input>

Output Specification

Output an introductory message, prompts, and then the table. The sample output below assumes the user entered an initial balance of 1000, an interest rate of 6.50, and a number of years of 10. Note well the FORMATTING (spacing and justification) used. You may assume numbers will not overflow their columns.

This program will calculate the interest earned
  on a CD over a period of several years.

Please enter the initial balance: 1000
Please enter the interest rate  : 6.5
Please enter the number of years: 10

Year     Balance     Interest     New Balance
----     -------     --------     -----------
1       1,000.00        65.00        1,065.00
2       1,065.00        69.23        1,134.23
.
.
.
10      ...

Required Methods

Include at LEAST the following methods.

// Inform user what program will do
void   printIntro   ();

// Print the header followed by all the rows.
void   printTable   (int numRows, double balance, double rate);

// Print one row of table. "interest" is a dollar amount,
//   not a rate.
void   printRow     (int rowNum, double balance, double interest);

// Calculate interest given a balance and percentage rate (like 7.2%)
double calcInterest (double balance, double rate);

Hints

Do NOT worry about formatting the table until you get the logic correct. Once you do get the logic correct, use printf to format the four table columns (Year, Balance, Interest, and New Balance). You may find this StackOverflow question useful.

It involves setlocale() and using an apostrophe. Set the locale ONLY ONCE, and do so in main(). Note that if you're using a non-lab machine your program may behave differently, so ensure you test thoroughly on a Linux Lab machine before submitting. Depending on your system's implementation of printf, some of your amounts may differ from mine by a cent.

The following width guide may be of use:

         111111111122222222223333333333444444
123456789012345678901234567890123456789012345

Year     Balance     Interest     New Balance
----     -------     --------     -----------

Style

Use good programming style:

Submission

Please submit a single C++ source file with a .cpp file extension to autolab

If you do not have an autolab account, click "forgot password" and enter your millersville email.

Grading