изменение данных внутри переключателя (), накопление

Я делаю проект, который стимулирует банкомат в C ++ и имеет некоторые проблемы с аккумуляторами, мой вопрос: я использую переключатель (здесь случай 1), чтобы изменить значения 2 переменных, которые объявлены внутри функции, которая содержит переключатель ( ), однако значения изменяются только в случае 1, и они возвращаются к исходному значению (например, декларация const), поэтому, когда я пытаюсь распечатать проверку и сохранение (в случаях 3 и 4), он выводит исходную сумму (1000) , Так что я не знаю, что я здесь не так сделал. Проблема не с суммой, я попытался заменить сумму числовым значением, но все еще не работает.
Пожалуйста помоги

int transactions()
{
double checking = 1000.00, saving = 1000.00;
double amount;
switch (inputRange(menu()))
{
case 1: system("cls");
amount = getAmount("Enter an amount to transfer from checking to saving: ");
checking -= amount;
saving += amount;
cout << checking << " " << saving; // they only change inside case 1
cout << "\nTransaction completed! \n\nPress ENTER to return to main menu...";
cin.ignore(99,'\n');
break;

Обновления *** Я уже получил это, ребята, спасибо, просто забыл о &, это работает

   int transactions(double &checkBal, double &saveBal)
{
double amount;

//set precision
cout << fixed << showpoint << setprecision(2);

switch (inputRange(menu()))
{
case 1: system("cls");
checkingToSaving (getAmount("Enter an amount to transfer from checking to saving: "), checkBal, saveBal);
cout << "\nTransaction completed! \n\nPress ENTER to return to main menu...";
cin.ignore(99,'\n');
break;

0

Решение

Проблема в том, что checking а также saving существуют только на время одного звонка transactions(),

Они возникают, когда transactions() вызывается, инициализируется, ваш код меняет их, и они исчезают в тот момент, transactions() возвращается. Когда функция вызывается снова, весь цикл повторяется.

Две переменные должны существовать вне функции (вероятно, как члены данных какого-либо класса).

1

Другие решения

Объявите класс ‘customer’ (с именами, адресами, сбережениями, проверкой и т. Д. Членами). Создайте экземпляры вне «транзакций» и передайте экземпляр в качестве параметра.

Это или БД.

1

Грубый ответ на вашу непосредственную проблему заключается в использовании статических переменных:

int transactions()
{
static double checking = 1000.00;
static double saving = 1000.00;
.
.

Этот тип подхода дает вам только один случай проверки и сохранения. Если вы хотите расширить свою программу, чтобы иметь несколько учетных записей, вам следует использовать экземпляры классов для хранения данных:

class Account{
double checking;
double saving;
public:
int transactions();
};
-1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector