簡體   English   中英

C ++銀行程序無法正常工作

[英]C++ Bank program not working stack overflow

我試圖用C ++編寫一個銀行程序,您可以在其中查看錢包,銀行帳戶中的金額以及存入和提取的金額。 當我嘗試運行它時,它可以讓我輸入內容,但是當我輸入任何內容時,它會Money in Wallet: 20反復顯示Money in Wallet: 20一次又一次,直到出現堆棧溢出,我認為這很具有諷刺意味,將其發布在一個名為堆棧溢出。

到目前為止,這是我的代碼:

#include <iostream>
using namespace std;

float money= 20.00;
float account=100.00;
float amount;
bool cmd;

void wallet()
{
    cout<<"Money in Wallet: "<<money<<endl;
}


void bank()
{
    cout<<"Money in Bank: "<<account<<endl;
}


void deposit()
{
    cout<<"How much do you want to deposit?: ";
    cin>>amount;
    if (money>=amount)
    {
        account = account+amount;
        money = money-amount;
    }
    else
    {
        cout<<"You don't have enough money!\n";
    }
}


void withdraw()
{
    cout<<"How much do you want to withdraw?: ";
    cin>>amount;
    if(account>=amount)
    {
        money = money+amount;
        account = account-amount;
    }
    else
    {
        cout<<"There isn't enough money in your bank account!\n";
    }
}


void prompt()
{
    cmd="null";
    cout<<">";
    cin>>cmd;
    if (cmd="wallet")
    {
        wallet();
        cmd="null";
        prompt();
    }
    else{
        cout<<"Unknown Command.";
        cmd="null";
        prompt();
    }
    if (cmd="bank")
    {
        bank();
    }
    else{cout<<"Unknown Command.";}
    if (cmd="deposit")
    {
        deposit();
    }
    else{cout<<"Unknown Command.";}
    if (cmd="withdraw")
    {
        withdraw();
    }
    else{cout<<"Unknown Command.";}
}


int main()
{
    prompt();
}

請幫忙!

我可以看到您的代碼存在多個問題。

首先,您要在函數內部調用函數prompt() ,導致該函數反復遞歸調用自身,直到您擁有stackoverflow為止。

其次,將輸入內容存儲在布爾值中。 您可能打算使用std::string

第三,在if語句中,您不是在檢查值是否相等,而是在使用=運算符時進行設置。 如果要檢查兩個值是否相等,請使用==符號。

第四,您對if語句的使用是錯誤的。 如果要檢查多個條件的值,則應將它們全部放在里面if else所有其他條件都應緊隨其后。 您正在執行的操作是將它們分成多個if語句,每個if語句都遵循顯示“ Unknown Command.的else條件Unknown Command. ]

看到這看起來像家庭作業,我不會給您完整的代碼來給您學習的機會。 但是,如果您解決了以上問題,那么您將可以使用功能程序。

您的結構需要更像這樣

while(true)
{
  prompt();
  if(command == "quit")
     break;
  else if(command == "bank")
    bank();
  else if(.....)
....
  else
    cout << "bad command"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM