-1

My program goes into an endless loop if the input is anything other than a number. Thoughts on how to fix this? Also want to add a way for the user to type * to exit the program. I've been trying to mess around with it but no luck. Thanks.

#include <iostream>;

using namespace std;

void newBalance(int a, int& b, int& c, int& d, int& e, int& f);
void accountInfo(int a, int& b, int& c, int& d, int& e, int& f);

int main()
{
int accountNumberEnter;
int beginBalanceB = 0;
int itemsChargedC = 0;
int creditsD = 0;
int credLimitE = 0;
int balanceD = 0;
int exitLoop = true;

while (exitLoop = true)
{
    cout << "Search for an account number: ";
    cin >> accountNumberEnter;
    cout << endl;

    switch (accountNumberEnter)
    {
    case 1001:
        beginBalanceB = 100;
        credLimitE = 500;
        accountInfo(accountNumberEnter, beginBalanceB, itemsChargedC,     creditsD, credLimitE, balanceD);
        newBalance(accountNumberEnter, beginBalanceB, itemsChargedC,     creditsD, credLimitE, balanceD);
        break;
    case 1002:
        beginBalanceB = 200;
        credLimitE = 1000;
        accountInfo(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        newBalance(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        break;
    case 1003:
        beginBalanceB = 700;
        credLimitE = 750;
        accountInfo(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        newBalance(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        break;
    case 1004:
        beginBalanceB = 1500;
        credLimitE = 1000;
        accountInfo(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        newBalance(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        break;
    case 1005:
        beginBalanceB = 565;
        credLimitE = 2000;
        accountInfo(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        newBalance(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        break;
    case 1006:
        beginBalanceB = 1500;
        credLimitE = 1000;
        accountInfo(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        newBalance(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        break;
    case 1007:
        beginBalanceB = 5000;
        credLimitE = 10000;
        accountInfo(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        newBalance(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        break;
    case 1008:
        beginBalanceB = 0;
        credLimitE = 850;
        accountInfo(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        newBalance(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        break;
    case 1009:
        beginBalanceB = 85;
        credLimitE = 1000;
        accountInfo(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        newBalance(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        break;
    case 1010:
        beginBalanceB = 250;
        credLimitE = 3000;
        accountInfo(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        newBalance(accountNumberEnter, beginBalanceB, itemsChargedC, creditsD, credLimitE, balanceD);
        break;
    default:
        cout << "Account not found.\n" << endl;
        exitLoop != true;

    }
    }


system("pause");

return 0;

}

void accountInfo(int a, int& b, int& c, int& d, int& e, int& f)
{
cout << "Account found\n" << endl;

cout << "Current balance: $"<< b <<"\n" << endl;

cout << "Enter items charged: $";
cin >> c;
cout << endl;

cout << "Enter credits: $";
cin >> d;
cout << endl;
}

void newBalance(int a, int& b, int& c, int& d, int& e, int& f)
{

    int balance;
    int account;

    balance = b + c - d;

    if (balance < 0)
    {
        cout << "Error. New balance is less than 0. Please try again.\n" <<     endl;
    }
    else
    {
        cout << "Account Number: " << a << endl;
        cout << "Beginning Balance: $" << b << endl;
        cout << "Items Charged: $" << c << endl;
        cout << "Credits Applied: $" << d << endl;
        cout << "New Balance: $" << balance << endl;
        cout << "Credit Limit: $" << e <<"\n" << endl;

        if (balance > e)
            cout << "\n***Credit Limit Exceeded***" << endl;
    }

}
Jeff
  • 1

1 Answers1

1

Here:

exitLoop != true;

Is testing whether or not exitLoop is not equal to true. It should be

exitLoop = false;
yizzlez
  • 8,757
  • 4
  • 29
  • 44