Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Часть Становимся программистами. Глава 11. Отладка программ на C++                                             135




Чтобы продемонстрировать эту программу в действии, я ввел следующие числа (вывод программы обозначен нормальным шрифтом, мой ввод — жирным):

Нажмите С для продолжения или X для Введите 1234

Введите           сумму

сумму для    со счета

:-100

Недостаточно денег на счете: баланс 100, сумма транзакции 200

:0

Нажмите С для продолжения или X для Введите номер счета:2345

Введите           сумму

или          сумму для снятия со

:200

:-50

:-50

:-50

:0

Нажмите С для продолжения иди X для Баланс счета 1234 = 100

Баланс счета 2345 = 50 Баланс всем счетам 150

 

Стиль программирования

Вы, наверное, заметили, что я пытался быть последовательным в отступах и в именовании переменных.

Наша голова имеет ограниченную "производительность". эту производитель- ность следует направлять на создание работающих программ, а не на расшифровку уже написанных, которые невозможно прочитать из-за плохого оформления.

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

Это особенно важно, когда над проектом работают несколько программистов, по- скольку правильный стиль помогает избежать проблем, возникших у строителей Вавилонской башни. Кроме того, я бы настоятельно советовал тщательно разби- раться в каждом сообщении об ошибке или предупреждении  компилятора.  Даже если считать, что предупреждение — это еще не ошибка, то зачем  дожидаться, по- ка оно превратится в ошибку? Тем более, что, если оно такое простое, каким ка- жется, разобраться в нем и устранить его не составит труда. В большинстве случаев предупреждения вызываются ошибочным стилем программирования, который

лучше исправить.

Одни говорят, что недосмотры — это их личное дело, другие же считают, что это лишняя трата времени. Если вы так думаете, то просто представьте себе, как обидно будет обнаружить ошибку, о которой компилятор предупреждал вас давным-давно.

 

Разберемся в том, как работает BUDGET. В этой программе было создано два массива, один которых содержит номера счетов, а второй — балансы. Эти массивы синхронизированы таким образом, что  элемент          [n] содержит баланс счета с номером из                                                      [n],               от значения п. В связи с ограничением

Глава 11. Отладка программ на C++                                             135


длины массива количество счетов, содержащихся в программе, не может превышать

 

Главная программа разделена на две части: первая отвечает за сбор информации; в ней происходит считывание размеров вкладов, снятие денег и запись результата, а вторая — за вывод информации. Фрагмент, отвечающий за сбор информации, орга- низован в виде цикла, в котором счета обрабатываются каждый в отдельности. В на- чале цикла пользователю предлагается ввести с для продолжения работы и X для завершения. Если был введен символ X, происходит выход из цикла и переход во вто- рую часть main () .

Программа выходит из цикла, если количество созданных счетов достигло независимо от того, был или нет введен х.

Обратите внимание, что происходит проверка введенного символа на равенство как 'X', так и 'х' — ведь в отличие от компьютера человек может не обратить внима- ния на регистр вводимых символов.

Если пользователь ввел      то управление  передается  функции             которая создает счет и заполняет его необходимой информацией. После этого функция proces s (> добавляет в счет информацию о транзакции.

Аргументами функций        () и proces s {) являются указатели, так что эти функ- ции могут изменять значения своих аргументов. В противном случае обновленная информация о счете была бы утрачена по окончании работы функций.

После завершения создания счетов управление переходит блоку, отвечающему за вывод итоговых результатов. В этом блоке происходит считывание каждого счета и вывод баланса каждого из них. В конце выводится общая сумма.

Функция ini t () создает новый счет после приглашения ввести его номер и обну- ляет создаваемый счет.

Очень важно не забыть проинициализировать новый элемент. Нулевой баланс сче- та лучше непредсказуемого значения (например, отрицательного).

Функция process! ) использует цикл для ввода каждой новой транзакции. Поло- жительные значения считаются вкладом, а отрицательные — снятием со счета. Для завершения работы со счетом достаточно ввести ноль.

Значение 0 используется программой в качестве флага. Это хотя и довольно рас- пространенный, но не самый хороший метод. Я использовал его в этой программе только потому, что он помогает сохранить довольно много места.

Существует множество способов улучшить программу BUDGET. ИХ ПОИСК станет основой для последующего изучения языка C++. В конце книги вы увидите, как эта программа превратится в полнофункциональную объектно-ориентированную про- грамму C++.

 

136                                Часть //. Становимся программистами


Часть III

 

"Классическое" программирование


Основным отличием C++ от других языков является возможностьобъектно-ориентированногопрограммирования.

Термин объектно-ориентированный — один из самых популярных в современном компьютерном мире.

Языки программирования, редакторы и базы данных

буквально все претендуют на звание объектно-ориентированных.

Иногда так оно и есть, но часто

такое определение дается                               в рекламных целях. Так что же такое объектно-ориентированное программирование?

Прочитайте эту часть книги.


Глава


Поделиться:



Последнее изменение этой страницы: 2019-04-19; Просмотров: 215; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.012 с.)
Главная | Случайная страница | Обратная связь