Инструментальная среда имитационного моделирования

Рассмотрение формальных моделей распределенных систем. Обзор ресурсно-управляемой сети временных автоматов. Обоснование выбора программных и аппаратных средств. Соответствие графической визуализации текущего состояния модели ее структурному представлению.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 07.03.2016
Размер файла 2,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

3.Выполнение программы

Использование программы требует базовых знаний работы с компьютером и знаний математики, а также базовые знания в области сетей Петри.

3.1 Моделирование

Для начала моделирования следует загрузить модель (файл -> открыть -> WanderingPhilosofers.rda) или выбрать демомодель (файл-> загрузить демо модель). После загрузки демомодели главная форма программы будет иметь следующий вид:

Рисунок 1. Главная форма TRDA Tool

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

Модель можно так же выполнять и в цикле по времени (условному внутреннему времени моделирования). Для этого надо установить количество моментов условного времени в нижней части правой панели и нажать кнопку «время+». Затем, после автоматического выполнения шагов моделирования, по достижении системой заданного момента условного времени отобразится новая разметка системной сети. В случае, если после выполнения моделирования по времени, требуется вернуть систему обратно в режим пошагового моделирования, следует нажать кнопку «по шагам».

3.2 Временная диаграмма

После выполнения некоторого количества переходов можно просмотреть временную диаграмму.(Рисунок2) Для этого нужно нажать кнопку «Временная диаграмма» в правой панели или поставить чек-бокс «Диаграмма».

Рисунок 2. Временная диаграмма модели Обедающих философов, гуляющих в парке

На временной диаграмме по горизонтали отложены моменты времени, а по вертикали - сложные агенты. Цветные дорожки соответствуют временной длительности состояний, в которых находились агенты за время выполнения модели. Снизу в цветных квадратиках приводится расшифровка состояний.

3.3 Статистический анализ

Для просмотра статической аналитической информации, а так же информации о поведенческих свойствах следует нажать кнопку «Результаты анализа».

Рисунок 3. Результаты анализа

Более подробное описание аналитических возможностей TRDA Tool приведено в основной части Пояснительной записки.

3.4 Визуализация

Для просмотра графической визуализации системной и автоматной сети следует выставить галочки в полях Системная сеть, Автоматная сеть. Визуализироваться будут только те автоматные сети, для соответствующих агентов которых выставлены знаки * в структурном виде отображения текущей разметки модели (левая часть главной формы). Знак * выставляется пользователем двойным кликом по агенту в левой части главной формы. Соответствующие представления автоматной и системной сети для демомодели приведены на Рисунках 4 и 5.

Рисунок 4. Системная сеть (фрагмент)

Рисунок 5. Выбор агента p1 для отображения на форме «Автоматная сеть»

Рисунок 6. Автоматная сеть агента p1 типа philosopher.

Приложение 9

