2013-04-08 6 views
1

Я пытаюсь смоделировать программу торгового автомата с использованием сплава. Я хочу создать модель, в которой я мог бы вложить немного денег и предоставить машине возможность выбора для элемента, и она предоставит мне то же самое, и в случае, если деньги будут меньше, ничего не будет предоставлено. Здесь я пытаюсь ввести монету вместе с кнопкой в ​​качестве входных данных, и она должна вернуть желаемый элемент из торгового автомата при условии, что это значение, т.е. сумма, назначенная каждому элементу, предоставляется как вход. Таким образом, здесь кнопка a должна требовать десять Rs, для кнопки b требуется 5 rs, c требует 1 и d требует 2. Экземпляр op - это элемент, который возвращается после вставки денег. opc - остаток суммы возвращаемых монет. ip - кнопка ввода, а x - денежный ввод. Как я могу предоставить экземпляр таким образом, чтобы он вносил несколько монет в качестве входных данных, а также если сумма больше, чем стоимость предмета, тогда она должна вернуть обратно монету. Если бы я мог получить некоторую помощь, мы будем очень благодарны.Моделирование торгового автомата с использованием сплава

+0

* Очень низкое качество: * Что вы пробовали? Где ваш код? –

+0

Добро пожаловать в переполнение стека! В общем, вы получите лучшие ответы на Stack Overflow, если вы покажете работу, которую вы сделали, и объясните разницу между результатами, которые вы хотите, и результатами, которые вы получаете. Вы можете сделать намного хуже, чем после Eric Raymond's advice on how to ask questions на технических форумах. (Переполнение стека имеет тенденцию терпеть домашние вопросы лучше, чем группы, о которых он говорит, но он прав: проблема с домашней работой - это борьба с вами. Мы поможем вам бороться, но не будем делать домашнее задание для вас.) –

ответ

2

Если бы я был вами, я бы сказал, спрашивая себя, какие объекты мне интересны; вы сделали это (подписи для монет и предметов - вам также нужно какое-то представление о клиенте?).

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

Затем я попытался определить операции - вы уже упоминали о вложении денег и выборе предмета - как переход от одного правового состояния системы к следующему.

На каждом этапе я использовал анализатор для изучения экземпляров модели и выяснения, имеет ли смысл то, что я сделал до сих пор. Один пример этой модели определения сущностей, состояний и переходов состояний в этом порядке приведен в главе «Вихревой тур» в статье «Программное обеспечение» Абстракции - если у вас есть доступ к этой книге, вам будет полезно ознакомиться с этой главой ,

Удачи вам!

+0

Благодарю за ваш ответ .Я уже понял эту книгу. Когда я получил эту проблему, я подумал, что это сумасшествие. Теперь я думаю, что смогу немного поработать над этим. Спасибо за вашу помощь. –

1

модуль vending_machines

открытым Util/заказ [Event]

весело FST: Событие {упорядочение/первый}

весело NXT: событийно> Событие {упорядочение/следующий}

весело ДО [е: Event]: набор событий {prevs [е] + е}

абстрактный сиг Событие {}

сиг монет проходит событие {}

PRED no_vendor_loss [Продукт: набор (Event-монет)] {

все е: Событие | пусть pfx = до [e] | # (продукт & pfx) < = # (Монета & pfx)

+1

Хмммм. Я узнаю этот код. Вежливо ссылаться на источники. – user1513683

Смежные вопросы