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

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

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

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

empty-line
1
empty-line
4

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

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

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

Интервал:

Закладка:

Сделать

virtual bool withdrawal( double amount ) ;

virtual char* type( ) { return "Чековый" ; }

} ;

/* withdrawal — перегрузка Account::withdrawal( ) */

bool Checking::withdrawal( double amount )

{

bool success = Account::withdrawal ( amount ) ;

if ( success && balance < 500.00 )

{

balance -= 0.20 ;

}

return success ;

}

/* Savings — свойства, уникальные для сберегательного счёта */

class Savings : public Account

{

public :

Savings::Savings( LinkedList< Account >* pLL ,

unsigned accNo ) :

Account( pLL , accNo )

{ noWithdrawals = 0 ; }

/* Функции транзакций */

virtual bool withdrawal( double amount ) ;

virtual char* type( ) { return "Savings" ; }

protected :

int noWithdrawals ;

} ;

/* withdrawal — перегрузка Account::withdrawal( ) */

bool Savings::withdrawal( double amount )

{

if ( ++noWithdrawals > 1 )

{

balance -= 5.00 ;

}

return Account::withdrawal( amount ) ;

}

_________________

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

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

unsigned getAccntNo( ) ;

void process( Account* pAccount ) ;

void getAccounts( LinkedList< Account >* pLinkedList ) ;

void displayResults( LinkedList< Account >* pLinkedList ) ;

/* main — собирает и выводит данные */

int main( int argcs , char* pArgs[ ] )

{

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

/* Создание связанного списка */

LinkedList< Account > linkedList ;

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

getAccounts( & linkedList ) ;

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

displayResults( & linkedList ) ;

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

system( "PAUSE" ) ; return 0 ;

}

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

void getAccounts( LinkedList< Account >* pLinkedList )

{

Account* pA ;

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

char accountType ; /* S or С */

while ( true )

{

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

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

cin >> accountType ;

switch ( accountType )

{

case 'c' :

case 'C' :

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.

Подведение итогов...373

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

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

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

Интервал:

Закладка:

Сделать

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

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


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

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

x