Класс ChartInfo.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Automata {

public class ChartInfo {

public double x_max;

public List<string> positions = new List<string>();

public List<string> pos_ids = new List<string>();

public List<string> states = new List<string>();

public List<string> state_ids = new List<string>();

public List<ChartItem> items = new List<ChartItem>();

public void add_position(string i_title) {

add_position(i_title, i_title);

}

public void add_position(string i_title, string i_id) {

positions.Add(i_title);

pos_ids.Add(i_id);

}

public void add_state(string i_title) {

add_state(i_title, i_title);

}

public void add_state(string i_title, string i_id) {

states.Add(i_title);

state_ids.Add(i_id);

}

public void add_item(string i_pos, string i_state, double i_from, double i_to) {

int pos = pos_ids.IndexOf(i_pos);

if(pos == -1) {

pos = positions.Count;

add_position(i_pos);

}

int state = state_ids.IndexOf(i_state);

if(state == -1) {

state = states.Count;

add_state(i_state);

}

add_item(pos, state, i_from, i_to);

}

public void add_item(int i_pos, int i_state, double i_from, double i_to) {

items.Add(new ChartItem(i_pos,i_state,i_from,i_to));

x_max = Math.Max(x_max,i_to);

}

}

public struct ChartItem {

public int position;

public int state;

public double x_from;

public double x_to;

public ChartItem(int i_pos, int i_state, double i_from, double i_to) {

state = i_state;

position = i_pos;

x_from = i_from;

x_to = i_to;

}

}

Приложение 10

Form_xml.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

using System.Windows.Forms;

using System.Xml;

namespace Automata {

partial class Form1: Form {

static private String get_config_fname() {

String ss = Application.ExecutablePath;

String

dir = Path.GetDirectoryName(ss)

, fname = Path.GetFileName(ss)

, fname_woe = Path.GetFileNameWithoutExtension(ss)

;

String path = dir + "\\" + fname_woe + ".xml";

//

log("ss=" + ss);

log("dir=" + Path.GetDirectoryName(ss));

log("fname=" + Path.GetFileName(ss));

log("fname_woe=" + Path.GetFileNameWithoutExtension(ss));

log("fname=" + fname);

//

return path;

}

private void config_save() {

XmlDocument doc = new XmlDocument();

XmlElement e_root = doc.CreateElement("root");

doc.AppendChild(e_root);

//

/*

XmlElement e_main = doc.CreateElement("form_main");

Lib.form_attr_write(e_main, this);

e_root.AppendChild(e_main);

*/

//

XmlElement e_pars = doc.CreateElement("pars");

e_pars.SetAttribute("page_length", "" + Model.page_length);

e_pars.SetAttribute("gap", "" + Model.gap);

e_pars.SetAttribute("title_length", "" + Model.title_length);

e_pars.SetAttribute("loop_count", "" + loop_count);

e_root.AppendChild(e_pars);

//

String path = get_config_fname();

doc.Save(path);

}

public void show_main_size() {

log("main top=" + this.Top + " left=" + this.Left

+ " width=" + this.Width + " height=" + this.Height

);

}

private void config_restore() {

//

String path = get_config_fname();

XmlDocument doc = new XmlDocument();

XmlElement e_root = null;

try {

doc.Load(path);

e_root = doc.DocumentElement;

log("docElement name=" + e_root.Name);

log("do read_config");

show_main_size();

/*

foreach(XmlElement e in e_root.GetElementsByTagName("form_main")) {

Lib.form_attr_read(e, this);

break;

}

*/

foreach(XmlElement e in e_root.GetElementsByTagName("pars")) {

loop_count = Lib.nvl_int(e.GetAttribute("loop_count"), loop_count);

Model.page_length = Lib.nvl_int(e.GetAttribute("page_length"), Model.page_length);

Model.gap = Lib.nvl_int(e.GetAttribute("gap"), Model.gap);

Model.title_length = Lib.nvl_int(e.GetAttribute("title_length"), Model.title_length);

break;

}

show_main_size();

} catch(Exception e) {

Lib.alarm("exp=" + e.Message);

}

}

}

}

Приложение 11

Form1.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace Automata {

public enum VisualNet { system_net, automata_net };

public partial class Form1 : Form {

static Form1 frmMain;

static FormLog frmLog;

static bool is_logging = false;

static bool is_visible = false;

static bool is_autonet = false;

static bool only_trace_logging = false;

static bool is_chart_visible = false;

static string build_id = "67 20.05.2013";

void log_only_trace(bool only_trace) {

only_trace_logging = only_trace;

}

public static void log_t(string ss) {

log(ss + "$trc");

}

public static void log(string ss) {

if (!is_logging) return;

if(only_trace_logging) {

if(!ss.Contains("$trc")){

return;

}

}

string new_ss = ss.Replace("$trc", "");

check_log_form();

frmLog.log(new_ss);

}

public void log_visible(bool i_visible) {

check_log_form();

is_logging = i_visible;

frmLog.Visible = i_visible;

cb_Log.Checked = i_visible;

}

public void chart_visible(bool i_visible) {

is_chart_visible = i_visible;

cb_chart.Checked = is_chart_visible;

if (is_chart_visible) {

show_chart();

}else{

if (frmChart != null) {

frmChart.Visible = false;

}

}

}

static void check_log_form() {

if (frmLog == null) {

frmLog = new FormLog(frmMain);

}

if (frmLog.IsDisposed) {

frmLog = new FormLog(frmMain);

}

}

/*

static void check_visual_form2() {

if(frm_viz == null) {

frm_viz = new FormVisual(frmMain);

}

if(frm_viz.IsDisposed) {

frm_viz = new FormVisual(frmMain);

}

}

*/

void show_log() {

log_visible(true);

cb_Log.Checked = true;

frmLog.Focus();

}

public Form1() {

InitializeComponent();

init();

frmMain = this;

this.Text = ml["form1_title"];

}

private void init(){

//config_restore();

status("Welcome");

// numericUpDown2.Value = loop_count;

// btn_Loop.Text = loop_count + " шагов";

btn_Loop.Enabled = false;

btn_exec.Enabled = false;

set_text();

}

static MultyLanguage ml = MultyLanguage.get_MultyLanguage();

void set_text() {

this.Text = ml["title_Form1"];

cb_visual.Text = ml["title_SystemNet"];

cb_autonet.Text = ml["title_AutomataNet"];

btn_chart.Text = ml.msg_btn_chart.Str; // "Time chart";

btn_Trace.Text = ml.msg_btn_trace.Str; //"Трассировка";

btn_rezult.Text = ml.msg_btn_rezult.Str; //Результаты анализа

cb_chart.Text = ml.cb_chart.Str; //Диаграмма

cb_Log.Text = ml.cb_log.Str; //Лог

cb_Trace.Text = ml.cb_trace.Str;//Только трассировка

cb_Marking.Text = ml.cb_marking.Str;//Достижимость

cb_stop.Text = ml.cb_stop.Str;//Пауза при нахождении

cb_Finiteness.Text = ml.cb_Finiteness.Str;//Ограниченность

btn_exec.Text = ml.btn_exec.Str;//1Шаг

btn_Loop.Text = ml.btn_Loop.Str;//шагов

btn_steps.Text = ml.btn_steps.Str;//По шагам

label1.Text = ml.label1.Str;//Сделать

btn_time.Text = ml.btn_time.Str;//время+

fileToolStripMenuItem.Text = ml.menu_file.Str;//Файл

openToolStripMenuItem.Text = ml.openToolStripMenuItem.Str;//Открыть

загрузитьДемоМодельToolStripMenuItem.Text = ml.загрузитьДемоМодельToolStripMenuItem.Str;// Загрузить демо модель

saveToolStripMenuItem.Text = ml.saveToolStripMenuItem.Str;//Сохранить

выходToolStripMenuItem.Text = ml.выходToolStripMenuItem.Str;//Выход

справкаToolStripMenuItem.Text = ml.справкаToolStripMenuItem.Str;//Справка

оПрограммеToolStripMenuItem.Text = ml.оПрограммеToolStripMenuItem.Str;//О программе

языкОписанияМоделиToolStripMenuItem.Text = ml.языкОписанияМоделиToolStripMenuItem.Str;//Язык описани модели

//cb_chart.Text = ml["cb_chart"]; // Диаграмма

// cb_Log.Text = ml["cb_log"]; // Журнал

// cb_Trace.Text = ml["cb_trace"]; // Only Trace

//cb_Marking.Text = ml["cb_marking"]; // Достижимость

// cb_stop.Text = ml["cb_stop"]; // Пауза при нахождении

//cb_Finiteness.Text = ml["cb_finiteness "]; //Ограниченность

}

private Model m;

void init_model() {

if(m != null) {

if(!confirm(ml["q_delete_model"]/*"Удалить текущую модель?"*/)) return;

}

try {

m = Model.init();

trda_file_name = "demo.tda";

model_ready(ml["model_init"]/*"Модель инициализована"*/);

} catch (Exception e) {

status(ml["error:"]/*"ошибка: "*/ + e.Message);

}

}

private void status(String ss){

toolStripStatusLabel1.Text = ss;

log(ss);

}

void error(string i_ss) {

string ss = ml["***Error:"]/*"***Ошибка: "*/+i_ss;

log(ss);

status(ss);

}

bool multy_alarm = false;

List<String> alarm_string_list = new List<string>();

void multy_alarm_on() {

multy_alarm = true;

alarm_string_list = new List<string>();

}

void multy_alarm_off() {

multy_alarm = false;

if(alarm_string_list.Count > 0) {

string ss = "";

foreach(string s in alarm_string_list) {

ss += s+"\r\n";

}

alarm(ss);

}

}

void alarm(string ss) {

if(multy_alarm) {

alarm_string_list.Add(ss);

} else {

MessageBox.Show(ss, "Message");

}

}

Boolean confirm(string ss) {

DialogResult result =

MessageBox.Show(ss, "Confirm", MessageBoxButtons.YesNo);

return(result == DialogResult.Yes);

}

void model_not_ready() {

treeView1.Nodes.Clear();

lb_Vars.Items.Clear();

btn_exec.Enabled = false;

btn_Loop.Enabled = false;

btn_time.Enabled = false;

}

void model_ready(string ss) {

m.set_test_marking(cb_Marking.Checked);

m.set_test_stop(cb_stop.Checked);

m.set_test_bounds(cb_Finiteness.Checked);

m.set_test_lock(cb_lock.Checked);

status(ss);

next_step();

}

void next_step() {

next_step(false);

}

bool next_step(bool in_loop) {

if(m == null) {

error(ml["no_init_model"]/*"Не инициализирована модель"*/);

return false;

}

List<string> step_list = m.get_candidates();

// tb_StepInfo.Text = m.get_step_info();

bool rez = (step_list != null);

if (m.do_pause) rez = false;

if (in_loop) return rez;

status(m.get_step_info());

lb_Vars.Items.Clear();

if (step_list != null) {

foreach (String ss in step_list) {

lb_Vars.Items.Add(ss);

}

lb_Vars.SelectedIndex = m.get_champ_index();

btn_exec.Enabled = true;

btn_Loop.Enabled = true;

btn_time.Enabled = true;

} else {

btn_exec.Enabled = false;

btn_Loop.Enabled = false;

if(m.get_exec_mode() == Model.Exec_Mode_Stop) {

btn_time.Enabled = false;

} else {

btn_time.Enabled = true;

}

}

toolStripProgressBar1.Visible = false;

show_places();

if(is_chart_visible) show_chart();

if (is_visible) show_visual_system_net();

if(is_autonet) show_visual_automata_net();

return rez;

}

int loop_count = 50;

void exec_loop() {

if (m == null) {

error(ml["no_init_model"]/*"Не инициализирована модель"*/);

return;

}

log_visible(false);

status(ml["executing_cycle"]/*"Выполняется цикл ..."*/);

toolStripProgressBar1.Visible = true;

loop_count = (int)numericUpDown2.Value;

toolStripProgressBar1.Maximum = loop_count;

statusStrip1.Refresh();

int i = 0;

do {

i++;

if (i % 10 == 0) {

status(ml["executing_cycle"]/*"Выполняется цикл ..."*/);

toolStripProgressBar1.Value = i;

}

m.exec_step();

if (!next_step(true)) break;

// if (cb_Stop.Checked) break;

} while (i<loop_count);

next_step();

}

void exec_time(double delta_t) {

if(m == null) {

error(ml["no_init_model"]/*"Не инициализирована модель"*/);

return;

}

Double time_to = m.get_t_current() + delta_t;

m.time_limit_on(time_to);

status(ml["executing_cycle_to"]/*"Выполняется цикл до "*/+time_to+ "...");

do {

log_t("do next_step t_current=" + m.get_t_current());

if(!next_step(true)) break;

log_t("posle next_step t_current=" + m.get_t_current());

m.exec_step();

log_t("posle exec_step t_current=" + m.get_t_current());

} while(true);

status("Выполнился цикл до " + time_to + ".");

m.set_t_current(time_to);

next_step();

m.time_limit_off();

/*

status(m.get_step_info());

show_places();

*/

}

void go_by_steps() {

if(m == null) {

error(ml["no_init_model"]/*"Не инициализирована модель"*/);

return;

}

m.time_limit_off();

next_step();

}

void exec_1_step() {

int n = lb_Vars.SelectedIndex;

log("Выбран вариант " + n);

if(m==null){

error(ml["no_init_model"]/*"Не инициализирована модель"*/);

return;

}

m.exec_step(n);

// show_places();

next_step();

}

string get_inst_title(Instance inst) {

string ss = inst.con.name;

if (inst.is_visual) {

ss = "*" + ss;

}

if (inst.current_state != null) {

ss += ":" + inst.current_state.name;

}

if (inst.current_step != null) {

ss += "->" + inst.current_step.trans.name;

}

if (inst.con.type.initial_state != null) {

foreach (Register reg in inst.con.type.list_regs) {

//ss += " reg.name="+reg.name+" reg.id="+reg.id;

if (reg.reg_type == RegType.rt_timer) {

ss += "[" + reg.name + "=" + inst.registers[reg.id] + "]";

}

}

}

return ss;

}

void show_places(){

if (m == null)

{

status(ml["no_init_model"]/*"Модель не инициализирована: "*/ + DateTime.Now);

return;

}

treeView1.Visible = false;

treeView1.Nodes.Clear();

foreach (Place p in m.p_list){

TreeNode p_node = new TreeNode(p.name);

p_node.Tag = p;

treeView1.Nodes.Add(p_node);

int n = 0;

foreach (Instance inst in p.list_inst) {

n++;

/*

string ss = inst.con.name;

if (inst.is_visual) {

ss = "*" + ss;

}

if(inst.current_state != null){

ss += ":"+inst.current_state.name;

}

if(inst.current_step != null) {

ss += "->" + inst.current_step.trans.name;

}

if(inst.con.type.initial_state != null) {

foreach(Register reg in inst.con.type.list_regs) {

//ss += " reg.name="+reg.name+" reg.id="+reg.id;

if(reg.reg_type == RegType.rt_timer) {

ss += "["+reg.name + "=" + inst.registers[reg.id]+"]";

}

}

}

*/

string ss = get_inst_title(inst);

TreeNode i_node = new TreeNode(ss);

i_node.Tag = inst;

p_node.Nodes.Add(i_node);

}

if(!p.is_expanded) p_node.Text += "(total " + n + ")";

if(p.is_expanded) p_node.Expand();

}

//treeView1.ExpandAll();

treeView1.Visible = true;

}

void show_dump() {

if (m == null) {

status(ml["no_init_model"]/*"Модель не инициализирована: "*/ + DateTime.Now);

return;

}

FormRezult fr = new FormRezult("");

string ss = m.get_dump();

// log(ss);

fr.log(m.get_dump());

fr.Show();

}

void show_model(Model m) {

if(m == null) {

status(ml["no_init_model"]/*"Модель не инициализирована: "*/ +DateTime.Now);

treeView1.Nodes.Clear();

return;

}

//

treeView1.Nodes.Clear();

TreeNode root_node = new TreeNode(m.name);

treeView1.Nodes.Add(root_node);

//

TreeNode places_node = new TreeNode(ml["place"]/*"места"*/);

root_node.Nodes.Add(places_node);

foreach(Place p in m.p_list){

TreeNode place_node = places_node.Nodes.Add(p.name);

TreeNode place_in_node = place_node.Nodes.Add("arc_in");

foreach(Arc a in p.list_in) {

place_in_node.Nodes.Add("" + a.p.name + ":" + a.port.name);

}

TreeNode place_out_node = place_node.Nodes.Add("arc_out");

foreach(Arc a in p.list_out) {

place_out_node.Nodes.Add("" + a.p.name + ":" + a.port.name);

}

TreeNode place_inst_node = place_node.Nodes.Add("instances");

foreach(Instance i in p.list_inst) {

string st = "";

if(i.current_state != null) {

st = ":" + i.current_state.name;

}

place_inst_node.Nodes.Add("" + i.con.name+st);

}

}

TreeNode types_node = new TreeNode(ml["types"]/*"типы"*/);

root_node.Nodes.Add(types_node);

foreach(Type t in m.t_list) {

string init_state = "";

if(t.initial_state != null){

init_state = " (init="+t.initial_state.name+")";

}

TreeNode type_node = types_node.Nodes.Add(t.name+init_state);

//

TreeNode consts_node = new TreeNode(ml["constants"]/*"константы"*/);

type_node.Nodes.Add(consts_node);

foreach(Const c in t.list_const) {

TreeNode const_node = new TreeNode(c.name);

consts_node.Nodes.Add(const_node);

}

//

TreeNode vars_node = new TreeNode(ml["variables"]/*"переменные"*/);

type_node.Nodes.Add(vars_node);

foreach(Var v in t.list_var) {

TreeNode var_node = new TreeNode(v.name);

vars_node.Nodes.Add(var_node);

}

//

TreeNode ports_node = new TreeNode(ml["ports"]/*"порты"*/);

type_node.Nodes.Add(ports_node);

foreach(Port p in t.list_port) {

TreeNode port_node = new TreeNode(p.name);

ports_node.Nodes.Add(port_node);

}

//

TreeNode states_node = new TreeNode(ml["states"]/*"состояния"*/);

type_node.Nodes.Add(states_node);

foreach(State s in t.list_states) {

TreeNode state_node = new TreeNode(s.name+"("+s.symbol+")");

states_node.Nodes.Add(state_node);

foreach(Transition tr in s.list_trans) {

TreeNode trans_node = new TreeNode(tr.state_from.name + " -> " + tr.state_to.name+" ("+tr.symbol+")");

state_node.Nodes.Add(trans_node);

}

}

//

TreeNode transes_node = new TreeNode(ml["transitions"]/*"переходы"*/);

type_node.Nodes.Add(transes_node);

foreach(Transition tr in t.list_trans) {

TreeNode trans_node = new TreeNode(tr.state_from.name+" -> "+tr.state_to.name);

transes_node.Nodes.Add(trans_node);

foreach(Term term in tr.list_term_in) {

TreeNode term_node = new TreeNode("in:" + term.port.name + ":" + term.res.name+":"+term.res.GetType().Name);

trans_node.Nodes.Add(term_node);

}

foreach(Term term in tr.list_term_out) {

TreeNode term_node = new TreeNode("out:" + term.port.name + ":" + term.res.name + ":" + term.res.GetType().Name);

trans_node.Nodes.Add(term_node);

}

}

}

//

TreeNode all_ports_node = new TreeNode(ml["ports"]/*"порты"*/);

root_node.Nodes.Add(all_ports_node);

foreach(Port p in m.port_list) {

string ss = p.name;

if(p.type != null) {

ss = ss+":"+p.type.name;

}

TreeNode port_node = new TreeNode(ss);

all_ports_node.Nodes.Add(port_node);

}

TreeNode all_trace_node = new TreeNode("trace");

root_node.Nodes.Add(all_trace_node);

for(int i = 0; i < m.trace_hash.Count; i++) {

Trace t = (Trace)m.trace_hash[i];

string ss = t.show();

TreeNode trace_node = new TreeNode(ss);

all_trace_node.Nodes.Add(trace_node);

}

status(ml["view_model"]/*"Просмотр модели: "*/ + DateTime.Now);

// treeView1.ExpandAll();

}

void log_total() {

if (m == null) {

status(ml["no_init_model"]/*"Модель не инициализирована: "*/ + DateTime.Now);

return;

}

show_log();

cb_Trace.Checked = false;

if(!m.log_total()) {

status(ml["show_rez"]/*"Показ итогов невозможен: смотрите сообщения в журнале."*/);

}

}

void log_trace() {

if(m == null) {

status(ml["no_init_model"]/*"Модель не инициализирована: "*/ + DateTime.Now);

return;

}

show_log();

m.log_trace();

}

private void btn_Init_Click(object sender, EventArgs e) {

init_model();

}

private void btn_Show_Click(object sender, EventArgs e) {

show_model(m);

}

private void btn_Log_Click(object sender, EventArgs e) {

show_log();

}

/*

private void btn_Step_Click(object sender, EventArgs e) {

next_step();

}

*/

private void btn_exec_Click(object sender, EventArgs e) {

exec_1_step();

}

private void saveToolStripMenuItem_Click(object sender, EventArgs e) {

save_model();

}

private void openToolStripMenuItem_Click(object sender, EventArgs e) {

load_model();

}

private void btn_ShowPlaces_Click(object sender, EventArgs e)

{

show_places();

}

private void cb_Log_CheckedChanged(object sender, EventArgs e) {

log_visible(cb_Log.Checked);

}

private void lb_Vars_DoubleClick(object sender, EventArgs e) {

log("double click selectedIndex="+lb_Vars.SelectedIndex);

if(lb_Vars.SelectedIndex >= 0) exec_1_step();

}

private void btn_Trace_Click(object sender, EventArgs e) {

log_trace();

}

private void cb_Trace_CheckedChanged(object sender, EventArgs e) {

log_only_trace(cb_Trace.Checked);

}

private void btn_total_Click(object sender, EventArgs e) {

log_total();

}

private void btn_Loop_Click(object sender, EventArgs e) {

exec_loop();

}

private void Form1_FormClosing(object sender, FormClosingEventArgs e) {

bool do_confirm = false;

if(do_confirm && !Lib.confirm("Good buy?")) {

e.Cancel = true;

return;

}

//config_save();

}

static FormChart frmChart;

void show_chart() {

if (m == null) {

status(ml["no_init_model"]/*"Модель не инициализирована: "*/ + DateTime.Now);

return;

}

if (frmChart == null) {

frmChart = new FormChart(frmMain);

}

if (frmChart.IsDisposed) {

frmChart = new FormChart(frmMain);

}

ChartInfo chin = m.get_chin();

frmChart.set_chin(chin);

frmChart.Visible = true;

frmChart.Focus();

}

private void btn_chart_Click(object sender, EventArgs e) {

show_chart();

}

private void выходToolStripMenuItem_Click(object sender, EventArgs e) {

this.Close();

}

private void button1_Click(object sender, EventArgs e) {

int i = (int)numericUpDown1.Value;

exec_time(0.0+i);

}

private void загрузитьДемоМодельToolStripMenuItem_Click(object sender, EventArgs e)

{

init_model();

}

private void btn_steps_Click(object sender, EventArgs e) {

go_by_steps();

}

private void cb_chart_CheckedChanged(object sender, EventArgs e) {

chart_visible(cb_chart.Checked);

}

static void help(string p_title, string p_text) {

FormHelp frm_help = new FormHelp(p_title,p_text);

frm_help.Show();

}

private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e) {

FormHelp.help_about(build_id);

}

private void языкОписанияМоделиToolStripMenuItem_Click(object sender, EventArgs e) {

FormHelp.help_bnf();

}

void exec_place_expand(TreeNode n, bool i_expand) {

Object tag = n.Tag;

if(tag != null) {

if(tag.GetType() == typeof(Place)) {

Place p = (Place)tag;

p.is_expanded = i_expand;

}

}

}

void exec_change_inst_visual(TreeNode n) {

Object tag = n.Tag;

if (tag != null) {

if (tag.GetType() == typeof(Instance)) {

Instance inst = (Instance)tag;

inst.is_visual = !inst.is_visual;

n.Text = get_inst_title(inst);

}

}

}

private void treeView1_BeforeCollapse(object sender, TreeViewCancelEventArgs e) {

/*

TreeView tv = (TreeView)sender;

alarm("e=" + e + " sender=" + sender

+ " type=" + sender.GetType()

+ " tv="+ tv

+ " selected node=" + tv.SelectedNode

+ "e.node="+e.Node

);

*/

exec_place_expand(e.Node, false);

}

private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e) {

exec_place_expand(e.Node, true);

}

static FormVisual frm_viz;

static FormVisual frm_autonet;

void show_visual_system_net() {

if(m == null) {

status(ml["no_init_model"]/*"Модель не инициализирована: "*/ + DateTime.Now);

return;

}

bool new_form_viz = false;

if(frm_viz == null) {

new_form_viz = true;

} else if(frm_viz.IsDisposed) {

new_form_viz = true;

}

if(new_form_viz) {

frm_viz = new FormVisual(this,VisualNet.system_net);

}

frm_viz.new_dot(trda_file_name);

m.show_system_net(frm_viz);

frm_viz.Show();

frm_viz.Focus();

}

void show_visual_automata_net() {

if (m == null) {

status(ml["no_init_model"]/*"Модель не инициализирована: "*/ + DateTime.Now);

return;

}

bool new_form = false;

if (frm_autonet == null) {

new_form = true;

} else if (frm_autonet.IsDisposed) {

new_form = true;

}

if (new_form) {

frm_autonet = new FormVisual(this,VisualNet.automata_net);

}

frm_autonet.new_dot(trda_file_name);

m.show_automata_net(frm_autonet);

frm_autonet.Show();

frm_autonet.Focus();

}

public void set_visual_automata_net(bool i_do_set) {

is_autonet = i_do_set;

if (i_do_set) {

show_visual_automata_net();

} else {

if (frm_autonet != null) {

frm_autonet.Visible = false;

}

}

cb_autonet.Checked = i_do_set;

}

public void set_visual_system_net(bool i_do_set) {

is_visible = i_do_set;

if(i_do_set) {

show_visual_system_net();

} else {

if(frm_viz != null) {

frm_viz.Visible = false;

}

}

cb_visual.Checked = i_do_set;

}

public void set_visual(bool i_do_set, VisualNet i_net) {

if (i_net == VisualNet.system_net) set_visual_system_net(i_do_set);

if (i_net == VisualNet.automata_net) set_visual_automata_net(i_do_set);

}

static FormRezult frm_rez;

public static void rez(string ss) {

frm_rez.log(ss);

}

void show_rezult() {

if (m == null) {

status(ml["no_init_model"]/*"Модель не инициализирована: "*/ + DateTime.Now);

return;

}

//

bool new_form_rez = false;

if (frm_rez == null) {

new_form_rez = true;

} else if (frm_rez.IsDisposed) {

new_form_rez = true;

}

if (new_form_rez) {

frm_rez = new FormRezult(trda_file_name);

}

//

frm_rez.log_begin();

m.show_rezult();

//

frm_rez.Show();

frm_rez.Focus();

}

private void btn_rezult_Click(object sender, EventArgs e) {

show_rezult();

}

private void cb_Marking_CheckedChanged(object sender, EventArgs e) {

if (m == null) {

error(ml["no_init_model"]/*"Не инициализирована модель"*/);

return;

}

m.set_test_marking(cb_Marking.Checked);

}

private void cb_stop_CheckedChanged(object sender, EventArgs e) {

if (m == null) {

error(ml["no_init_model"]/*"Не инициализирована модель"*/);

return;

}

m.set_test_stop(cb_stop.Checked);

}

private void cb_Finiteness_CheckedChanged(object sender, EventArgs e) {

if(m == null) {

error(ml["no_init_model"]/*"Не инициализирована модель"*/);

return;

}

m.set_test_bounds(cb_Finiteness.Checked);

}

private void cb_lock_CheckedChanged(object sender, EventArgs e) {

if(m == null) {

error(ml["no_init_model"]/*"Не инициализирована модель"*/);

return;

}

m.set_test_lock(cb_lock.Checked);

}

private void panel4_MouseDoubleClick(object sender, MouseEventArgs e) {

show_dump();

}

void set_eng_rus() {

if (MultyLanguage.current_language == MultyLanguage.Language.english) {

set_rus();

} else {

set_eng();

}

}

void set_eng() {

MultyLanguage.current_language = MultyLanguage.Language.english;

set_text();

}

void set_rus() {

MultyLanguage.current_language = MultyLanguage.Language.russian;

set_text();

}

/*

private void btn_visual_Click(object sender, EventArgs e) {

show_visual_system_net();

}

*/

private void cb_visual_CheckedChanged(object sender, EventArgs e) {

set_visual_system_net(cb_visual.Checked);

}

private void cb_autonet_CheckedChanged(object sender, EventArgs e) {

set_visual_automata_net(cb_autonet.Checked);

}

private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) {

exec_change_inst_visual(e.Node);

}

