Лабораторные работы (2007) (Лабораторная работа №1)

Посмотреть архив целиком

Московский Энергетический Институт

Технический Университет













Лабораторная работа №1

Проектирование с помощью инструментального комплекса СИМПР.















Колесников Матвей

А-16-04






Москва, 2007 г.

  1. Содержание.



Содержание -------------------------------------------------------------------------------------------------- 2

Постановка задачи ----------------------------------------------------------------------------------------- 3

Общее описание предметной области ----------------------------------------------------------------- 4

Описание табличной модели ----------------------------------------------------------------------------- 5

Приложение. Выдержки из программного кода с комментариями ---------------------------- 11

      • Процедура-функция WinProc() ---------------------------------------------------------- 11

      • Класс Ship ----------------------------------------------------------------------------------- 24

Используемые источники и программное обеспечение ----------------------------------------- 11





































  1. Постановка задачи.

Проектирование с помощью инструментального комплекса СИМПР задачи принятия решения на примере движении и разгрузки пассажирских и грузовых кораблей. Пример должен содержать не менее 3 таблиц по 6 условий и правил, или 2 таблиц, но больших.


В качестве дополнительной возможности, в программе создается файл-журнал (файл с именем “log”). Данный файл удобен при отладке и содержит “историю” действий процедуры-функции WinProc().


Пример маршрута движения кораблей.

















  1. Общее описание предметной области.

Корабли появляются в четырех углах главной формы и двигаются по направлению к порту (прямоугольник с надписью "Док").

Одновременно на форме может быть только четыре корабля.

Пассажирские корабли (синие стрелочки) разгружаются у верхней и нижней стороны порта, грузовые (красные стрелочки) - у боковых. Одновременно у каждого "дока" (у

каждой стороны порта) может разгружаться только один корабль. Если соответствующий док свободен, корабль швартуется к доку. Когда корабль достиг дока, он переходит в состояние “разгрузки”. По окончании разгрузки корабль продолжает движение по курсу.

Время разгрузки у пассажирских и грузовых кораблей разное.

Если соответствующий “док” занят, корабль плывет дальше своим курсом, пока не достигнет края формы, либо пока не освободится “док”.

Достигнув края формы, корабль, как объект уничтожается и вместо него создается новый корабль-объект в начальных координатах. Корабли появляются случайно (либо пассажирский, либо грузовой).














  1. Описание табличной модели.

В процессе разработки модели принятия решения движения и разгрузки кораблей были составлены 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


Случайные файлы

Файл
26787-1.rtf
70874-1.rtf
168868.rtf
3543.rtf
41766.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.