Стефан Дэвис - С++ для чайников .
- Название:С++ для чайников .
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс. Компьютерное издательство Диалектика
- Год:2007
- Город:Москва
- ISBN:0-7645-6852-3, 978-5-8459-0723-3
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стефан Дэвис - С++ для чайников . краткое содержание
1
empty-line
4
С++ для чайников . - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
/* Увеличение индекса */
_________________
344 стр. Часть 6. Великолепная десятка
noAccounts++ ;
}
}
double total = 0 ;
cout << "Информация о счёте\n" ;
for ( int i = 0 ; i < noAccounts ; i++ )
{
cout << "Баланс счёта "
<< accountNumber[ i ]
<< " = "
<< balance[ i ]
<< "\n" ;
/* Накопление общей информации */
total += balance[ i ] ;
}
// Вывод
cout << "Баланс по всем счетам = "
<< total
<< "\n" ;
/* Пауза для того, чтобы посмотреть на результат работы программы */
system( "PAUSE" ) ;
return 0 ;
}
/* init — Инициализация счёта путём чтения номера и обнуления баланса */
void init( unsigned* pAccountNumber ,
double* pBalance )
{
cout << "Введите номер счёта:" ;
cin >> *pAccountNumber ;
*pBalance = 0.0 ;
}
/* process — Обновление баланса */
void process( unsigned & accountNumber ,
double & balance )
{
cout << "Введите положительную сумму вклада,\n"
<< "отрицательную сумму для снятия со счёта\n"
<< "или нуль для завершения работы\n"
<< endl ;
double transaction ;
do
{
cout << ":" ;
cin >> transaction ;
// Вклад
if ( transaction > 0 )
_________________
345 стр. Глава 31. Программа BUDGET
{
/* Добавление на счёт */
balance += transaction ;
}
/* Снятие со счёта */
if ( transaction < 0 )
{
transaction = -transaction ;
if ( balance < transaction )
{
cout << "Недостаточно денег: всего"
<< balance
<< ", снимаем "
<< transaction
<<" \n" ;
}
else
{
balance -= transaction ;
}
}
} while ( transaction != 0 ) ;
}
Демонстрация работы данной программы:
Нажмите С для продолжения, X для выхода:
Программа создаёт банковские счета
С для создания счёта, X для выхода: С
Введите номер счёта: 1234
Введите положительную сумму вклада,
отрицательную сумму для снятия со счёта
или нуль для завершения работы
: 200
: -100
: -200
Недостаточно денег: всего 100 , снимаем 200
: 0
С для создания счёта, X для выхода: с
Введите номер счёта: 2345
Введите положительную сумму вклада,
отрицательную сумму для снятия со счёта
или нуль для завершения работы
: 200
: -50
: -50
: 0
С для создания счёта, X для выхода: х
Информация о счёте
Баланс счёта 1234 = 100
Баланс счёта 2345 = 100
Баланс по всем счетам = 200
Press any key to continue...
_________________
346 стр. Часть 6. Великолепная десятка
Разберёмся в том, как работает BUDGET . В этой программе было создано два массива, один из которых содержит номера счетов, а второй — балансы. Эти массивы синхронизированы таким образом, что элемент balance[ n ] содержит баланс счёта с номером из accountNumber[ n ] , независимо от значения n . В связи с ограничением длины массива количество счетов, содержащихся в программе, не может превышать MAXACCOUNTS .
Главная программа разделена на две части: первая отвечает за сбор информации ( в ней происходит считывание размеров вкладов, снятие денег и запись результата ), а вторая — за вывод информации. Фрагмент, отвечающий за сбор информации, организован в виде цикла, в котором счета обрабатываются каждый в отдельности. В начале цикла пользователю предлагается ввести С для продолжения работы и X — для завершения. Если был введён символ X , происходит выход из цикла и переход во вторую часть main( ) .
Программа выходит из цикла, если количество созданных счетов достигло MAXACCOUNTS , независимо от того, был ли введён X .
Обратите внимание, что происходит проверка введённого символа на равенство как 'X' , так и 'х' — ведь в отличие от компьютера человек может не обратить внимания на регистр вводимых символов.
Если пользователь ввёл ' С ', то управление передаётся функции init( ) , которая создаёт счёт и заполняет его необходимой информацией. После этого функция process( ) добавляет в счёт информацию о транзакции.
Аргументами функций init( ) и process( ) являются указатели, так что эти функции могут изменять значения своих аргументов. В противном случае обновленная информация о счёте была бы утрачена по окончании работы функций.
После того как создание счетов завершено, управление переходит блоку, отвечающему за вывод итоговых результатов. В этом блоке происходит считывание каждого счёта и вывод баланса каждого из них. В конце выводится общая сумма.
Функция init( ) создаёт новый счёт после приглашения ввести его номер и обнуляет создаваемый счёт.
Очень важно не забыть проинициализировать новый элемент. Нулевой баланс счёта лучше непредсказуемого значения ( например, отрицательного ).
Функция process( ) использует цикл для ввода каждой новой транзакции. Положительные значения считаются вкладом, а отрицательные — снятием со счёта. Для завершения работы со счётом достаточно ввести нуль.
Значение "0" используется программой в качестве флага. Это хотя и довольно распространённый, но не самый хороший метод. Я использовал его в этой программе только потому, что он помогает сэкономить довольно много места.
Существует множество способов улучшить программу BUDGET. Их поиск станет основой для последующего изучения языка С++. В конце книги вы увидите, как эта программа превратится в полнофункциональную объектно-ориентированную программу на С++.
Стиль программирования...347
Вы, наверное, заметили, что я пытался быть последовательным в отступах и в именовании переменных. Наша голова имеет ограниченную "производительность". И эту производительность следует направлять на создание работающих программ, а не на расшифровку уже написанных, которые невозможно прочитать из-за плохого оформления.
Важно, чтобы вы научились правильно именовать свои переменные, корректно располагать скобки и выполнять многое другое, что составляет стиль программирования. Разработав стиль программирования, придерживайтесь его, и он войдёт в привычку. Однажды вы заметите, что пишете программы быстрее, а их чтение не вызывает затруднений.
_________________
347 стр. Глава 31. Программа BUDGET
Это особенно важно, когда над проектом работают несколько программистов, поскольку правильный стиль помогает избежать проблем, которые обрушились на строителей Вавилонской башни. Кроме того, я бы настоятельно советовал тщательно разбираться в каждом сообщении об ошибке или предупреждении компилятора. Даже если считать, что предупреждение — это ещё не ошибка, то зачем дожидаться, пока оно превратится в ошибку? Тем более, что, если предупреждение такое простое, каким кажется, разобраться в нём и устранить его не составит труда. В большинстве случаев предупреждения вызываются ошибочным стилем программирования, который лучше исправить. Одни говорят, что недосмотры — это их личное дело, другие же считают, что это лишняя трата времени. Однако в любом случае обидно будет обнаружить ошибку, о которой компилятор предупреждал вас давным-давно.
Читать дальшеИнтервал:
Закладка: