# Add and minus from the text file arent give the right value.

• February 5th, 2014, 05:29 PM
Lucy_
Add and minus from the text file arent give the right value.
I'm going to try explain the best way i can.

I'm creating a bank system.

So I know to make a deposit to the balance, which add ups what is the balance to i have add.

When i run the deposit function, its work well in some ways. If balance(text file) has the value 10, add i addSum 20, the balance will become 30, same as the text file will become 30. so its work well to add positive number.

Code:

```double deposit(double balance) {         double addSum = 0;                         system("CLS");                         cout<< "Welcome to deposit."<<endl;                         cout<<"Enter a sum you wish to add to your account:";                                                         fstream myfile;                                 myfile.open ("money.txt");                                                         cin>> addSum;                                 balance = addSum + balance;                                                           myfile << balance;                                                                 cout << balance << '\n';                         system("CLS");                          return balance;                                         }```
When I withdraw from 30 which is the balance, then i takeSum, for example i take away 30. The balance will become 30 - 30 = 0
When i make another withdraw from example -150, it will be -150.

Which shows correct.

But when i make a deposit from -150 and i addSum 130, the balance shows -500, and it should had been -20.

Code:

```double withdraw(double balance) { double takeSum = 0;                         system("CLS");                         cout<< "Welcome to withdraw."<<endl;                         cout<<"Enter a sum you wish to take away from your account:";                                                         cout << balance << '\n';                                 ofstream myfile;                                 myfile.open ("money.txt");                                                         cin>> takeSum;                                 balance = balance - takeSum;                                                           myfile << balance;                                                                 cout << balance << '\n';                         system("CLS");                          return balance; }```
My case statement to understand better.

Code:

```int main()                         {         double balance = 0;         balance = currentBalance(balance);         menu(balance);         return 0; }                        // menu function         int menu(double balance) {                         int menuOption = 0;                                                                 cout<<" \n---------------------------------------------------"<<endl;                                         cout<<"If you require help, press 1 for unscreen help. \n"<<endl;                                                         cout<<"Please choose from the following option \n"<<endl;                                                         cout<<"Press 2 for to check balance."<<endl;                                         cout<<"Press 3 for to make a Withdraw."<<endl;                                         cout<<"Press 4 for to make a Deposit."<<endl;                                         cout<<"Press 9 to exit"<<endl;                                                                 cin>>menuOption;                 switch(menuOption)         {                 case 1:                         unscreen();                         menu(balance);                         break;                                                 case 2:                         readBalance(balance);                         menu(balance);                         break;                 case 3:                         balance = withdraw(balance);                         readBalance(balance);                         menu(balance);                         break;                                                                                case 4:                         balance = deposit(balance);                         readBalance(balance);                         menu(balance);                         break;                                                                         case 9:                         exit(0);                                         default:                         cout<<"You did not choose from the menu options, reloading the menu!"<<endl;                         main();                                return 0;         }                 }```
What is causing this problem, also when function deposit and withdraw close, it goes to readBalance function, should go to menu.

Code:

```double readBalance(double balance) {                 int option;                 system("CLS");                 cout<<"Welcome to balance."<<endl;                 cout<<"Your balance is:"<<endl;                                                         string path = "money.txt";                                                        // Storing your filename in a string                                 ifstream fin;                                                                                // Declaring an input stream object                                 fin.open(path);                                                                        // Open the file                                 if(fin.is_open())                                                                        // If it opened successfully                                         {                                 fin >> balance;                                                                        // Read the values and                                                                                                                                         // store them in these variables                             fin.close();                                                                                // Close the file                                         }                 cout << balance << '\n';                 cout<<"\n"<<endl;                 cout<<"Press 0 for further action or press 9 to exit." <<endl;                                                 cin >> option;                         if (option == 9)                         {                         exit(0);                         }                         else if (option == 0 )                         {                         return balance;                         }                         else                         {                         exit(0);                         }                         }```
• February 6th, 2014, 06:22 AM
VictorN
Re: Add and minus from the text file arent give the right value.
Did you try to debug your code step-by-step?
• February 6th, 2014, 07:13 AM
2kaud
Re: Add and minus from the text file arent give the right value.
Why are you recursivly calling menu() after every action? You want a loop that gets and processes a menu option until option is exit.

In pseudo code something like this
Code:

```do {     show menu     get menu option     if valid menu option         process option     else         display message while option not exit```