private void englishToolStripMenuItem_Click(object sender, EventArgs e) {

set_eng_rus();

}

}

}

Приложение 12

Form1.Designer.cs

namespace Automata {

partial class Form1 {

/// <summary>

/// Требуется переменная конструктора.

/// </summary>

private System.ComponentModel.IContainer components = null;

/// <summary>

/// Освободить все используемые ресурсы.

/// </summary>

/// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param>

protected override void Dispose(bool disposing) {

if(disposing && (components != null)) {

components.Dispose();

}

base.Dispose(disposing);

}

#region Код, автоматически созданный конструктором форм Windows

/// <summary>

/// Обязательный метод для поддержки конструктора - не изменяйте

/// содержимое данного метода при помощи редактора кода.

/// </summary>

private void InitializeComponent() {

this.statusStrip1 = new System.Windows.Forms.StatusStrip();

this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel();

this.toolStripProgressBar1 = new System.Windows.Forms.ToolStripProgressBar();

this.panel1 = new System.Windows.Forms.Panel();

this.splitContainer1 = new System.Windows.Forms.SplitContainer();

this.treeView1 = new System.Windows.Forms.TreeView();

this.splitContainer2 = new System.Windows.Forms.SplitContainer();

this.cb_autonet = new System.Windows.Forms.CheckBox();

this.cb_visual = new System.Windows.Forms.CheckBox();

this.panel3 = new System.Windows.Forms.Panel();

this.cb_stop = new System.Windows.Forms.CheckBox();

this.cb_lock = new System.Windows.Forms.CheckBox();

this.cb_Finiteness = new System.Windows.Forms.CheckBox();

this.cb_Marking = new System.Windows.Forms.CheckBox();

this.btn_rezult = new System.Windows.Forms.Button();

this.cb_chart = new System.Windows.Forms.CheckBox();

this.btn_chart = new System.Windows.Forms.Button();

this.cb_Trace = new System.Windows.Forms.CheckBox();

this.btn_Trace = new System.Windows.Forms.Button();

this.cb_Log = new System.Windows.Forms.CheckBox();

this.panel2 = new System.Windows.Forms.Panel();

this.panel4 = new System.Windows.Forms.Panel();

this.numericUpDown2 = new System.Windows.Forms.NumericUpDown();

this.btn_steps = new System.Windows.Forms.Button();

this.label1 = new System.Windows.Forms.Label();

this.numericUpDown1 = new System.Windows.Forms.NumericUpDown();

this.btn_time = new System.Windows.Forms.Button();

this.btn_Loop = new System.Windows.Forms.Button();

this.btn_exec = new System.Windows.Forms.Button();

this.lb_Vars = new System.Windows.Forms.ListBox();

this.menuStrip1 = new System.Windows.Forms.MenuStrip();

this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();

this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();

this.загрузитьДемоМодельToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();

this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();

this.englishToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();

this.выходToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();

this.справкаToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();

this.оПрограммеToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();

this.языкОписанияМоделиToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();

this.statusStrip1.SuspendLayout();

this.panel1.SuspendLayout();

this.splitContainer1.Panel1.SuspendLayout();

this.splitContainer1.Panel2.SuspendLayout();

this.splitContainer1.SuspendLayout();

this.splitContainer2.Panel1.SuspendLayout();

this.splitContainer2.Panel2.SuspendLayout();

this.splitContainer2.SuspendLayout();

this.panel3.SuspendLayout();

this.panel2.SuspendLayout();

((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit();

((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit();

this.menuStrip1.SuspendLayout();

this.SuspendLayout();

//

// statusStrip1

//

this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {

this.toolStripStatusLabel1,

this.toolStripProgressBar1});

this.statusStrip1.Location = new System.Drawing.Point(0, 471);

this.statusStrip1.Name = "statusStrip1";

this.statusStrip1.Padding = new System.Windows.Forms.Padding(1, 0, 13, 0);

this.statusStrip1.Size = new System.Drawing.Size(717, 26);

this.statusStrip1.TabIndex = 0;

this.statusStrip1.Text = "statusStrip1";

//

// toolStripStatusLabel1

//

this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";

this.toolStripStatusLabel1.Size = new System.Drawing.Size(141, 21);

this.toolStripStatusLabel1.Text = "toolStripStatusLabel1";

//

// toolStripProgressBar1

//

this.toolStripProgressBar1.Name = "toolStripProgressBar1";

this.toolStripProgressBar1.Size = new System.Drawing.Size(100, 20);

//

// panel1

//

this.panel1.Controls.Add(this.splitContainer1);

this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;

this.panel1.Location = new System.Drawing.Point(0, 26);

this.panel1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.panel1.Name = "panel1";

this.panel1.Size = new System.Drawing.Size(717, 445);

this.panel1.TabIndex = 1;

//

// splitContainer1

//

this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;

this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;

this.splitContainer1.Location = new System.Drawing.Point(0, 0);

this.splitContainer1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.splitContainer1.Name = "splitContainer1";

//

// splitContainer1.Panel1

//

this.splitContainer1.Panel1.Controls.Add(this.treeView1);

//

// splitContainer1.Panel2

//

this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);

this.splitContainer1.Size = new System.Drawing.Size(717, 445);

this.splitContainer1.SplitterDistance = 341;

this.splitContainer1.TabIndex = 0;

//

// treeView1

//

this.treeView1.Dock = System.Windows.Forms.DockStyle.Fill;

this.treeView1.Location = new System.Drawing.Point(0, 0);

this.treeView1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.treeView1.Name = "treeView1";

this.treeView1.Size = new System.Drawing.Size(341, 445);

this.treeView1.TabIndex = 0;

this.treeView1.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView1_NodeMouseDoubleClick);

this.treeView1.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.treeView1_BeforeExpand);

this.treeView1.BeforeCollapse += new System.Windows.Forms.TreeViewCancelEventHandler(this.treeView1_BeforeCollapse);

//

// splitContainer2

//

this.splitContainer2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;

this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;

this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;

this.splitContainer2.Location = new System.Drawing.Point(0, 0);

this.splitContainer2.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.splitContainer2.Name = "splitContainer2";

this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal;

//

// splitContainer2.Panel1

//

this.splitContainer2.Panel1.Controls.Add(this.cb_autonet);

this.splitContainer2.Panel1.Controls.Add(this.cb_visual);

this.splitContainer2.Panel1.Controls.Add(this.panel3);

this.splitContainer2.Panel1.Controls.Add(this.btn_rezult);

this.splitContainer2.Panel1.Controls.Add(this.cb_chart);

this.splitContainer2.Panel1.Controls.Add(this.btn_chart);

this.splitContainer2.Panel1.Controls.Add(this.cb_Trace);

this.splitContainer2.Panel1.Controls.Add(this.btn_Trace);

this.splitContainer2.Panel1.Controls.Add(this.cb_Log);

//

// splitContainer2.Panel2

//

this.splitContainer2.Panel2.Controls.Add(this.panel2);

this.splitContainer2.Panel2.Controls.Add(this.lb_Vars);

this.splitContainer2.Size = new System.Drawing.Size(372, 445);

this.splitContainer2.SplitterDistance = 219;

this.splitContainer2.TabIndex = 10;

//

// cb_autonet

//

this.cb_autonet.AutoSize = true;

this.cb_autonet.Location = new System.Drawing.Point(156, 47);

this.cb_autonet.Name = "cb_autonet";

this.cb_autonet.Size = new System.Drawing.Size(142, 21);

this.cb_autonet.TabIndex = 15;

this.cb_autonet.Text = "Автоматная сеть";

this.cb_autonet.UseVisualStyleBackColor = true;

this.cb_autonet.CheckedChanged += new System.EventHandler(this.cb_autonet_CheckedChanged);

//

// cb_visual

//

this.cb_visual.AutoSize = true;

this.cb_visual.Location = new System.Drawing.Point(156, 24);

this.cb_visual.Name = "cb_visual";

this.cb_visual.Size = new System.Drawing.Size(135, 21);

this.cb_visual.TabIndex = 14;

this.cb_visual.Text = "Системная сеть";

this.cb_visual.UseVisualStyleBackColor = true;

this.cb_visual.CheckedChanged += new System.EventHandler(this.cb_visual_CheckedChanged);

//

// panel3

//

this.panel3.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;

this.panel3.Controls.Add(this.cb_stop);

this.panel3.Controls.Add(this.cb_lock);

this.panel3.Controls.Add(this.cb_Finiteness);

this.panel3.Controls.Add(this.cb_Marking);

this.panel3.Location = new System.Drawing.Point(147, 125);

this.panel3.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.panel3.Name = "panel3";

this.panel3.Size = new System.Drawing.Size(217, 89);

this.panel3.TabIndex = 13;

//

// cb_stop

//

this.cb_stop.AutoSize = true;

this.cb_stop.Location = new System.Drawing.Point(29, 30);

this.cb_stop.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.cb_stop.Name = "cb_stop";

this.cb_stop.Size = new System.Drawing.Size(181, 21);

this.cb_stop.TabIndex = 3;

this.cb_stop.Text = "Пауза при нахождении";

this.cb_stop.UseVisualStyleBackColor = true;

this.cb_stop.CheckedChanged += new System.EventHandler(this.cb_stop_CheckedChanged);

//

// cb_lock

//

this.cb_lock.AutoSize = true;

this.cb_lock.Checked = true;

this.cb_lock.CheckState = System.Windows.Forms.CheckState.Checked;

this.cb_lock.Location = new System.Drawing.Point(11, 84);

this.cb_lock.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.cb_lock.Name = "cb_lock";

this.cb_lock.Size = new System.Drawing.Size(144, 21);

this.cb_lock.TabIndex = 2;

this.cb_lock.Text = "Наличие тупиков";

this.cb_lock.UseVisualStyleBackColor = true;

this.cb_lock.Visible = false;

this.cb_lock.CheckedChanged += new System.EventHandler(this.cb_lock_CheckedChanged);

//

// cb_Finiteness

//

this.cb_Finiteness.AutoSize = true;

this.cb_Finiteness.Location = new System.Drawing.Point(11, 57);

this.cb_Finiteness.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.cb_Finiteness.Name = "cb_Finiteness";

this.cb_Finiteness.Size = new System.Drawing.Size(139, 21);

this.cb_Finiteness.TabIndex = 1;

this.cb_Finiteness.Text = "Ограниченность";

this.cb_Finiteness.UseVisualStyleBackColor = true;

this.cb_Finiteness.CheckedChanged += new System.EventHandler(this.cb_Finiteness_CheckedChanged);

//

// cb_Marking

//

this.cb_Marking.AutoSize = true;

this.cb_Marking.Location = new System.Drawing.Point(11, 2);

this.cb_Marking.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.cb_Marking.Name = "cb_Marking";

this.cb_Marking.Size = new System.Drawing.Size(126, 21);

this.cb_Marking.TabIndex = 0;

this.cb_Marking.Text = "Достижимость";

this.cb_Marking.UseVisualStyleBackColor = true;

this.cb_Marking.CheckedChanged += new System.EventHandler(this.cb_Marking_CheckedChanged);

//

// btn_rezult

//

this.btn_rezult.Location = new System.Drawing.Point(11, 125);

this.btn_rezult.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.btn_rezult.Name = "btn_rezult";

this.btn_rezult.Size = new System.Drawing.Size(128, 89);

this.btn_rezult.TabIndex = 12;

this.btn_rezult.Text = "Результаты анализа";

this.btn_rezult.UseVisualStyleBackColor = true;

this.btn_rezult.Click += new System.EventHandler(this.btn_rezult_Click);

//

// cb_chart

//

this.cb_chart.AutoSize = true;

this.cb_chart.Location = new System.Drawing.Point(156, 2);

this.cb_chart.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.cb_chart.Name = "cb_chart";

this.cb_chart.Size = new System.Drawing.Size(104, 21);

this.cb_chart.TabIndex = 11;

this.cb_chart.Text = "Диаграмма";

this.cb_chart.UseVisualStyleBackColor = true;

this.cb_chart.CheckedChanged += new System.EventHandler(this.cb_chart_CheckedChanged);

//

// btn_chart

//

this.btn_chart.Location = new System.Drawing.Point(11, 1);

this.btn_chart.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.btn_chart.Name = "btn_chart";

this.btn_chart.Size = new System.Drawing.Size(128, 50);

this.btn_chart.TabIndex = 3;

this.btn_chart.Text = "Временная диаграмма";

this.btn_chart.UseVisualStyleBackColor = true;

this.btn_chart.Click += new System.EventHandler(this.btn_chart_Click);

//

// cb_Trace

//

this.cb_Trace.AutoSize = true;

this.cb_Trace.Location = new System.Drawing.Point(156, 98);

this.cb_Trace.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.cb_Trace.Name = "cb_Trace";

this.cb_Trace.Size = new System.Drawing.Size(164, 21);

this.cb_Trace.TabIndex = 10;

this.cb_Trace.Text = "Только трассировка";

this.cb_Trace.UseVisualStyleBackColor = true;

this.cb_Trace.CheckedChanged += new System.EventHandler(this.cb_Trace_CheckedChanged);

//

// btn_Trace

//

this.btn_Trace.Location = new System.Drawing.Point(11, 57);

this.btn_Trace.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.btn_Trace.Name = "btn_Trace";

this.btn_Trace.Size = new System.Drawing.Size(128, 37);

this.btn_Trace.TabIndex = 9;

this.btn_Trace.Text = "Трассировка";

this.btn_Trace.UseVisualStyleBackColor = true;

this.btn_Trace.Click += new System.EventHandler(this.btn_Trace_Click);

//

// cb_Log

//

this.cb_Log.AutoSize = true;

this.cb_Log.Location = new System.Drawing.Point(156, 73);

this.cb_Log.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.cb_Log.Name = "cb_Log";

this.cb_Log.Size = new System.Drawing.Size(82, 21);

this.cb_Log.TabIndex = 8;

this.cb_Log.Text = "Журнал";

this.cb_Log.UseVisualStyleBackColor = true;

this.cb_Log.CheckedChanged += new System.EventHandler(this.cb_Log_CheckedChanged);

//

// panel2

//

this.panel2.Controls.Add(this.panel4);

this.panel2.Controls.Add(this.numericUpDown2);

this.panel2.Controls.Add(this.btn_steps);

this.panel2.Controls.Add(this.label1);

this.panel2.Controls.Add(this.numericUpDown1);

this.panel2.Controls.Add(this.btn_time);

this.panel2.Controls.Add(this.btn_Loop);

this.panel2.Controls.Add(this.btn_exec);

this.panel2.Dock = System.Windows.Forms.DockStyle.Bottom;

this.panel2.Location = new System.Drawing.Point(0, 150);

this.panel2.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.panel2.Name = "panel2";

this.panel2.Size = new System.Drawing.Size(370, 70);

this.panel2.TabIndex = 7;

//

// panel4

//

this.panel4.Location = new System.Drawing.Point(347, 6);

this.panel4.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.panel4.Name = "panel4";

this.panel4.Size = new System.Drawing.Size(25, 20);

this.panel4.TabIndex = 13;

this.panel4.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.panel4_MouseDoubleClick);

//

// numericUpDown2

//

this.numericUpDown2.Location = new System.Drawing.Point(16, 39);

this.numericUpDown2.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.numericUpDown2.Maximum = new decimal(new int[] {

500,

0,

0,

0});

this.numericUpDown2.Name = "numericUpDown2";

this.numericUpDown2.Size = new System.Drawing.Size(53, 22);

this.numericUpDown2.TabIndex = 12;

this.numericUpDown2.Value = new decimal(new int[] {

50,

0,

0,

0});

//

// btn_steps

//

this.btn_steps.Location = new System.Drawing.Point(209, 2);

this.btn_steps.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.btn_steps.Name = "btn_steps";

this.btn_steps.Size = new System.Drawing.Size(124, 27);

this.btn_steps.TabIndex = 11;

this.btn_steps.Text = "По шагам";

this.btn_steps.UseVisualStyleBackColor = true;

this.btn_steps.Click += new System.EventHandler(this.btn_steps_Click);

//

// label1

//

this.label1.AutoSize = true;

this.label1.Location = new System.Drawing.Point(13, 6);

this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);

this.label1.Name = "label1";

this.label1.Size = new System.Drawing.Size(67, 17);

this.label1.TabIndex = 10;

this.label1.Text = "Сделать:";

//

// numericUpDown1

//

this.numericUpDown1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));

