Q:

How to keep a do...while loop from looping more than once while the condition is set to true

Every other option works except for option 1. After a user has input name and account type. It enters into an infinite loop. How do I set my do-while loop to fix this behavior? Please can someone help me fix this problem? 
#include <iostream>
#include <queue>
#include <stack>
#include <vector>
#include <unordered_map>
#include <algorithm>
using namespace std;

#include<iostream>
#include<string>
#include<iomanip>
#include<cstdlib>
using namespace std;

class Bank{

    //data members
private:
    string customer_name;
    double account_number;
    string type_of_account;
    double account_balance;
    double balance;

    //function declaration
public:
    void assignInitialValue(void);
    void deposit();
    void makeWithdrawal();
    void displayNameAndBalance();
    void displayDetails();
};

//function definitions
void Bank::assignInitialValue(void){
    cout<<"Welcome to Our Bank."<<endl;
    cout<<"To open an Account with us,please supply the following details"<<endl;
    cout<<"Enter your name in full"<<endl;
    cin>>customer_name;
    cout<<"Choose an Account type"<<endl;
    cin>>type_of_account;
    cout<<"Enter your Account Number"<<endl;
    cin>>account_number;
    cout<<"Enter an Amount you will like to open this account with"<<endl;
    cin>>account_balance;
    cout<<"Thank you for banking with us";
}

void Bank::deposit(void){
    scout<<"Enter the amount you want to deposit"<<endl;
    double deposit_amount = 0.0;
    cin>>deposit_amount;
    account_balance = account_balance + deposit_amount;
    cout<<"Your new balance is now:"<<account_balance;
    balance = account_balance;
}

void Bank::makeWithdrawal(void){
    int withdrawal_amount;
    cout<<"\nBalance Amount = "<<balance;
    cout<<"\nPlease Enter the Amount you want to withdraw:-";
    cin>>withdrawal_amount;
    if(!(withdrawal_amount > balance))
        balance=balance-withdrawal_amount;
    else
    {
        cout<<"Insufficient Balance";
    }
    cout<<"Your Available Balance is:"<<balance;
}
void Bank::displayDetails(void)
{
    cout<<endl<<endl<<endl;
    cout<<setw(50)<<"CUSTOMER DETAILS"<<endl;
    cout<<setw(50)<<"Customer Name "<<customer_name<<endl;
    cout<<setw(50)<<"Account Number."<<account_number<<endl;
    cout<<setw(50)<<"Account Type"<<type_of_account<<endl;
    cout<<setw(50)<<"Balance"<<balance<<endl;
}

int main()
{
    Bank app;
    int Activity_code;

    do
    {
        cout<<"\n\nAvailable Transactions\n\n";
        cout<<"1)  To create Account with us press 1\n";
        cout<<"2)  To make deposit press 2\n";
        cout<<"3)  To make Withdrawal press 3\n";
        cout<<"4)  To Display All Details press 4\n";
        cout<<"5)  EXIT\n";
        cout<<"Please enter an Activity choice :-";

        cin>>Activity_code;

        switch(Activity_code)
        {
            case 1: app.assignInitialValue();
                break;
            case 2: app.deposit();
                break;
            case 3: app.makeWithdrawal();
                break;
            case 4: app.displayDetails();
                break;
            case 5: goto terminate;
        }
    }while(true);
terminate:
    return 0;
}

A:

Totally on topic (a rarity for me) so I might as well make this an answer.
>> only reads in 1 whitespace delimited token, aka 1 word, so cin >>customer_name; is going to have a lot of trouble with "John Smith." This will leave "Smith" in the stream to be parsed into type_of_account and that will leave the stream in a very bad state that will result in an infinite loop if not cleaned up with cin.clear and cin.ignore. I recommend reading up on std::getline to read more than one word at a time.

