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

■■■

■ Баланс не может быть отрицательным ( каким бы дружественным не был к вам ваш банк, настолько дружественным он быть просто не в состоянии ).

■ Создание депозита не влечёт за собой никаких расходов.

■■■

_________________

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

Вот как выглядит исходный текст данной программы.

    /* BUDGET1.CPP — "Функциональная" программа бюджета */

    #include <cstdio>

    #include <cstdlib>

    #include <iostream>

    using namespace std ;

    /* Максимальное количество счетов */

    const int maxAccounts = 10 ;

    /* Данные, описывающие счёт */

    unsigned accountNumber[ maxAccounts ] ;

    double balance[ maxAccounts ] ;

    /* Прототипы функций */

    void process(  unsigned& accountNumber ,

                  double& balance ) ;

    void init( unsigned* pAccountNumber ,

               double* pBalance ) ;

    /* main — собирает начальные входные данные и выводит конечные суммы */

    int main( int nNumberofArgs , char* pszArgs[ ] )

    {

        setlocale ( LC_ALL , ".1251" ) ; /* печать кириллицы */

        cout << "Нажмите С для продолжения, X для выхода:\n" ;

        // Цикл ввода

        int noAccounts = 0 ; /* Количество счетов */

        /* Нельзя создать счетов больше, чем выделено места */

        cout << "Программа создаёт банковские счета\n" << endl ;

        while ( noAccounts < maxAccounts )

        {

            char transactionType ;

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

            cin >> transactionType ;

            /* Выход, если пользователь ввёл X */

            if ( transactionType == 'x' ||

                 transactionType == 'X' )

            {

                break ;

            }

            /* Если введено С */

            if ( transactionType == 'c' ||

                 transactionType == 'C' )

            {

                /* Инициализация нового счёта */

                init( &accountNumber[ noAccounts ] ,

&balance[ noAccounts ] ) ;

                /* Ввод информации о транзакции */

                process(  accountNumber[ noAccounts ] ,

                         balance[ noAccounts ] ) ;

                /* Увеличение индекса */

_________________

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

                noAccounts++ ;

            }

        }

        double total = 0 ;

        cout << "Информация о счёте\n" ;

        for ( int i = 0 ; i < noAccounts ; i++ )

        {

            cout << "Баланс счёта "

                  << accountNumber[ i ]

                  << " = "

                  << balance[ i ]

                  << "\n" ;

            /* Накопление общей информации */

            total += balance[ i ] ;

        }

        // Вывод

        cout << "Баланс по всем счетам = "

             << total

             << "\n" ;

        /* Пауза для того, чтобы посмотреть на результат работы программы */

        system( "PAUSE" ) ;

        return 0 ;

    }

    /* init — Инициализация счёта путём чтения номера и обнуления баланса */

    void init( unsigned* pAccountNumber ,

               double* pBalance )

    {

        cout << "Введите номер счёта:" ;

        cin >> *pAccountNumber ;

        *pBalance = 0.0 ;

    } 

    /* process — Обновление баланса */

    void process(  unsigned& accountNumber ,