this.numericUpDown1.Location = new System.Drawing.Point(316, 41);

this.numericUpDown1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.numericUpDown1.Maximum = new decimal(new int[] {

500,

0,

0,

0});

this.numericUpDown1.Minimum = new decimal(new int[] {

1,

0,

0,

0});

this.numericUpDown1.Name = "numericUpDown1";

this.numericUpDown1.Size = new System.Drawing.Size(52, 22);

this.numericUpDown1.TabIndex = 9;

this.numericUpDown1.Value = new decimal(new int[] {

50,

0,

0,

0});

//

// btn_time

//

this.btn_time.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));

this.btn_time.Location = new System.Drawing.Point(222, 39);

this.btn_time.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.btn_time.Name = "btn_time";

this.btn_time.Size = new System.Drawing.Size(77, 26);

this.btn_time.TabIndex = 7;

this.btn_time.Text = "время +";

this.btn_time.UseVisualStyleBackColor = true;

this.btn_time.Click += new System.EventHandler(this.button1_Click);

//

// btn_Loop

//

this.btn_Loop.Location = new System.Drawing.Point(87, 36);

this.btn_Loop.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.btn_Loop.Name = "btn_Loop";

this.btn_Loop.Size = new System.Drawing.Size(83, 30);

this.btn_Loop.TabIndex = 6;

