Выбрать главу

                  double& balance )

    {

        cout << "Введите положительную сумму вклада,\n"

             << "отрицательную сумму для снятия со счёта\n"

             << "или нуль для завершения работы\n"

             << endl ;

        double transaction ;

        do

        {

            cout << ":" ;

            cin >> transaction ;

            // Вклад

            if ( transaction > 0 )

_________________

345 стр. Глава 31. Программа BUDGET

            {

                 /* Добавление на счёт */

                 balance += transaction ;

            }

            /* Снятие со счёта */

            if ( transaction < 0 )

            {

                transaction = -transaction ;

                if ( balance < transaction )

                {

                    cout << "Недостаточно денег: всего"

                         << balance

                         << ", снимаем "

                         << transaction

                         <<" \n" ;

                }

                else

                {

                    balance -= transaction ;

                }

            }

        } while ( transaction != 0 ) ;

    }

Демонстрация работы данной программы:

    Нажмите С для продолжения, X для выхода:

    Программа создаёт банковские счета

    С для создания счёта, X для выхода: С

    Введите номер счёта: 1234

    Введите положительную сумму вклада,

    отрицательную сумму для снятия со счёта

    или нуль для завершения работы

    : 200

    : -100

    : -200

    Недостаточно денег: всего 100 , снимаем 200

    : 0

    С для создания счёта, X для выхода: с

    Введите номер счёта: 2345

    Введите положительную сумму вклада,

    отрицательную сумму для снятия со счёта

    или нуль для завершения работы

    : 200

    : -50

    : -50

    : 0

    С для создания счёта, X для выхода: х

    Информация о счёте

    Баланс счёта 1234 = 100

    Баланс счёта 2345 = 100

    Баланс по всем счетам = 200

    Press any key to continue...

_________________

346 стр. Часть 6. Великолепная десятка

Разберёмся в том, как работает BUDGET. В этой программе было создано два массива, один из которых содержит номера счетов, а второй — балансы. Эти массивы синхронизированы таким образом, что элемент balance[ n ] содержит баланс счёта с номером из accountNumber[ n ], независимо от значения n. В связи с ограничением длины массива количество счетов, содержащихся в программе, не может превышать MAXACCOUNTS.

Главная программа разделена на две части: первая отвечает за сбор информации ( в ней происходит считывание размеров вкладов, снятие денег и запись результата ), а вторая — за вывод информации. Фрагмент, отвечающий за сбор информации, организован в виде цикла, в котором счета обрабатываются каждый в отдельности. В начале цикла пользователю предлагается ввести С для продолжения работы и X — для завершения. Если был введён символ X, происходит выход из цикла и переход во вторую часть main( ).

Программа выходит из цикла, если количество созданных счетов достигло MAXACCOUNTS, независимо от того, был ли введён X.

Обратите внимание, что происходит проверка введённого символа на равенство как 'X', так и 'х' — ведь в отличие от компьютера человек может не обратить внимания на регистр вводимых символов.