Стефан Дэвис - С++ для чайников .

Здесь есть возможность читать онлайн «Стефан Дэвис - С++ для чайников .» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 2007, ISBN: 2007, Издательство: Издательский дом Вильямс. Компьютерное издательство Диалектика, Жанр: Технические науки, Программирование, Программы, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

С++ для чайников .: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «С++ для чайников .»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

empty-line
1
empty-line
4

С++ для чайников . — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «С++ для чайников .», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

list< AccountPtr > listAccounts ;

/* Чтение пользовательского ввода */

getAccounts( listAccounts ) ;

/* Вывод связанного списка */

displayResults( listAccounts ) ;

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

system( "PAUSE" ) ; return 0 ;

}

/* getAccounts — загрузка массива счетов */

void getAccounts( list< AccountPtr > & accList )

{

AccountPtr pA ;

/* Цикл, пока не введено 'X' или 'х' */

char accountType ; /* S or С */

while ( true )

{

cout << "Введите S для сберегательного счёта,\n"

<< "С для чекового, X для выхода: " ;

cin >> accountType ;

switch ( accountType )

{

case 'c' :

case 'C' :

pA = new Checking( getAccntNo( ) ) ;

break ;

case 's' :

case 'S' :

pA = new Savings( getAccntNo( ) ) ;

break ;

case 'x' :

case 'X' :

return ;

default :

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

}

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

accList.push_back( pA ) ;

process( pA ) ;

}

}

_________________

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

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

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

void displayResults( list< AccountPtr > & accntList )

{

double total = 0.0 ;

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

/* Создание итератора и проход по списку */

list< AccountPtr >::iterator iter ;

iter = accntList.begin( ) ;

while ( iter != accntList.end( ) )

{

AccountPtr pAccount = *iter ;

iter++ ;

pAccount -> display( ) ;

total += pAccount -> acntBalance( ) ;

}

cout << "Итого = " << total << endl ;

}

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

unsigned getAccntNo( )

{

unsigned accntNo ;

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

cin >> accntNo ;

return accntNo ;

}

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

void process( AccountPtr 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 ) ;

}

Заголовочный файл list содержит определение шаблона класса list из STL. Классы Account , Checking и Savings остаются неизменными ( т.е. такими, как в программе BUDGET3 ). Изменения начинаются с определения типа AccountPtr примерно в середине программы.

_________________

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

Создание списка счетов...378

Функция main( ) создаёт список объектов listAccounts , который имеет тип list< AccountPtr > .

Теоретически я могу реализовать шаблон класса как list< Account* > , но так поступают редко — дабы не портить определения внутри шаблонов классов STL, обычно используют синонимы указателей, полученные при помощи оператора typedef .

ТипAccountPtr определён с использованием ключевого словаtypedef и представляет - фото 359

«ТипAccountPtr определён с использованием ключевого словаtypedef и представляет собой то же, что иAccount* . Таким образом, везде, где написаноAccountPtr , можно читать "указатель наAccount ".»

[ Помни! ]

Функция main( ) передаёт список указателей на объекты Account функциям getAccounts( ) и displayResults( ) . Метод getAccounts( ) добавляет объекты Account в конец списка при помощи функции-члена push_back( ) .

Функция displayResults( ) может удалять объекты Account из списка при помощи одного из предназначенных для этой цели методов; однако это будет так называемое деструктивное чтение, которое изменяет список ( в нашем случае — удаляя из него объекты ). Поскольку мы хотим иметь возможность работать со списком и после вывода его на экран, нам надо воспользоваться итератором — объектом, который указывает на объекты в списке. Программа в цикле перемещает итератор от одного элемента списка к следующему.

Функция displayResults( ) определяет итератор iter в начале цикла while( ) . Присвоение iter = accntList . begin( ) инициализирует объект iter первым элементом списка. Значение accntList.end( ) представляет собой "объект, непосредственно следующий за последним объектом в контейнере". Таким образом, цикл должен полностью обойти весь список к моменту, когда iter становится равным accntList.end( ) . Выражение *iter даёт нам то, что можно назвать "текущим объектом", а выражение iter++ перемещает итератор к следующему объекту в списке.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «С++ для чайников .»

Представляем Вашему вниманию похожие книги на «С++ для чайников .» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «С++ для чайников .»

Обсуждение, отзывы о книге «С++ для чайников .» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x