this.btn_Loop.Text = "шагов";

this.btn_Loop.UseVisualStyleBackColor = true;

this.btn_Loop.Click += new System.EventHandler(this.btn_Loop_Click);

//

// btn_exec

//

this.btn_exec.Location = new System.Drawing.Point(87, 1);

this.btn_exec.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.btn_exec.Name = "btn_exec";

this.btn_exec.Size = new System.Drawing.Size(83, 31);

this.btn_exec.TabIndex = 5;

this.btn_exec.Text = "1 шаг";

this.btn_exec.UseVisualStyleBackColor = true;

this.btn_exec.Click += new System.EventHandler(this.btn_exec_Click);

//

// lb_Vars

//

this.lb_Vars.Dock = System.Windows.Forms.DockStyle.Fill;

this.lb_Vars.FormattingEnabled = true;

this.lb_Vars.ItemHeight = 16;

this.lb_Vars.Location = new System.Drawing.Point(0, 0);

this.lb_Vars.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);

this.lb_Vars.Name = "lb_Vars";

this.lb_Vars.Size = new System.Drawing.Size(370, 212);

this.lb_Vars.TabIndex = 6;

this.lb_Vars.DoubleClick += new System.EventHandler(this.lb_Vars_DoubleClick);

//

// menuStrip1

