|
Программирование >> Аргументация конструирования
cout << Баланс по всем счетам = total << return 0; init - инициализирует счет, считав его номер к обнулив баланс void init {unsigned. accountNurnber, doubles balance) cout: Введите номер счета: ; cin >> accountNurnber; balance = CO; process - изменяет баланс счета в соответствии с транзакцией пользователя void process (unsigned*; accountNuirljer, doubles balance) cout Введите положительную сумму Еклапа\п << или отрицательную сумму для снятия со счета\п double transaction; cout << : ; cin >> transaction; это вклад? if (transaction > 0) balance transaction; или снятие? if (transaction < 0) снятие transaction -transaction; if (balance < transaction) { cout << Недостаточно дене счете: баланс << balance << , сумма транзакции << transaction << else { balance transaction; } while (transaction != 0) ; Чтобы продемонстрировать эту программу в действии, я ввел следующие числа (вывод программы обозначен нормальным шрифтом, мой ввод - жирным): Нажмите С для продолжения или X для отмены;С Введите номер счета: 1234 Введите те;:ьную сумму вклада сумму для со счета :200 :-100 :-200 Недостаточно денег на счете: баланс 100, сумма транзакции 200 :0 Нажмите С для продолжения или X для Введите номер счета:2 345 Введите сумму или сумму для снятия со :200 :-50 :-50 :-50 Нажмите С для продолжения иди X для Баланс счета 1234 = 100 Баланс счета 2345 = 50 Баланс го всем счетам = 150 Стиль программирования Вы, наверное, заметили, что я пытался быть последовательным в отступах : и в именовании переменных. \ Наша голова имеет ограниченную нроизводительность . И эту производитель- ность следует направлять на создание работающих программ, а не на расшифровку уже написанных, которые невозможно прочитать из-за плохого оформления. Важно, чтобы вы научились правильно именовать свои переменные, корректно располагать скобки и выполнять многое другое, что составляет стиль программи- : : рования. Разработав стиль программирования, придерживайтесь его, и он войдет . в привычку. Однажды вы заметите, что пишете программы быстрее, а их чтение не I вызывает затруднений. j : Это особенно важно, когда над проектом работают несколько программистов, по- 1 скольку правильный стиль помогает избежать проблем, возникших у строителей \ Вавилонской башни. Кроме того, я бы настоятельно советовал тщательно разби- ; раться в каждом сообщении об ошибке или предупреждении компилятора. Даже если считать, что предупреждение - это еще не ошибка, то зачем дожидаться, по- : ка оно превратится в ошибку? Тем более, что, если оно такое простое, каким ка- ; жется, разобраться в нем и устранить его не составит труда. В большинстве случаев предупреждения вызываются ошибочным стилем программирования, который лучше исправить. Одни говорят, что недосмотры - это их личное дело, другие же считают, что это лишняя трата времени. Если вы так думаете, то просто представьте себе, как обидно будет обнаружить ошибку, о которой компилятор предупреждал вас давным-давно. Разберемся в том, как работает BUDGET. В этой программе бгло создано два массива, один из которых содержит номера счетов, а второй - балансы. Эти массивы синхронизированы таким образом, что элемент balance [п] содержит баланс счета с номером из accountNumber [п], независимо от значения п. В связи с ограничением длины массива количество счетов, содержащихся в программе, не может превышать MAXACCOUNTS. Главная программа разделена на две части: первая отвечает за сбор информации; в ней происходит считывание размеров вкладов, снятие денег и запись результата, а вторая - за вывод информации. Фрагмент, отвечающий за сбор информации, организован в виде цикла, в котором счета обрабатываются каждый в отдельности. В начале цикла пользователю предлагается ввести с для продолжения работы и X - для завершения. Если б]л введен символ X, происходит втход из цикла и переход во вторую часть main (). Программа выходит из цикла, если количество созданных счетов достигло 4AXACC0UNTS, независимо от того, был или нет введен х. Обратите внимание, что происходит проверка введенного символа на равенство как X , так и х - ведь в отличие от компьютера человек может не обратить внимания на регистр вводимых символов. Если пользователь ввел с, то управление передается функции init о, которая создает счет и заполняет его необходимой информацией. После этого функция process (> добавляет в счет информацию о транзакции. Аргументами функций init() и process {) являются указатели, так что эти функции могут изменять значения своих аргументов. В противном случае обновленная информация о счете была бы утрачена по окончании работы функций. После завершения создания счетов управление переходит блоку, отвечающему за вывод итоговых результатов. В этом блоке происходит считывание каждого счета и вывод баланса каждого из них. В конце выводится общая сумма. Функция init () создает новый счет после приглашения ввести его номер и обнуляет создаваемый счет. Очень важно не забыть проинициализировать новый элемент. Нулевой баланс счета лучше непредсказуемого значения (например, отрицательного). Функция process!) использует цикл для ввода каждой новой транзакции. Положительные значения считаются вкладом, а отрицательные - снятием со счета. Для завершения работы со счетом достаточно ввести ноль. Значение 0 используется программой в качестве флага. Это хотя и довольно распространенный, но не самый хороший метод. Я использовал его в этой программе только потому, что он помогает сохранить довольно много места. Существует множество способов улучшить программу BUDGET. ИХ ПОИСК станет основой для последующего изучения языка C++. В конце книги вы увидите, как эта программа превратится в полнофункциональную объектно-ориентированную программу C + + .
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |