2017-05-30 81 views
0

我正在努力創建一個程序,以便我可以跟蹤我的資金和欠我錢的人或計劃花錢等。
但是我是不知道如何讓計算機記錄來自「cin」的輸入。
注意:我不在下面的程序中使用cin,但我認爲它會是一樣的。
目前,我處於一個職位,我設置了我的帳戶的餘額,然後將其記入貸方,但信息未被存儲。我希望下次使用該程序時,餘額將成爲最後一次輸入的最終餘額。
請參閱我的代碼:C++:保持簿記記錄類

#include <iostream> 
#include <vector> 
#include <string> 
using namespace std; 
//Class creation 

class account 
{ 
public: 
    account(float a) 
    { 
     bal = a; 
     std::cout<<"Account made"<<endl; 
    } 
    void debit(float debit); 
    void credit(float credit); 
    void printbal(){cout<<"Your Balance is "<<bal<<endl;} 
private: 
    float bal; 
}; 

//Constructor 

void account::debit(float x) 
{ 

    bal = bal + x; 
    cout<<"Debiting balance"<<endl; 
} 

//credit function 
void account::credit(float x) 
{ 

    bal = bal - x; 
    cout<<"Crediting balance"<<endl; 
} 

int main() 
{ 
    account bank(12); 
    bank.account::printbal(); 
    bank.account::credit(20); 
    bank.account::printbal(); 
    return 0; 
} 

我編譯時得到:

$./a.out 
Account made 
Your Balance is 12 
Crediting balance 
Your Balance is -8 

當再做得到完全相同。我希望第二次會說:

Account made 
Your Balance is -8 
Crediting balance 
Your Balance is -28 

謝謝。

+2

與您的錯誤無關,但請不要將Money值表示爲'float'。書記員會爲此感恩。 –

+0

變量在您的程序的兩次運行之間不是持久的。 –

回答

1

變量不是持久的,您必須將信息存儲在永久存儲器中。

您可以做的是,每當程序結束時,將餘額存儲在文件或數據庫中。在下一次運行中,您要做的第一件事就是從文件或數據庫中檢索結果並對其執行操作。

0

問題是您沒有使用持久性內存來存儲帳戶數據。該程序執行了同樣的事情

每次發生:

操作系統扭轉一些內存爲您的程序並執行main功能。它創建一個賬戶變量,餘額爲12,其中保留內存。然後,balance變量減少20,然後程序結束。

當程序結束時,OS取回先前保留的內存。這意味着您的變量及其內容會丟失 永遠

當你運行你的應用程序再次同樣的事情發生在OS可能(沒有在那裏的銀行變量是第一次執行中存儲的位置寫的可能性)分配給您的可執行內存的不同部分。底線是:如果你想讓你的數據在不同的執行過程中生存下來,你必須存儲在磁盤上或其他永久性存儲器上(文件,數據庫,雲等)!