//

this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {

this.fileToolStripMenuItem,

this.справкаToolStripMenuItem});

this.menuStrip1.Location = new System.Drawing.Point(0, 0);

this.menuStrip1.Name = "menuStrip1";

this.menuStrip1.Padding = new System.Windows.Forms.Padding(5, 2, 0, 2);

this.menuStrip1.Size = new System.Drawing.Size(717, 26);

this.menuStrip1.TabIndex = 2;

this.menuStrip1.Text = "menuStrip1";

//

// fileToolStripMenuItem

//

this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {

this.openToolStripMenuItem,

this.загрузитьДемоМодельToolStripMenuItem,

this.saveToolStripMenuItem,

this.englishToolStripMenuItem,

this.выходToolStripMenuItem});

this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";

this.fileToolStripMenuItem.Size = new System.Drawing.Size(54, 22);

this.fileToolStripMenuItem.Text = "Файл";

//

// openToolStripMenuItem

//

this.openToolStripMenuItem.Name = "openToolStripMenuItem";

this.openToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O)));

this.openToolStripMenuItem.Size = new System.Drawing.Size(254, 22);

this.openToolStripMenuItem.Text = "Открыть";

this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click);

//

// загрузитьДемоМодельToolStripMenuItem

//

this.загрузитьДемоМодельToolStripMenuItem.Name = "загрузитьДемоМодельToolStripMenuItem";

