Экономико-математическая модель
Стоимость товара определяется по формуле:
где St – стоимость товара;
Z – цена единицы товара;
K – количество купленного товара.
При наличии в супермаркете различных скидок, покупатель будет оплачивать купленный товар согласно формулы:
,
где Opl – сумма к оплате за купленный товар;
Sk1 – скидка на объем покупки;
Sk2 – скидка на тип покупателя;
Sk3 – скидка на день недели.
Приведенные выше типы скидок можно определить по следующим формулам:
,
где Stпорог – объем покупки (стоимости товара), превышение которого позволяет получить скидку;
P1 – размер скидки на объем покупки в процентах.
,
где PT0, PT1, PT2 – размер скидки в процентах на стоимость товара в зависимости от типа покупателя (обычный, постоянный, оптовый соответственно),
T – тип покупателя (0 – обычный, 1 – постоянный, 2 – оптовый соответственно).
,
где PПн, PВт, PСр, PЧт, PПт, PСб, PВс – размер скидки в процентах на стоимость товара в зависимости дня недели (понедельник, вторник, среда, четверг, пятница, суббота, воскресенье соответственно).
Dнед – (1 – понедельник, 2 – вторник, 3 – среда, 4 – четверг,
5 – пятница, 6 – суббота, 7 – воскресенье).
Алгоритм решения задачи
Решение задачи осуществляется в соответствии с алгоритмом, который приведен на рис. 3.1.
Рис. 3.1 Схема алгоритма работы кассового аппарата
Структура данных
Имена переменных, их назначение и типы представлены в таблице 3.1.
Таблица 3.1
Структура данных проекта
Реквизиты | Имя переменной | Тип данных |
Цена | CurZena | Currency |
Стоимость | CurSum | Currency |
К оплате | CurOpl | Currency |
Наличные | CurNalch | Currency |
Сдача | CurSdasha | Currency |
Пороговое значение стоимости | CurPorog | Currency |
Скидка на объем покупки | SngSk1 | Single |
Скидка на тип покупателя | SngSk2 | Single |
Скидка на день недели | SngSk3 | Single |
Количество купленного товара | IntKolich | Integer |
Текущая дата | DtmSegodnya | Date |
Текущее время | DtmSejchas | Date |
Сообщение | StrSoobsh | String |
Сообщение1 | StrSoobsh1 | String |
Для отображения на форме текущих времени и даты используются переменные DtmSegodnya, DtmSejchas. Значения переменных CurZena, CurPorog, CurNalch,IntKolich, вводятся с клавиатуры (могут принимать значение при запуске программы на выполнение), а переменные CurSum, CurOpl, CurSdasha являются вычисляемыми. Переменные SngSk2, SngSk2, SngSk3 принимают значение в зависимости от заданных условий или результатов вычислений.
Результат решения задачи, содержащий выходные данные вместе с пояснительным текстом содержит в себе переменные StrSoobsh и StrSoobsh1.