Лабораторная работа №1 (990535)
Текст из файла
Московский Энергетический Институт
Технический Университет
Лабораторная работа №1
Проектирование с помощью инструментального комплекса СИМПР.
Колесников Матвей
А-16-04
Москва, 2007 г.
-
Содержание.
Содержание -------------------------------------------------------------------------------------------------- 2
Постановка задачи ----------------------------------------------------------------------------------------- 3
Общее описание предметной области ----------------------------------------------------------------- 4
Описание табличной модели ----------------------------------------------------------------------------- 5
Приложение. Выдержки из программного кода с комментариями ---------------------------- 11
-
Процедура-функция WinProc() ---------------------------------------------------------- 11
-
Класс Ship ----------------------------------------------------------------------------------- 24
Используемые источники и программное обеспечение ----------------------------------------- 11
-
Постановка задачи.
Проектирование с помощью инструментального комплекса СИМПР задачи принятия решения на примере движении и разгрузки пассажирских и грузовых кораблей. Пример должен содержать не менее 3 таблиц по 6 условий и правил, или 2 таблиц, но больших.
В качестве дополнительной возможности, в программе создается файл-журнал (файл с именем “log”). Данный файл удобен при отладке и содержит “историю” действий процедуры-функции WinProc().
Пример маршрута движения кораблей.
-
Общее описание предметной области.
Корабли появляются в четырех углах главной формы и двигаются по направлению к порту (прямоугольник с надписью "Док").
Одновременно на форме может быть только четыре корабля.
Пассажирские корабли (синие стрелочки) разгружаются у верхней и нижней стороны порта, грузовые (красные стрелочки) - у боковых. Одновременно у каждого "дока" (у
каждой стороны порта) может разгружаться только один корабль. Если соответствующий док свободен, корабль швартуется к доку. Когда корабль достиг дока, он переходит в состояние “разгрузки”. По окончании “разгрузки” корабль продолжает движение по курсу.
Время разгрузки у пассажирских и грузовых кораблей разное.
Если соответствующий “док” занят, корабль плывет дальше своим курсом, пока не достигнет края формы, либо пока не освободится “док”.
Достигнув края формы, корабль, как объект уничтожается и вместо него создается новый корабль-объект в начальных координатах. Корабли появляются случайно (либо пассажирский, либо грузовой).
-
Описание табличной модели.
В процессе разработки модели принятия решения движения и разгрузки кораблей были составлены 5 таблиц:
-
Таблица 1 (Выключатель):
Таблица имеет одно условие и одно действие. Данная таблица введена в виду того, что в процессе работы программы-модуля не может быть достигнуто конечное состояние. Таблица 1 играет роль “выключателя”. Перед переходом к проверке следующего корабля (см. таблицы 3, 4, 5) проверятся состояние “включен”, относящееся к состоянию всего программного модуля.
Если условие “Включен” верно, то происходит переход к следующей таблице (диспетчеру), если не верно, то выводится сообщение о завершении работы программы и достигается конечное состояние.
| 1 | 2 | |
| C1 | T | F |
| R1 | 1 | |
| + | 2 | S |
| Описание таблицы 1 (Выключатель) | |
| C1 | Включен |
| R1 | Вывести сообщение о завершении работы программы |
Сообщение, выдающееся в том случае, если условие “Включен” не верно.
Данная таблица полна и непротиворечива. Проверка выполнена в программно-инструментальном комплексе СИМПР.
При проектировании данной таблицы логические отношения не использовались.
Трансляция последовательная: C1, P1, P2.
Трансляция оптимизированная: C1, P1, P2.
-
Таблица 2 (диспетчер):
Таблица 2 имеет пятнадцать условий и шесть действие. Данная таблица играет роль “диспетчера”. Диспетчер проверяет в каком состоянии находится корабль и выполняет соответствующие действия, переходы к соответствующим таблицам или остается в таблице 1 и проверяет следующий корабль. Переход к следующему кораблю осуществляется на каждом этапе проверки состояния очередного корабля. Всего у корабля есть три состояния: “движение”, “швартовка”, “разгрузка”, и независимое состояние груза (загружен или нет). По умолчанию корабль находится в состоянии “движение” и загружен, переход в состояние “швартовка” происходит в том случае, если корабль находится рядом с соответствующим доком, этот док свободен и корабль загружен. Если корабль в состоянии “разгрузка” (переход в это состояние происходит в таблице 4), происходит переход к таблице 5.
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | |
| C1 | T | T | T | T | T | T | T | T | T | T | T | T | T | T | T | T | T | T | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F |
| C2 | T | T | T | T | T | T | T | T | T | F | F | F | F | F | F | F | F | F | T | T | T | T | T | T | T | T | T | F | F | F | F | F | F | F | F |
| C3 | T | T | T | T | T | T | F | T | T | T | T | T | T | T | T | F | T | T | T | T | T | T | T | T | F | T | T | T | T | T | T | T | T | F | T |
| C4 | T | T | T | T | F | F | T | T | T | T | T | T | T | F | F | T | T | T | T | T | T | T | F | F | T | T | T | T | T | T | T | F | F | T | T |
| C5 | T | F | T | T | T | F | T | F | |||||||||||||||||||||||||||
| C6 | F | T | T | F | F | T | F | T | |||||||||||||||||||||||||||
| C7 | T | T | T | T | T | T | |||||||||||||||||||||||||||||
| C8 | T | F | T | F | |||||||||||||||||||||||||||||||
| C9 | T | T | T | T | T | ||||||||||||||||||||||||||||||
| C10 | T | F | T | F | |||||||||||||||||||||||||||||||
| C11 | T | T | T | T | T | T | |||||||||||||||||||||||||||||
| C12 | T | F | T | F | |||||||||||||||||||||||||||||||
| C13 | T | T | T | T | T | T | |||||||||||||||||||||||||||||
| C14 | T | F | T | F | |||||||||||||||||||||||||||||||
| C15 | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F | F |
| R1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |||||||||||||||||
| R2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ||||||||||||||||||
| R3 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | |||||||||||||||||||||||||||
| R4 | |||||||||||||||||||||||||||||||||||
| R5 | |||||||||||||||||||||||||||||||||||
| R6 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | |||||||||||||||||||||||||||
| + | 3 | 3 | 4 | 5 | 3 | 3 | 3 | 3 | 3 | 4 | 5 | 3 | 3 | 3 | 3 | 3 | 4 | 5 | 3 | 3 | 3 | 3 | 3 | 4 | 5 | 3 | 3 |
| 36 | 37 | 38 | 39 | 40 | |
| C1 | F | T | F | ||
| C2 | F | ||||
| C3 | T | F | F | ||
| C4 | T | T | T | F | F |
| C5 | F | F | T | F | |
| C6 | F | F | F | T | |
| C7 | |||||
| C8 | |||||
| C9 | T | ||||
| C10 | |||||
| C11 | |||||
| C12 | |||||
| C13 | |||||
| C14 | |||||
| C15 | F | T | T | F | F |
| R1 | 1 | ||||
| R2 | 1 | 1 | |||
| R3 | |||||
| R4 | 2 | 2 | |||
| R5 | 1 | 1 | |||
| R6 | |||||
| + | 3 | S | S |
| Описание таблицы 2 (Диспетчер) | |
| C1 | Корабль последний в списке |
| C2 | Корабль пассажирский |
| C3 | Корабль загружен (есть ли груз) |
| C4 | Корабль в состоянии "движение по курсу" |
| C5 | Корабль в состоянии "швартовка" |
| C6 | Корабль в состоянии "разгрузка" |
| C7 | Находится в области дока 1 |
| C8 | Док 1 свободен |
| C9 | Находится в области дока 2 |
| C10 | Док 2 свободен |
| C11 | Находится в области дока 3 |
| C12 | Док 3 свободен |
| C13 | Находится в области дока 4 |
| C14 | Док 4 свободен |
| C15 | Корабль на краю экрана (формы) |
| R1 | Переход к первому кораблю |
| R2 | Переход к следующему кораблю |
| R3 | Переход в состояние "швартовка" |
| R4 | Уничтожить объект "корабль" |
| R5 | Вывести сообщение об ошибке |
| R6 | Поставить флаг дока в состояние "занят" |
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.