this.загрузитьДемоМодельToolStripMenuItem.Size = new System.Drawing.Size(254, 22);

this.загрузитьДемоМодельToolStripMenuItem.Text = "Загрузить демо модель";

this.загрузитьДемоМодельToolStripMenuItem.Click += new System.EventHandler(this.загрузитьДемоМодельToolStripMenuItem_Click);

//

// saveToolStripMenuItem

//

this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";

this.saveToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));

this.saveToolStripMenuItem.Size = new System.Drawing.Size(254, 22);

this.saveToolStripMenuItem.Text = "Сохранить";

this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click);

//

// englishToolStripMenuItem

//

this.englishToolStripMenuItem.Name = "englishToolStripMenuItem";

this.englishToolStripMenuItem.Size = new System.Drawing.Size(254, 22);

this.englishToolStripMenuItem.Text = "English/Русский";

this.englishToolStripMenuItem.Click += new System.EventHandler(this.englishToolStripMenuItem_Click);

//

// выходToolStripMenuItem

//

this.выходToolStripMenuItem.Name = "выходToolStripMenuItem";

this.выходToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Q)));

this.выходToolStripMenuItem.Size = new System.Drawing.Size(254, 22);

this.выходToolStripMenuItem.Text = "Выход";

this.выходToolStripMenuItem.Click += new System.EventHandler(this.выходToolStripMenuItem_Click);

