Реклама:

Прибавить 1 к ЗАКУСКАМ (М) Читать элемент заказа ОБР.ЗАКУСОК конец ОБР.ТЕЛА ДЛЯ ЗАКУСОК конец ОБР.ТЕЛА ДЛЯ ГОРЯЧЕГО повт пока не элемент заказа не горячее ОБР.ГОРЯЧЕГО прел

Прибавить 1 к ГОРЯЧЕМУ (М)

Читать элемент заказа ОБР.ГОРЯЧЕГО конец ОБР. ТЕЛА ДЛЯ ГОРЯЧЕГО конец ОБР.ТЕЛА ДЛЯ ДЕСЕРТОВ повт пока не элемент заказа не десерт ОБР.ДЕСЕРТОВ поел

Прибавить 1 к ДЕСЕРТАМ (М) Читать элемент заказа ОБР.ДЕСЕРТОВ конец ОБР.ТЕЛА ДЛЯ ДЕСЕРТОВ конец ОБР.ТЕЛА ДЛЯ НАПИТКОВ повт пока не элемент заказа не напиток ОБР.НАПИТКОВ поел

Прибавить 1 к напиткам (М) Читать элемент заказа ОБР.НАПИТКОВ конец ОБР.ТЕЛА ДЛЯ НАПИТКОВ конец ОБР.ИТОГОВ ЗАКАЗА поел Писать ЗАКУСКИ (М) в КБ Писать ГОРЯЧЕЕ (М) в УБ Писать ДЕСЕРТЫ (М) в УБ Писать НАПИТКИ (М) в УБ ОБР.ИТОГОВ ЗАКАЗА конец Прибавить 1 к М ОБР.ЗАКАЗА конец РУТЕЛО конец Закрыть Уп, Закрыть УБ СТОП РУп конец

Эта программа обрабатывает записи элементов заказа для одного работника. На самом деле обработке подлежат несколько заказов, и отдельные элементы для каждого заказа следует объединить в «кучки» для закусок, горячих блюд, десертов и напитков, предусмотрев итог для каждой из этих категорий применительно к каждому заказу. Поэтому для каждой категории во всяком заказе нужно инициализировать переменное поле памяти. Эти инициализации выполняются четырьмя операторами:

Установить ЗАКУСКИ (М) = О

Установить ГОРЯЧЕЕ (М) = О

Установить ДЕСЕРТЫ (М) = О

Установить НАПИТКИ (М) = О

Кинг Д. Создание эффективного программного обеспечения

Рис. 7.18. Структура программы для полной системы отчета по ресторану.

Кинг Д. Создание эффективного программного обеспечения

Рис. 7.18. Продолжение.

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

Поэтому счетчики ЗАКУСКИ (1), ГОРЯЧЕЕ (1), ДЕСЕРТЫ

(1) и НАПИТКИ (1) относятся к накоплению информации об элементах первого заказа для данного работника, ЗАКУСКИ

(2) и прочие относятся к накоплению для второго заказа и т.д. В конце обработки всего заказа итоги для этого заказа пишутся в файл Полному набору всех итогов заказа для данного работника в файле предшествует запись заголовка для работника, которая просто идентифицирует номер работника.

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


⇐ Предыдущая страница| |Следующая страница ⇒