 Compound Interest Introduction
 This small application shows how to calculate the compound interest of a saving. Prerequisites: When you deposit money in a savings account, your money earns interest that is calculated every month or quarter, etc. Because this is not money you need right away, the amount accrued can be reinvested, thus boosting your interest so the next calculation would be based on the original amount plus the new added value. This is the basis of compound interest.The compound interest can be calculated monthly or quarterly, etc based on the original amount you deposited, the interest rate, and the period you and the institution agreed upon.
 Creating the Application

This application uses a dialog box equipped with the necessary controls used to perform the type or related calculated. The formula we will use to perform the calculations is as follows: P = Principal r = Annual (Interest) Rate m = Number of Compounding Periods per Year n = Total Number of Compounding Periods A = Amount Earned After n periods

 Practical Learning: Starting the Exercise
1. Start Microsoft Visual C++
2. Create a new project named CompoundInterest1
3. Create the project as a Dialog Based and set the Dialog Title as Compound Interest
4. While still using the wizard:
Change the application's Class Name to CExerciseApp
Change the dialog's Class Name to CExerciseDlg
Change the dialog's header file to ExerciseDlg.h
Change the dialog's source file to ExerciseDlg.cpp
5. Delete the TODO line and the OK button. Change the Caption of the Cancel button to Close
6. Design the dialog box as follows: Control ID Caption Additional Properties Group Box Values Static Text Principal: ............... Edit Box IDC_PRINCIPAL Align Text: Right Static Text Interest: ............... Edit Box IDC_ANNUAL_RATE Align Text: Right Static Text Number of Periods Edit Box IDC_NUMBER_OF_PERIODS Align Text: Center Group Box Compound Frequency Radio Button IDC_COMPOUND Monthly Group: True Left Text: True Radio Button Quarterly Left Text: True Radio Button Semiannually Left Text: True Radio Button Annually Left Text: True Group Box Static Text Interest Earned Edit Box IDC_INTEREST_EARNED Align Text: Right Static Text Amount Earned Edit Box IDC_AMOUNT_EARNED Align Text: Right Button IDC_CALCULATE_BTN C&alculate Default Button: True
7. Using either the ClassWizard or the Add Member Variable Wizard, add the following member variables to the controls:

 Identifier Type Value Variable IDC_AMOUNT_EARNED CString m_AmountEarned IDC_ANNUAL_RATE CString m_AnnualRate IDC_COMPOUND int m_Compound IDC_INTEREST_EARNED CString m_InterestEarned IDC_NUMBER_OF_PERIODS CString m_InterestEarned IDC_PRINCIPAL CString m_Principal
8. Initialize controls in the constructor of the dialog as follows:

 ```CExerciseDlg::CExerciseDlg(CWnd* pParent /*=NULL*/) : CDialog(CExerciseDlg::IDD, pParent) { //{{AFX_DATA_INIT(CExerciseDlg) m_Principal = _T("0.00"); m_AnnualRate = _T("0"); m_NumberOfPeriods = _T("1"); m_Compound = 3; m_InterestEarned = _T("0.00"); m_AmountEarned = _T("0.00"); //}}AFX_DATA_INIT m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); }```
9. Initiate the BN_CLICKED message of the Calculate button and implement its OnClick() event as follows:

 ```void CExerciseDlg::OnCalculateBtn() { // TODO: Add your control notification handler code here UpdateData(); double Principal, AnnualRate, InterestEarned; double FutureValue, RatePerPeriod; int NumberOfPeriods, CompoundType; Principal = atof(m_Principal); AnnualRate = atof(m_AnnualRate) / 100; switch( m_Compound ) { case 0: CompoundType = 12; break; case 1: CompoundType = 4; break; case 2: CompoundType = 2; break; case 3: CompoundType = 1; break; } NumberOfPeriods = atoi(m_NumberOfPeriods); double i = AnnualRate / CompoundType; int n = CompoundType * NumberOfPeriods; RatePerPeriod = AnnualRate / NumberOfPeriods; FutureValue = Principal * pow(1 + i, n); InterestEarned = FutureValue - Principal; m_InterestEarned.Format("\$%.2f", InterestEarned); m_AmountEarned.Format("\$%.2f", FutureValue); UpdateData(FALSE); }```
10. Test the application