//

// справкаToolStripMenuItem

//

this.справкаToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {

this.оПрограммеToolStripMenuItem,

this.языкОписанияМоделиToolStripMenuItem});

this.справкаToolStripMenuItem.Name = "справкаToolStripMenuItem";

this.справкаToolStripMenuItem.Size = new System.Drawing.Size(76, 22);

this.справкаToolStripMenuItem.Text = "Справка";

//

// оПрограммеToolStripMenuItem

//

this.оПрограммеToolStripMenuItem.Name = "оПрограммеToolStripMenuItem";

this.оПрограммеToolStripMenuItem.Size = new System.Drawing.Size(247, 22);

this.оПрограммеToolStripMenuItem.Text = "О программе";

this.оПрограммеToolStripMenuItem.Click += new System.EventHandler(this.оПрограммеToolStripMenuItem_Click);

//

// языкОписанияМоделиToolStripMenuItem

//

this.языкОписанияМоделиToolStripMenuItem.Name = "языкОписанияМоделиToolStripMenuItem";

this.языкОписанияМоделиToolStripMenuItem.Size = new System.Drawing.Size(247, 22);

this.языкОписанияМоделиToolStripMenuItem.Text = "Язык описания модели";

this.языкОписанияМоделиToolStripMenuI...


Подобные документы

  • Обзор средств компьютерного имитационного моделирования по созданию веб-приложения для визуализации имитационных моделей. Система имитационного моделирования AnyLogic, Arena, SimuLab. Серверная, клиентская часть. Модель работы отдела банка и участка цеха.

    дипломная работа [3,3 M], добавлен 25.05.2015

  • Проектирование и реализация модели, которая будет имитировать автозаправочную станцию с постоплатой. Подбор оптимальных параметров модели с учетом требований к сети массового обслуживания. Разработка модели в среде имитационного моделирования GPSS World.

    контрольная работа [279,5 K], добавлен 16.03.2014

  • Создание систем имитационного моделирования AnyLogic, Arena, SimuLab, Simbigraph и Forio. Серверная и клиентская часть. Разработка модели работы отдела банка, участка цеха, движения автобуса по маршруту и социальной сети. Описание web-приложения.

    дипломная работа [3,4 M], добавлен 25.05.2015

  • Разработка имитационной модели "Перекресток" для анализа бизнес-процессов предприятия и принятия решения в сложных условиях. Алгоритм построения имитационной модели на основе CASE-средств. Обзор программного обеспечения для имитационного моделирования.

    дипломная работа [2,6 M], добавлен 22.11.2015

  • Описание комплекса программных модулей, предназначенного для повышения эффективности аппаратных ресурсов компьютера. Характеристика компонентов сетевых и распределенных операционных систем. Модели сетевых служб. Способы разделения приложений на части.

    презентация [1,4 M], добавлен 10.11.2013

  • Роль гидродинамических процессов в современной технике и технологиях. Необходимость использования компьютерных методов при моделировании. Обзор дискретных моделей решетчатых газов. Соответствие реальных величин параметрам модели. Программное обеспечение.

    дипломная работа [1,6 M], добавлен 22.04.2012

  • Понятие компьютерной и информационной модели. Задачи компьютерного моделирования. Дедуктивный и индуктивный принципы построения моделей, технология их построения. Этапы разработки и исследования моделей на компьютере. Метод имитационного моделирования.

    реферат [29,6 K], добавлен 23.03.2010

  • Центральные магистрали передачи данных. Улучшение параметров мультисервисной сети за счет использования имитационного моделирования. Сети с трансляцией ячеек и с установлением соединения. Коммутация в сети Ethernet. Многоуровневая модель протоколов.

    курсовая работа [2,3 M], добавлен 25.06.2014

  • Значение вербальных и знаковых информационных моделей для исследования объектов, процессов, явлений. Роль метода формализации в процессе создания компьютерной модели. Использование программы AutoCAD для трехмерного моделирования и визуализации объекта.

    курсовая работа [866,5 K], добавлен 08.01.2015

  • Обзор пакетов программ, предназначенных для визуализации и анализа данных. Обоснование выбора среды программирования. Организация аварийного буфера. Передача данных от нижнего уровня к верхнему и сохранение данных. Отображение данных в графической форме.

    дипломная работа [512,4 K], добавлен 28.08.2012

  • Характеристики распределенных систем баз данных, формируемые путем "интеграции" разнородных аппаратных и программных средств. Концепция дифференциального файла для различных приложений. Сравнение разных технологий файлового сервера и "клиент-сервера".

    курсовая работа [411,9 K], добавлен 28.05.2015

  • Основы технологии моделирования Arena. Построение простой имитационной модели. Моделирование работы системы обслуживания покупателей на кассе супермаркета. Построение модели IDEF3. Анализ результатов имитационного моделирования и аналитического решения.

    курсовая работа [659,1 K], добавлен 24.03.2012

  • Сущность концептуального и физического моделирования. Описание графической среды AnyLogic как единственного инструмента имитационного моделирования. Основные этапы создания модели, позволяющей наглядно проанализировать влияние рекламы на покупателей.

    курсовая работа [690,2 K], добавлен 30.05.2014

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

    дипломная работа [7,3 M], добавлен 09.02.2017

  • Основы систематизации языков имитационного моделирования, моделирование систем и языки программирования. Особенности использования алгоритмических языков, подходы к их разработке. Анализ характеристик и эффективности языков имитационного моделирования.

    курсовая работа [1,4 M], добавлен 15.03.2012

  • Особенности систем массового обслуживания и сущность имитационного моделирования с использованием GPSS. Структурная схема модели системы и временная диаграмма. Сравнение результатов имитационного моделирования и аналитического расчета характеристик.

    курсовая работа [214,2 K], добавлен 23.06.2011

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

    курсовая работа [556,1 K], добавлен 23.04.2011

  • Математическое описание имитационной модели. Описание блок-схемы алгоритма. Анализ полученных результатов имитационного моделирования. Сопоставление полученных результатов для разработанных моделей. Математическое описание аналитического моделирования.

    курсовая работа [306,5 K], добавлен 25.03.2015

  • Особенности моделирования биологических систем с использованием программы "AnyLogic". Влияние различных факторов на популяции жертв и хищников. Принципы имитационного моделирования и его общий алгоритм с помощью ЭВМ. Анализ результатов моделирования.

    курсовая работа [922,2 K], добавлен 30.01.2016

  • Характеристика функций имитационного моделирования. Знакомство с особенностями имитационного моделирования агрегированной системы массового обслуживания. Анализ программы GPSSWorld: рассмотрение возможностей, способы составления имитационной модели.

    курсовая работа [1,6 M], добавлен 27.05.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.