public frmQuestion(Variable g, ExpertSystem res) { InitializeComponent(); this.g = g; this.res = res; if (g.Question == null || g.Question.Trim() == "") { textBox1.Text = g.Name + " = ?"; } else { textBox1.Text = g.Question; } int i = 0; foreach (string s in g.Domain.ListVal) { RadioButton rb = new RadioButton(); rb.AutoSize = true; rb.Text = s; rbList.Add(rb); rb.Parent = groupBox1; rb.Left = 50; rb.Top = ++i * 25; } rbList[0].Checked = true; }
/// <summary> /// Создание новой ЭС /// </summary> private void создатьToolStripMenuItem_Click(object sender, EventArgs e) { try { if (saveFileDialog1.ShowDialog() == DialogResult.OK) { tempES = new ExpertSystem(); tempFile = saveFileDialog1.FileName; if (File.Exists(tempFile)) { File.Delete(tempFile); } using (FileStream fs = File.Create(tempFile)) { } StartES(); saved = true; } } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); FinishES(); } }
public Fact Запросить(Variable g, ExpertSystem es) { frmQuestion fq = new frmQuestion(g, es); fq.ShowDialog(); Fact f = new Fact(g, es.res as string, Rightly.Yes); return(f); }
public frmRules(ExpertSystem es) { InitializeComponent(); this.es = es; // копия коллекции и вывод foreach (string s in es.Rules.Keys) { rules.Add(s, es.Rules[s]); lstRules.Items.Add(s + ": " + es.Rules[s].ToString()); } lstRules.SelectedIndex = -1; }
public frmExplain(ExpertSystem es) { InitializeComponent(); tempES = es; foreach (Rule r in es.Rules.Vals) { if (r.Worked != RuleWork.No) { treeView2.Nodes.Add(r.Name, r.Name); treeView2.Nodes[r.Name].Nodes.Add(r.Name + "ЕСЛИ", "ЕСЛИ"); treeView2.Nodes[r.Name].Nodes.Add(r.Name + "ТО", "ТО"); treeView2.Nodes[r.Name].Nodes.Add(r.Name + "ТК", "ТАК КАК"); foreach (Fact f in r.Reasons) { treeView2.Nodes[r.Name].Nodes[r.Name + "ЕСЛИ"].Nodes.Add(f.ToString()); } treeView2.Nodes[r.Name].Nodes[r.Name + "ТО"].Nodes.Add(r.Result.ToString()); treeView2.Nodes[r.Name].Nodes[r.Name + "ТК"].Nodes.Add(r.Reasoning); treeView2.Nodes[r.Name].ExpandAll(); } } foreach (Rule r in es.WorkedRules) { if (r.Worked == RuleWork.Signifi) { treeView1.Nodes.Add(r.Name, r.Name); treeView1.Nodes[r.Name].Nodes.Add(r.Name + "ЕСЛИ", "ЕСЛИ"); treeView1.Nodes[r.Name].Nodes.Add(r.Name + "ТО", "ТО"); treeView1.Nodes[r.Name].Nodes.Add(r.Name + "ТК", "ТАК КАК"); foreach (Fact f in r.Reasons) { treeView1.Nodes[r.Name].Nodes[r.Name + "ЕСЛИ"].Nodes.Add(f.ToString()); } treeView1.Nodes[r.Name].Nodes[r.Name + "ТО"].Nodes.Add(r.Result.ToString()); treeView1.Nodes[r.Name].Nodes[r.Name + "ТК"].Nodes.Add(r.Reasoning); treeView1.Nodes[r.Name].ExpandAll(); } } listBox1.Items.Clear(); listBox1.Items.Add("------ Установленные факты ------"); foreach (Fact fact in es.Proved) { if (fact.Truly == Rightly.Yes && !listBox1.Items.Contains(fact.ToString())) { listBox1.Items.Add(fact.ToString()); } } }
public frmGoal(ExpertSystem es, frmMain mother) { InitializeComponent(); foreach (string s in es.Vars.Keys) { if (es.Vars[s].MyType != VarType.Queried) { comboBox1.Items.Add(s); } } this.es = es; this.mother = mother; }
public frmDomains(ExpertSystem es) { InitializeComponent(); this.es = es; foreach (string s in es.Domains.Keys) { domains.Add(s, es.Domains[s]); } foreach (string s in es.Vars.Keys) { vars.Add(s, es.Vars[s]); } foreach (string d in domains.Keys) { listBox1.Items.Add(d); } }
/// <summary> /// Кнопка "Открыть" /// </summary> private void открытьToolStripMenuItem_Click(object sender, EventArgs e) { try { if (openFileDialog1.ShowDialog() == DialogResult.OK) { BinaryFormatter bf = new BinaryFormatter(); FileStream fs = File.OpenRead(openFileDialog1.FileName); tempES = (ExpertSystem)bf.Deserialize(fs); fs.Close(); tempFile = openFileDialog1.FileName; StartES(); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); FinishES(); } }
public frmVariables(ExpertSystem es) { InitializeComponent(); this.es = es; // копируем коллекции foreach (string s in es.Vars.Keys) { vars.Add(s, es.Vars[s]); } listBox1.Tag = -1; // на форму foreach (string s in vars.Keys) { listBox1.Items.Add(s); } foreach (string s in es.Domains.Keys) { comboBox1.Items.Add(s); } }
public frmExplain(ExpertSystem es) { InitializeComponent(); // Добавление каринок Image imgW = global::ЭС.Properties.Resources.Worked; Image imgUW = global::ЭС.Properties.Resources.Unworked; //treeView1.ImageList = new ImageList(); //treeView1.ImageList.Images.Add("Sign", imgW); //treeView1.ImageList.Images.Add("Unsign", imgUW); //treeView2.ImageList = new ImageList(); //treeView2.ImageList.Images.Add("Sign", imgW); //treeView2.ImageList.Images.Add("Unsign", imgUW); tempES = es; bool lol = false; foreach (Rule r in es.Rules.Vals) { if (r.Worked != RuleWork.No) { treeView2.Nodes.Add(r.Name, r.Name); treeView2.Nodes[r.Name].Nodes.Add(r.Name + "ЕСЛИ", "ЕСЛИ"); treeView2.Nodes[r.Name].Nodes.Add(r.Name + "ТО", "ТО"); treeView2.Nodes[r.Name].Nodes.Add(r.Name + "ТК", "ТАК КАК"); foreach (Fact f in r.Reasons) { treeView2.Nodes[r.Name].Nodes[r.Name + "ЕСЛИ"].Nodes.Add(f.ToString()); } treeView2.Nodes[r.Name].Nodes[r.Name + "ТО"].Nodes.Add(r.Result.ToString()); treeView2.Nodes[r.Name].Nodes[r.Name + "ТК"].Nodes.Add(r.Reasoning); treeView2.Nodes[r.Name].ExpandAll(); } //if (r.Worked == RuleWork.Signifi) //{ // treeView2.Nodes[r.Name].ImageIndex = 0; // treeView2.Nodes[r.Name].SelectedImageIndex = 0; //} //else if (r.Worked == RuleWork.Unsignify) //{ // treeView2.Nodes[r.Name].ImageIndex = 1; // treeView2.Nodes[r.Name].SelectedImageIndex = 1; //} } foreach (Rule r in es.WorkedRules) { if (r.Worked == RuleWork.Signifi) { treeView1.Nodes.Add(r.Name, r.Name); treeView1.Nodes[r.Name].Nodes.Add(r.Name + "ЕСЛИ", "ЕСЛИ"); treeView1.Nodes[r.Name].Nodes.Add(r.Name + "ТО", "ТО"); treeView1.Nodes[r.Name].Nodes.Add(r.Name + "ТК", "ТАК КАК"); foreach (Fact f in r.Reasons) { treeView1.Nodes[r.Name].Nodes[r.Name + "ЕСЛИ"].Nodes.Add(f.ToString()); } treeView1.Nodes[r.Name].Nodes[r.Name + "ТО"].Nodes.Add(r.Result.ToString()); treeView1.Nodes[r.Name].Nodes[r.Name + "ТК"].Nodes.Add(r.Reasoning); treeView1.Nodes[r.Name].ExpandAll(); //treeView1.Nodes[r.Name].ImageIndex = 0; } } listBox1.Items.Clear(); listBox1.Items.Add("------ Установленные факты ------"); foreach (Fact fact in es.Proved) { if (fact.Truly == Rightly.Yes && !listBox1.Items.Contains(fact.ToString())) { listBox1.Items.Add(fact.ToString()); } } }
private void закрытьToolStripMenuItem_Click(object sender, EventArgs e) { tempES = null; FinishES(); saved = true; }