- •Лабораторная работа №3
- •Общие рекомендации
- •Пример решения экономической задачи с разветвлением
- •1. Постановка задачи
- •2. Экономико-математическая модель
- •3. Алгоритм решения задачи
- •4. Структура данных
- •5. Интерфейс проекта и пользователя
- •6. Код проекта
- •В результате выполнения процедуры на форме (в текстовом поле TxtОплата) отобразится сумма к оплате за купленный товар с учетом скидок на объем покупки, тип покупателя и день недели.
- •В результате выполнения процедуры на форме (в текстовом поле TxtСдача) отобразится сдача и пользователю будет выдано сообщение о результатах покупки или необходимости доплаты за покупку.
- •7. Реализация проекта
- •8. Анализ проекта
- •9. Выполнение программы и анализ полученных результатов
- •Варианты индивидуальных заданий
- •Контрольные вопросы
8. Анализ проекта
В коде программы применяется принцип явного описания переменных. С этой целью в начале кода стоит оператор Option Explicit.
Поскольку переменные CurZena, CurSum, CurOpl, CurNalch, CurSdasha, CurPorog, SngSk1, SngSk2, SngSk3 используются в нескольких процедурах, то они помещены в коде программы перед всеми процедурами и объявлены глобально с использованием оператора Public.
В процедуре UserForm_Initialize использованы встроенные функции Date и Time, с помощью которых определяются текущие дата и время.
Установка движка линейки прокрутки в положение, которое соответствует текущему дню недели, обеспечивается присвоением свойству Value элемента управления ScrollBar номера дня недели. Этот номер в процедуре определяется с помощью функции WeekDay(Date) и однострочного оператора If.
Процедура cmdРасчет_Click предназначена для вычисления стоимости приобретенных товаров с учетом предусмотренных скидок.
Ввод исходных данных в процедуре осуществляется с помощью операторов CCur() и CInt().
Для определения размера скидок на объем покупки использован однострочный оператор If. Размер скидок в зависимости от типа покупателя определяется с использованием расширенной блочной формы оператора If, а скидки на день недели – с использованием оператора выбора Select Case.
Процедура TxtНаличные_Exit запускается при переводе курсора в любое другое место формы, что соответствует снятию фокуса с поля TxtНаличные, и предназначена для расчета сдачи и вывода результатов.
Для формирования сообщения в случае недоплаты покупателем используется функция IIf.
В процедуре подготовки рабочего места к работе CmdСброс_Click() использована константа Empty для обнуления результатов расчетов.
9. Выполнение программы и анализ полученных результатов
Требуется решить задачу по определению стоимости купленных товаров с учетом существующих скидок на объем покупки, тип покупателя и день недели. При этом предусмотреть возможность расчета сдачи, а также формирования сообщения при недоплате покупателем. После проведения расчетов, покупателю выдается сообщение о сумме оплаты, количестве наличных и сдаче, а также скидках, полученных при совершении покупки.
На рис. 3.7. показана форма при запуске приложения. На ней отображается системные время и дата, а также размеры скидок и пороговое значение стоимости товара.
Рис. 3.7. Внешний вид формы при ее загрузке
После ввода значений цены товара, его количества и нажатия кнопки «РАСЧЕТ» на форму выводится сумма к оплате с учетом скидок (рис. 3.8).
Рис. 3.8. Результат суммы к оплате с учетом скидок
При вводе пользователем в поле наличные суммы денег и переводе курсора на текстовое поле с надписью сдача производится расчет сдачи и формируется сообщение о результатах покупки (рис. 3.9).
Рис. 3.9. Результат работы кассового аппарата
В случае если наличных недостаточно для совершения покупки, выдается сообщение о необходимости доплаты определенного количества денег (рис. 3.10).
Рис. 3.10. Предупреждение о внесении недостаточного количества денег для оплаты
Разработанное приложение может использоваться при решении различных экономических задач, содержащих разветвляющиеся процессы.
