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

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

    отрицательное для снятия, 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 стр. Часть 6. Великолепная десятка

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

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

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

Функция display( ) выводит важные данные на устройство стандартного вывода.

Класс Savings, в сущности, идентичен классу Checking, за исключением дополнительного члена noWithdrawals, который отслеживает количество проведённых снятий.

Место под объекты сберегательного и чекового счёта выделяется в массивах svgAcnts и chkAcnts соответственно. Максимальное количество счетов определено величиной maxAccounts.

Функция main( ) несколько сложнее своей сестры из программы BUDGET1, поскольку она имеет дело с двумя разными типами счетов. После проверки ввода на равенство "X" функция main( ) использует конструкцию switch, чтобы выбрать тип счёта: С для чекового и S для сберегательного. Конструкция switch использована в этой программе по двум причинам: во-первых, её проще расширить, добавляя к ней дополнительные варианты; во-вторых, она предоставляет вариант default ( вариант по умолчанию ) для обработки неверного ввода.

Как и ранее, вторая часть функции main( ) обеспечивает отображение информации о счёте, собранной в первой части этой функции.