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

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

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

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

empty-line
1
empty-line
4

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

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

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

Интервал:

Закладка:

Сделать

}

static Node* firstNode( AccountLinkedList* pList )

{

return pList -> firstNode( ) ;

}

Node* nextNode( ) { return pNext ; }

Account* currentAccount( ) { return pAccount ; }

protected :

AccountLinkedList* pList ;

Node* pNext ;

Account* pAccount ;

} ;

}

#endif

Файл AccountLinkedList.cpp реализует простой связанный список банковских счетов.

_________________

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

/* AccountLinkedList — поддерживает связанный список объектов Account */

#include "AccountLinkedList.h"

namespace Lists

{

/* addNode — добавляет узел в начало текущего связанного списка */

void AccountLinkedList::addNode( Node* pNode )

{

pNode -> pNext = pHead ;

pHead = pNode ;

}

}

Каждый объект Node связан со своим объектом Account . Указатель Node::pNext указывает на следующий счёт в списке. Объект AccountLinkedList представляет весь связанный список целиком; указатель AccountLinkedList::pHead указывает на первый объект Node в списке. Для простоты функция addNode( ) добавляет объекты Node в начало списка.

Работа со счетами...358

Данная версия программы BUDGET использует связанный список, реализованный в файле AccountLinkedList.срр . Этот класс позволяет программе хранить и работать с количеством счетов, ограниченным только объёмом свободной памяти.

Файл BUDGET3.срр представляет собой главный модуль программы, в котором содержится код приложения.

//

/* BUDGET3.СРР — Программа банковского бюджета с наследованием и полиморфизмом. Теперь одна функция может обрабатывать и чековые, и сберегательные счета ( а также любые другие, которые вы можете придумать в будущем ). */

//

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

#include

#include

#include

#include "AccountLinkedList.h"

using namespace std ;

using namespace Lists ;

/* Account — абстрактный класс, включающий общие свойства различных счетов */

class Account

{

public :

Account::Account( AccountLinkedList* pList , int accNo )

: node( pList , this )

{

/* Инициализация данных-членов */

accountNumber = accNo ;

balance = 0 ;

count++ ;

}

_________________

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

/* Функции доступа */

int accountNo( ) { return accountNumber ; }

double acntBalance( ) { return balance ; }

static int noAccounts( ) { return count ; }

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

void deposit( double amount ) { balance += amount ; }

virtual bool withdrawal( double amount )

{

if ( balance < amount )

{

cout << "Недостаточно денег: на счету " << balance

<<", снимаем " << amount

<< endl ;

return false ;

}

balance -= amount ;

return true ;

}

/* Функция вывода на экран */

void display( )

{

cout << type( )

<< " счёт " << accountNumber

<< " = " << balance

<< endl ;

}

virtual char* type( ) = 0 ;

protected :

/* Информация о связанном списке */

Node node ;

static int count ; /* Количество счетов */

unsigned accountNumber ;

double balance ;

} ;

/* Переменная для сбора статистики */

int Account::count = 0 ;

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

class Checking : public Account

{

public :

Checking::Checking( AccountLinkedList* pLL ,

unsigned accNo ) :

Account( pLL , accNo )

{ }

/* Перегрузка чисто виртуальных функций */

virtual bool withdrawal( double amount ) ;

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

} ;

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

_________________

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

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( AccountLinkedList* pLL ,

unsigned accNo ) :

Account( pLL , accNo )

{ noWithdrawals = 0 ; }

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

virtual bool withdrawal( double amount ) ;

virtual char* type( ) { return "Сберегательный" ; }

protected :

int noWithdrawals ;

} ;

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

bool Savings::withdrawal( double amount )

{

if ( ++noWithdrawals > 1 )

{

balance -= 5.00 ;

}

return Account::withdrawal( amount ) ;

}

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

unsigned getAccntNo( ) ;

void process( Account* pAccount ) ;

void getAccounts( AccountLinkedList* pLinkedList ) ;

void displayResults( AccountLinkedList* pLinkedList ) ;

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

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

Интервал:

Закладка:

Сделать

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

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


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

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

x