Читать «С++ для "чайников" .» онлайн - страница 238

Стефан Рэнди Дэвис

        double transaction ;

        do

        {

            cout << ":" ;

            cin >> transaction ;

            // Вклад

            if ( transaction > 0 )

            {

                pSavings -> deposit( transaction ) ;

            }

            // Снятие

            if ( transaction < 0 )

            {

                pSavings -> withdrawal( -transaction ) ;

            }

        } while ( transaction != 0 ) ;

    }

_________________

353 стр. . Программа BUDGET 

Я запустил эту программу с приведёнными ниже данными для того, чтобы продемонстрировать, как она работает. Жирным шрифтом выделен пользовательский ввод, а обычным представлены сообщения программы.

    Введите S для сберегательных счетов,

            С для чековых, X для выхода:S

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

    Введите положительное число для вклада,

    отрицательное для снятия, 0 для завершения

    : 200

    : -20

    : 0

    Введите S для сберегательных счетов,

            С для чековых, X для выхода:S

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

    Введите положительное число для вклада,

    отрицательное для снятия, 0 для завершения

    : 200 

    : -10

    : -10

    : 0

    Введите S для сберегательных счетов,

            С для чековых, X для выхода:С

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

    Введите положительное число для вклада,

    отрицательное для снятия, 0 для завершения

    : 200

    : -20

    : 0

    Введите S для сберегательных счетов,

            С для чековых, X для выхода:С

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

    Введите положительное число для вклада,

    отрицательное для снятия, 0 для завершения

    : 600

    : -20

    : 0

    Введите S для сберегательных счетов,

            С для чековых, X для выхода:Х

    Чековые счета:

    Счёт 345 = 179.8

    Счёт 456 = 580

    Сберегательные счета:

    Счёт 123 = 180 ( номер снятия = 1 )

    Счёт 234 = 175 ( номер снятия = 2 )

    Сумма по чековым счетам = 759.8

    Сумма по сберегательным счетам = 355

    Общая сумма      = 1114.8

    Press any key to continue...

Рассмотрим каждую из функций-членов, начиная с класса Checking. Конструктор присваивает счёту его номер. Значение по умолчанию "= 0" позволяет программе создавать объект с номером счёта по умолчанию, равным нулю.

    Checking c1 = new Checking( 124 ) ;

    Checking с2 = new Checking( ) ;

_________________

354 стр. . Великолепная десятка

В данном случае объект c1 класса Checking создаётся с номером счёта, равным 123, тогда как объект с2 создаётся с номером счёта по умолчанию, который равен нулю.

Функции accountNo( ) и acntBalance( ) предоставляют внешнему миру доступ к защищённым членам accountNumber и balance. Задачей этих функций является предоставление внешним функциям — не членам значений, изменить которые невозможно. Кроме того, эти функции, обеспечивающие доступ к членам, предохраняют внешние функции от необходимости внесения изменений при переменах в методе хранения номера счёта или баланса.

Функции deposit( ) и withdrawal( ) отвечают за вложение и снятие денег со счёта. Поскольку функция deposit( ) довольно проста, она была определена как inline-функция. Функция withdrawal( ), будучи несколько сложнее, объявлена в классе, но определяется позже.