Link to home
Start Free TrialLog in
Avatar of imagekrazy
imagekrazy

asked on

object-oriented C++ program

I can't get my prgram to quit or enter new value
#include <iomanip>
#include <cstdlib>
#include <iostream>
#include <string>
#include <sstream>
#include <cmath>
#include <time.h> 
 
 
using namespace std;
 
 
using std::cout;
using std::endl;
using std::cin;
  
class Mortgage                         //class is defined
 
{
 
public:                              // public access
void header(); 
void enterprinc(); 
 
 
double princ;                        //principle of the loan
double anInt;                       //Interest of the loan
int yrs;                               //Term of the loan
};
 
                     //All the functions within the class 
 
 
void Mortgage::header()                        // header of the program.
{
 
cout << "steve world \n\n";
cout << endl;
cout << "Write the program as an object-oriented C++ program that allows the user to select which way they want to calculate a mortgage:\n\n";
cout << endl;
 
}
 
void Mortgage::enterprinc ()
{
cout << endl;
cout << "Enter the amount for the Loan:$"; //User enters amount for the Loan
cin >> princ;
 
}
 
int main ()
 
{
 
while (1) { 
 
Mortgage mortgageTotal;
 
double princ = 0;                             //*Principle amount of loan is entered by user
double annualIntRate []= {5.35, 5.5, 5.75,};         //*Annual interest rate choosen in scenario 
double yrs []= {7, 15, 30,};                 //*Term of the loan is choosen with scenario
double EMI = 0;                                  //*Monthly Payment
double intPd;                                    //*Interest Paid
double bal;                                      //*Loan Balance
double amtPd;                                   //*Amount Paid on Loan
 
int NumOfPay;                                  //*Number of Payments
int Mnth;                                  //*Allows loop for loan balance and interest paid
int SL = 0;                                     //*Scroll List for loan balance and interest paid
char indicator;     //User chooses to enter Int and term or select scenario
 
 
//Begin Loop
 
{
mortgageTotal.header ();
mortgageTotal.enterprinc ();
 
//I added time and date and allow the enduser put his or her name in the program.
    
        time_t rawtime;
        struct tm * timeinfo;
 
        time ( &rawtime );
        timeinfo = localtime ( &rawtime );
        printf ( "Current local time and date: %s", asctime (timeinfo) );
 
        
  char question[] = "Please, enter your first name: ";
  char greeting[] = "Hello, ";
  char yourname [100];
  cout << question;
  cin >> yourname;
  cout << greeting << yourname << "!";
  cout<<endl;
 
 
 
 
 
 
cout<< "Would you like to select a scenario or enter your choice?"<< endl;
cout<< "Press S to select your scenario, or T to enter your choices"<<endl;
cin >> indicator;
 
if (indicator == 'S','s')
{
 
cout << "Please select your Terms and Rates from the following choices: " << endl;
cout << "1. 7 years at 5.35%" << endl;
cout << "2. 15 years at 5.5%" << endl;
cout << "3. 30 years at 5.75%" << endl;
cout << endl;
cout << " your selection:";
 
int select;
cin >> select;
cout << endl << endl << endl;
 
switch (select)
{
 
case 0: cout << endl; 
break;
 
 
case 1:
yrs[0] = 7;
annualIntRate[0] = 5.35; 
cout << "You have selected 7 Years and 5.35%" << endl; 
 EMI = (mortgageTotal.princ*((annualIntRate[0]/1200)/(1 - pow((1+(annualIntRate[0]/1200)),-1*(yrs[0]*12)))));
break;
 
case 2: 
yrs[1] = 15;
annualIntRate[1]= 5.50; 
cout << "You have selected 15 Years at 5.50%" << endl; 
 EMI = (mortgageTotal.princ*((annualIntRate[1]/1200)/(1 - pow((1+(annualIntRate[1]/1200)),-1*(yrs[1]*12)))));
break;
 
case 3: 
yrs[2] = 30;
annualIntRate[2] = 5.75; 
cout << "You have selected 30 Years at 5.75%" << endl; 
 EMI = (mortgageTotal.princ*((annualIntRate[2]/1200)/(1 - pow((1+(annualIntRate[2]/1200)),-1*(yrs[2]*12)))));
break;
 
default: 
cout << "Invalid Line Number" << endl;
if ((select < 1)|| (select > 3))
 
{ 
system("cls");
cout << "Please enter a cool choice!!!";
system("PAUSE");
 
system("cls");
return main();
}
}
}
 
 
cout << " the amount you have entered is: \n";
cout << endl;
cout << "Your Monthly Payment is: $" << EMI << "\n";
cout << endl;
 
// Formulas for Number of Payments, 
double NunOfPay = yrs [0] * 12;
SL = 0;
 
for (Mnth = 1; Mnth <= NunOfPay; ++Mnth)
{
 
//Formula
intPd = mortgageTotal.princ * (annualIntRate[0] / 1200);
amtPd = EMI - intPd;
bal = mortgageTotal.princ - amtPd;
if (bal < 0)bal = 0;
mortgageTotal.princ = bal;
 
// Scroll List titles to seperate the loan balance and Interest paid
 
if (SL == 0)
 
{
cout << "Balance of Loan" << "\t\t\tAmount of Interest Paid" << endl;
}
 
cout << setprecision(2) << fixed << "$" << setw(5) << bal << "\t\t\t\t$"<< setw(5) << intPd << endl;
++SL;
 
 
 
if (SL == 6)
 
{
cout << "Would you like to keep going and see the rest of the information or Quit?\n";
cout << endl;
cout << "Enter 'R' to see the remainder, Enter 'C' to try another example, Enter 'D' for done.\n";
cin >> indicator;
 
                       
 
if 
 
(indicator == 'R'||indicator == 'r')SL = 0;
 
else
 
if
 
(indicator == 'C'||indicator == 'c')
break;
 
 
else
if
(indicator == 'D'||indicator == 'd')
cout << endl;
 
}
 
}
 
}
 
while ((indicator!='C')&&(indicator!='c')); 
 
//Exit the program 
 
 
   char choice;
   cout << "Enter 'Q' to quit, anything else to start over" << endl;
 
   cin >> choice;
 
   if (choice == 'q' || choice == 'Q') break; // exit loop
 
   } // <--- end of 'while' from above
   return 0;
      }

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of Infinity08
Infinity08
Flag of Belgium image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of imagekrazy
imagekrazy

ASKER

okay thanks