Читаем С++ для "чайников" . полностью

                  pA = new Checking( pLinkedList , getAccntNo( ) ) ;

                  break ;

                case 's' :

                case 'S' :

                  pA = new Savings( pLinkedList , getAccntNo( ) ) ;

                  break ;

                case 'x' :

                case 'X' :

                  return ;

                default :

                  cout << "Неверный ввод.\n" ;

            }

_________________

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

            /* Обработка вновь созданного объекта */

            process( pA ) ;

        }

    }

    /* displayResults — вывод информации о */

    /*               счетах в связанном списке */

    void displayResults( LinkedList< Account >* pLinkedList )

    {

        double total = 0.0 ;

        cout << "\nИтоговая информация: \n" ;

        for ( Node< Account >* pN = pLinkedList -> firstNode( ) ;

                                  pN != 0 ;

                                  pN = pN -> next( ) )

        {

            Account* pA = pN -> current( ) ;

            pA -> display( ) ;

            total += pA -> acntBalance( ) ;

        }

        cout << "Итого = " << total << "\n" ;

    }

    /* getAccntNo — номер счёта для его создания */

    unsigned getAccntNo( )

    {

        unsigned accntNo ;

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

        cin >> accntNo ;

        return accntNo ;

    }

    /* process( Account ) — обработка счёта */

    void process( Account* pAccount )

    {

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

                 << "отрицательное для снятия,"

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

        double transaction ;

        do

        {

            cout << " : " ;

            cin >> transaction ;

            // Вклад

            if ( transaction > 0 )

            {

                pAccount -> deposit( transaction ) ;

            }

            // Снятие

            if ( transaction < 0 )

            {

                pAccount -> withdrawal( -transaction ) ;

            }

        } while ( transaction != 0 ) ;

    }

_________________

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

Первые строки перед определением класса Account инстанцируют шаблоны классов LinkedList и Node в классы LinkedList< Node > и Node< Account > соответственно. Эти строки создают классы, необходимые для объединения объектов Account в связанный список.

Другая программа может с тем же успехом создать класс LinkedList< Student >, LinkedList< Name >, или другой придуманный вами класс.

Класс Account работает так же, как и в предыдущей программе BUDGET3.    

<p id="chapter31.4.3"><emphasis><strong>Подведение итогов...373</strong></emphasis></p>

Программа BUDGET3 использует объектно-ориентированные технологии для реализации набора классов счетов, а также включает реализацию связанного списка, который позволяет хранить неограниченное количество счетов. Единственная проблема заключается в том, что класс AccountLinkedList оказывается привязан к классу Account.

В программе BUDGET4 определён шаблон класса LinkedList< class Т >, который может работать с объектами любого типа. В этой версии единственной проблемой ( если это можно считать проблемой ) является то, что нам надо самим реализовывать связанный список.

Связанные списки используются уже очень давно, так что мы изобретаем велосипед. И хотя с методической точки зрения это совсем неплохо, в STL имеется соответствующий шаблон класса, который можно использовать в качестве контейнера ( в STL имеется масса различных контейнеров ). В следующей версии программы BUDGET мы используем этот предопределённый шаблон для хранения объектов Account.         

<p id="chapter31.5"><strong>►BUDGET5...373</strong></p>

Программа BUDGET5 — последняя в длинном ряду программ этой главы, призванных решать одну и ту же простую задачу имитации банковских счетов. В программе BUDGET3 эти счета представлены в виде трёх классов — Account, Savings и Checking, для хранения которых используется связанный список. Из жёстко кодированного списка для хранения объектов типа Account в программе BUDGET4 он становится шаблоном класса LinkedList< class Т >.

Программа BUDGET5 идёт на один шаг дальше и использует шаблон класса из STL.

«Для того чтобы понять эту программу, вы должны ознакомиться с главой 28, "Стандартная библиотека шаблонов"

[Помни!]

Перейти на страницу:

Все книги серии Для чайников

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных