/* ACTION 6-2 (ACT06_02.CPP) OUTPUT: A PROGRAM MENU THAT PROMPTS THE USER TO SELECT A MONTHLY PAYMENT, TOTAL INTEREST, OR TOTAL LOAN AMOUNT CALCULATION OPTION. INVALID ENTRY MESSAGES AS REQUIRED. THE MONTHLY LOAN PAYMENT, TOTAL LOAN INTEREST, OR TOTAL LOAN AMOUNT, DEPENDING ON THE PROGRAM OPTION THAT THE USER SELECTS. INVALID ENTRY MESSAGES AS REQUIRED. INPUT: A USER RESPONSE TO THE MENU (P, I, T, OR Q). IF P IS SELECTED: USER ENTERS THE LOAN AMOUNT, INTEREST RATE, AND TERM. IF I IS SELECTED: USER ENTERS THE LOAN AMOUNT, INTEREST RATE, AND TERM. IF R IS SELECTED: USER ENTERS THE LOAN AMOUNT, INTEREST RATE, AND TERM. IF Q IS SELECTED: TERMINATE PROGRAM. PROCESSING: CALCULATE THE SELECTED OPTION AS FOLLOWS: CASE V: PAYMENT = PRINCIPLE * RATE/(1 - (1+RATE) -TERM) CASE I: INTEREST = TERM * PAYMENT - PRINCIPLE CASE T: TOTAL = PRINCIPLE + INTEREST CASE Q: QUIT THE PROGRAM. WHERE: PRINCIPLE IS THE AMOUNT OF THE LOAN. RATE IS A MONTHLY INTEREST RATE IN DECIMAL FORM. TERM IS THE NUMBER OF MONTHS OF THE LOAN. */ //PREPROCESSOR DIRECTIVES #include //FOR cin AND cout #include //FOR pow() //MAIN FUNCTION int main() { //DEFINE AND INITIALIZE VARIABLES char choice = 'Q'; //USER MENU ENTRY double payment = 0.0; //MONTHLY PAYMENT double interest = 0.0; //TOTAL INTEREST FOR LIFE OF LOAN double total = 0.0; //TOTAL LOAN AMOUNT = PRINCIPLE + INTEREST double principle = 0.0; //LOAN AMOUNT double rate = 0.0; //INTEREST RATE int term = 0; //TERM OF LOAN IN MONTHS //SET OUTPUT FORMAT cout.setf(ios::fixed); cout.setf(ios::showpoint); cout.precision(2); //DISPLAY PROGRAM DESCRIPTION MESSAGE cout << "This program will calculate a monthly loan\n" << "payment, total loan interest, or total loan amount." << endl; //displayMenu() FUNCTION cout << "\n\n\t\t\tEnter P to get monthly payment" << "\n\t\t\tEnter I to get total loan interest" << "\n\t\t\tEnter T to get total loan amount" << "\n\t\t\tEnter Q to quit" << endl; cout << "\n\n\tPlease enter your choice: "; //READ USER CHOICE cin >> choice; //loanCalculator() FUNCTION switch (choice) { case 'p': //calculatePayment() FUNCTION case 'P' : cout << "\nEnter the amount of the loan: $"; cin >> principle; cout << "\nEnter the duration of the loan in months: "; cin >> term; cout << "\nEnter the annual interest rate in percent: "; cin >> rate; //CHECK FOR INVALID ENTRY if ((rate <= 0) || (rate > 100)) cout << "\n\nThis is an invalid entry. Please" << " run the program again." << endl; else { rate = rate/12/100; payment = principle * rate/(1 - pow((1+rate), -term)); cout << "\n\nThe monthly payment is $" << payment << endl; }//END ELSE break; case 'i': //calculateInterest() FUNCTION case 'I' :cout << "\nEnter the amount of the loan: $"; cin >> principle; cout << "\nEnter the duration of the loan in months: "; cin >> term; cout << "\nEnter the annual interest rate in percent: "; cin >> rate; //CHECK FOR INVALID ENTRY if ((rate <= 0) || (rate > 100)) cout << "\n\nThis is an invalid entry. Please" << " run the program again." << endl; else { rate = rate/12/100; payment = principle * rate/(1-pow((1+rate), -term)); interest = term * payment - principle; cout << "\n\nThe total interest is $" << interest << endl; }//END ELSE break; case 't': //calculateTotalLoanAmount() FUNCTION case 'T':cout << "\nEnter the amount of the loan: $"; cin >> principle; cout << "\nEnter the duration of the loan in months: "; cin >> term; cout << "\nEnter the annual interest rate in percent: " ; cin >> rate; //CHECK FOR INVALID ENTRY if ((rate <= 0) || (rate > 100)) cout << "\n\nThis is an invalid entry. Please" << " run the program again." << endl; else { rate = rate/12/100; payment = principle * rate/(1-pow((1+rate), -term)); interest = term * payment - principle; total = principle + interest; cout << "\n\nThe total loan amount is $" << total << endl; }//END ELSE break; case 'q': //QUIT THE PROGRAM case 'Q': cout << "Program terminated"; break; //DISPLAY INVALID ENTRY MESSAGE default : cout << "\n\nThis is an invalid entry. Please" << " run the program again." << endl; } //END SWITCH //RETURN return 0; } //END main()