Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Требования к отчетам

.doc
Скачиваний:
8
Добавлен:
28.06.2014
Размер:
46.59 Кб
Скачать

Требования к отчетам

Лабораторная работа №1 (шесть занятий)

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

  1. Титульный лист.

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

  3. Постановка задачи (С помощью СИМПР … модель… программный модуль).

  4. Общее описание предметной области, схема и правила поведения объекта(ов).

  5. Описание табличной модели (сколько таблиц, за что отвечают, сами таблицы, логические отношения между условиями, полнота и непротиворечивость таблиц, результат трансляции).

  6. Пример работы программы (Последовательность ситуаций и их решение в виде текста и/или скриншотов/схем с подписями)

  7. Приложение. Выдержки из программного кода с комментариями, в частности цикл обработки сообщений.

Указание: Создать не менее трех таблиц по 6 условий, правил и действий (3табл*18=54 или 54=2табл*27) на одного студента. Желательно использование логических отношений. При доработке чужой модели, ее надо расширить также не менее чем на 54 условия/правила/действия, а при сдаче работы показать и предыдущую, в постановке задаче также отразить «что было ­– что стало».

Модель должна запускаться и корректно работать не только на вашем ПК, но на компьютерах компьютерного класса кафедры ПМ, а также без установки среды разработки со всеми библиотеками. Делайте Release-версию!

Лабораторная работа №2 (одно занятие) Матрица игры. Биматричные игры

(полные требования и задание получите на лекции у Еремеева А.П.)

  1. Титульный лист.

  2. Часть 1. Постановка задачи. Вывод формулы.

  3. Расчет по полученным формулам в ручную.

  4. Решение с помощью программного средства методом Брауна-Робинсона.

  5. Часть 2. Постановка задачи о двух КБ.

  6. Упрощение матрицы.

  7. Поиск стратегии поведения тремя методами с помощью программного средства.

  8. Сравнение и анализ результатов.

Лабораторная работа №3 (пять-шесть занятий)

Моделирование с помощью системы интеллектуального имитационного моделирования РДО

  1. Титульный лист.

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

  3. Постановка задачи (С помощью РДО…).

  4. Общее описание предметной области, схема и правила поведения объекта(ов).

  5. Описание имитационной модели

    1. Типы ресурсов: сколько типов ресурсов, их назначение, сами типы ресурсов (из файла) с комментариями;

    2. Ресурсы: сколько ресурсов, их назначение, сами ресурсы (из файла) с комментариями);

    3. Операции: сколько типов операций и самих операций, их назначение, список операций (из файла) с комментариями. Если вместо операций используются точки решения, то соответственно их список;

    4. Интерфейс: сколько кадров анимации использовано, описание и назначение, рисунки с комментариями;

    5. Выполнение: объект прогона (из файла) и условие завершения прогона;

    6. Статистика: Какая статистика собиралась, анализ и выводы.

  6. Приложение. Объекты констант, функций и последовательностей, образцов операций, кадров анимации, требуемой статистики.

Указание: задействовать клавиатурные операции для интерактивного управления.

СИМПР. Delphi

const

MESSAGE_STR='MyMessage';

No=0;

Yes=1;

type

TForm = class(TForm)

...

procedure WndProc(var Message: TMessage);override;

...

public

msgSIMPR:UINT;

end;

procedure TCubeForm.FormCreate(Sender: TObject);

begin

MsgSIMPR:=RegisterWindowMessage(MESSAGE_STR);

end;

procedure TCubeForm.WndProc(var Message: TMessage);

var res:boolean;

begin

if message.Msg=msgSIMPR then

begin

//ПОЛУЧИЛИ СООБЩЕНИЕ!!!!!!!!!!

Res:=false;

if message.WParamHi=0 then

begin

//УСЛОВИЕ!!!!!!!!!!

case message.WParamLo of

//таблица1

1 : begin

case message.LParam of

1: begin // условие 1

if ... then Res:=true;

end;

2: begin // условие 2

if ... then Res:=true;

end;

...

end; {case}

end;

//таблица2

2 : begin

case message.LParam of

1: begin // условие 1

if ... then Res:=true;

end;

2: begin // условие 2

if ... then Res:=true;

end;

...

end; {case}

end; {2}

end; {case}

end;

if message.WParamHi=1 then

begin

//Действие!!!!!!!!!!

case message.WParamLo of

//таблица 1

1 : begin

case message.LParam of

1: begin // действие 1

...

end;

2: begin // действие 2

...

end;

...

end; {case}

end; {1}

//таблица 2

2 : begin

case message.LParam of

1: begin // действие 1

...

end;

2: begin // действие 2

...

end;

...

end; {case}

end; {2}

...

end;{case}

Res:=true;

end;

//Выдали результат!!!!!!!!!

if res then message.Result:=1

else message.Result:=0;

end

else inherited WndProc(Message); // на другие сообщения

end;

СИМПР. C++ Biulder

#define USERMESSAGE "MyMessage"

#define YES 1

#define NO 0

#define CONDITIONS 0

#define ACTIONS 1

TForml *Forml; //_______________________________

__fastcall TForml::TForml(TComponent* Owner)

: ТForm(Owner) {

}

//----------------------------------

void __fastcall TForml::WndProc(Messages::TMessage &Message) {

if(Message.Msg == OurMessage)

Message.Result = DoPhone(Message.WParamHi,Message.WParamLo,Message.LParam) ; else

TCustomForm::WndProc(Message);

}

//------------------------------

void __fastcall TForml::FormCreate(TObject *Sender)

{

OurMessage = RegisterWindowMessage(USERMESSAGE);

...}

//----------------------------------

int TForml::DoPhone(Word WParamHi, Word WParamLo, int LParam)

{

switch(WParamHi)

{

case CONDITIONS: // Условия switch(WParamLo) {

case 1: // Таблица 1 switch(LParam) // Номер условия {

case 1: // Условие 1

if (…) return YES

else return NO;

case 2: // Условие 2

if (…) return YES

else return NO; }

break;

case 2: // Таблица 2 switch(LParam) // Номер условия {

case 1: // Условие 1

if (…) return YES

else return NO;

case 2: // Условие 2

if (…) return YES

else return NO};

break; //

....

}

//////////// case ACTIONS: // Действия switch(WParamLo) {

case 1: // Таблица 1 switch(LParam) // Номер действия {

case 1: // Действие 1

……

return YES;

case 2: // Действие 2

……

return YES;

}

case 2: // Таблица 2 switch(LParam) // Номер действия {

case 1: // Действие 1

……

return YES;

case 2: // Действие 2

……

return YES;

}

....

break;

}

} }