Лабораторные работы (2010) (Отчет СИМПР)

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

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











Отчёт по лабораторной работе №1.



Инструментальный комплекс проектирования систем поддержки принятия решений реального времени СИМПР”.










Выполнил: студент гр. А-13-06

Шеянов М.Ю.

Преподаватели: Еремеев А.П.

Гречкина П.В.











Москва, 2010г.

Оглавление


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

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

Описание интерфейса 4

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

Исходный код 8


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


Задача: сформировать модель принятия решений с помощью интеллектуального комплекса СИМПР в виде совокупности таблиц решений и написать модуль - интерпретатор для данной модели. В таблицах должны быть записаны варианты поведения объекта в выбранной предметной области, и путем обмена этой информацией с программной моделью, на экран должны отображаться действия, описанные в СИМПРе, соответствующие заданным условиям.

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


Предметной областью данной модели является кондитерская фабрика со складом. Случайным образом в модели появляются изделия (в качестве сырья и готового продукта). Изделие начинает путь с фабрики, где происходит процесс его изготовления. По его окончанию, продукт может случайным образом оказаться некачественным. Далее продукт движется по ленте на склад. На складе сканер проверяет качество товара, пришедшего с производства. В случае обнаружения брака, товар удаляется со склада. Товар, пролежавший более срока хранения на складе объявляется просроченным и автоматически удаляется со склада. При наличии на складе необходимого для перевозки количества товара, он отправляется на автомобиле в магазин. Если время ожидания необходимого количества товара будет превышено, автомобиль отправляется в магазин с имеющимся количеством на складе. На место уехавшего автомобиля автоматически подъезжает новый.

Описание интерфейса


Реализацией данной модели является программный модуль и таблица, созданная в программе СИМПР. Программный модуль состоит из главной формы.



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

















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


Для реализации игры потребовалось 5 таблиц.


Первая таблица предназначена для определения текущего объекта и передачи управления в требуемую таблицу.



Условие 1: Автомобиль выбран?

Условие 2: Сканер выбран?

Условие 3: Товар выбран?

Действие 1: Выбрать сл. Товар


Таблица полна и непротиворечива.






Вторая таблица предназначена управления автомобилем.



Условие 1: Достаточно ли товара для отправки?

Условие 2: Превышено ди время ожидания для автомобиля?


Действие 1: Удалить испортившийся товар со склада.


Таблица полна и непротиворечива.



Третья таблица описывает сканер.



Условие 1: В начале склада?

Условие 2: В конце склада?

Условие 3: Нашел испорченный товар?

Действие 1: Двигаться далее

Действие 2: Удалить испорченный товар

Действие 3: Возврат сканера


Таблица полна и непротиворечива.


Четвёртая таблица описывает действия над товаром.

Условие 1: Товар производится?

Условие 2: Товар произведен?

Условие 3: Товар на ленте?

Условие 4: Доставлен на склад?

Условие 5: Ожидает отправки?

Условие 6: Испортился на складе?

Условие 7: Помечен испорченным?

Условие 8: В процессе удаления со склада?

Действие 1: Пропустить далее по конвейеру

Действие 2: Поместить на склад

Действие 3: Удалить со склада


Таблица полна и непротиворечива.



Пятая таблица описывает качество произведенного товара.



Условие 1: Товар надлежащего качества?

Действие 1: Пометить испорченным

Действие 2: Пропустить далее по конвейеру


Таблица полна и непротиворечива.


Исходный код

public partial class Form1 : Form

{

MyHookClass hook;


public Form1()

{

InitializeComponent();

}


private void Form1_Load(object sender, EventArgs e)

{

hook = new MyHookClass(this.Handle);

hook.fact.main();

hook.fact.newprod();

}


private void timer1_Tick(object sender, EventArgs e)

{

int i;

string info;

info = "Всего на поле людей: " + hook.fact.prod_count + "\r\n";

int do_kassi = 0;

int posle_kassi = 0;

int na_ost = 0;

int bilet = 0;

int p_ost = 0;

for (i = 0; i < hook.fact.prod_count; i++)

{

if (hook.fact.prod[i].do_cassi)

{

do_kassi++;


}

if (hook.fact.prod[i].posle_cassi && (!hook.fact.prod[i].na_sklade) && (!hook.fact.prod[i].posle_sklada))

{

posle_kassi++;

}

if (hook.fact.prod[i].na_sklade)

{

na_ost++;

}


if (hook.fact.prod[i].posle_sklada)

{

p_ost++;

}

if (hook.fact.prod[i].bilet && hook.fact.prod[i].na_sklade)

{

bilet++;

}

else if (hook.fact.prod[i].na_sklade)

{

}

}

label1.Text = "" + do_kassi;

label2.Text = "" + posle_kassi;

label3.Text = "Товара на складе: " + na_ost;

label4.Text = "" + p_ost;

label8.Text = "Транспорт ждёт: " + hook.fact.autowaiting;

label9.Text = "Транспорт ждёт всего: " + hook.fact.autowaitingvsego;

label10.Text = "Товар ждёт всего: " + hook.fact.max_wait;

label11.Text = "Товара на отправку: " + hook.fact.maxauto;

Thread.Sleep(10);


if (hook.fact.k_pos == -3)

{

pictureBox12.Visible = true;

pictureBox13.Visible = false;

pictureBox14.Visible = false;

pictureBox15.Visible = false;


}

if (hook.fact.k_pos == -2)

{

pictureBox12.Visible = false;

pictureBox13.Visible = true;

pictureBox14.Visible = false;

pictureBox15.Visible = false;


}

if (hook.fact.k_pos == -1)

{

pictureBox12.Visible = false;

pictureBox13.Visible = false;

pictureBox14.Visible = true;

pictureBox15.Visible = false;


}

if (hook.fact.k_pos == 0)

{

pictureBox12.Visible = false;

pictureBox13.Visible = false;

pictureBox14.Visible = false;

pictureBox15.Visible = true;



}

if (hook.fact.k_pos == 1)

{

pictureBox12.Visible = false;

pictureBox13.Visible = false;

pictureBox14.Visible = true;

pictureBox15.Visible = false;


}

if (hook.fact.k_pos == 2)

{

pictureBox12.Visible = false;

pictureBox13.Visible = true;

pictureBox14.Visible = false;

pictureBox15.Visible = false;


}

if (hook.fact.k_pos == 3)

{

pictureBox12.Visible = true;

pictureBox13.Visible = false;

pictureBox14.Visible = false;

pictureBox15.Visible = false;


}

if (na_ost == 0 & bilet == 0)

{

pictureBox2.Visible = false;

pictureBox3.Visible = false;

pictureBox4.Visible = false;

pictureBox5.Visible = false;

pictureBox6.Visible = false;


pictureBox7.Visible = false;

pictureBox8.Visible = false;

pictureBox9.Visible = false;

pictureBox10.Visible = false;

pictureBox11.Visible = false;

}

if (na_ost == 1 & bilet == 0)

{

pictureBox2.Visible = false;

pictureBox3.Visible = false;

pictureBox4.Visible = false;

pictureBox5.Visible = false;

pictureBox6.Visible = false;


pictureBox7.Visible = false;

pictureBox8.Visible = false;

pictureBox9.Visible = false;


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

Файл
175315.rtf
107130.doc
240-1686.DOC
118495.rtf
76573-1.rtf




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