// Обработка нажатия кнопки для вывода дочерних узлов private void GetChildsNodesBtn_Click(object sender, EventArgs e) { try { // Должне быть выбран один из узлов в выпадающем списке string nodeName = NodesCmb3.Text; if (nodeName == string.Empty) { // Иначе выбрасывается исключение throw new Exception("Выберите вершину."); } // Предварительная очистка списка ChildsNodesListBox.Items.Clear(); // Создание нового экземпляра МЛВ и получение нового списка узлов engine = new InferenceEngine(nodes, questions); List <string> nodesNames = engine.GetChildNodesNamesByNodeName(nodeName); // Вывод списка на форму if (nodesNames.Count == 0) { ChildsNodesListBox.Items.Add("Дочерних узлов не обнаружено."); } else { foreach (string name in nodesNames) { ChildsNodesListBox.Items.Add(name); } } } catch (Exception ex) { // Вывод ошибки в случае ошибки MessageBox.Show(ex.Message); } }
private void GetConclusionBtn_Click(object sender, EventArgs e) { try { string dependentNodeName = NodesCmb1.Text; // предполагаемый зависимый узел string parentNodeName = NodesCmb2.Text; // предполагаемый "старший" узел string questionText = QuestionsCmb.Text; if (dependentNodeName == string.Empty || parentNodeName == string.Empty || questionText == string.Empty) { throw new Exception("Выберите вершины и тип вопроса."); } engine = new InferenceEngine(nodes, questions); bool result = engine.GetConclusion(parentNodeName, dependentNodeName, questionText); MessageBox.Show(result.ToString()); } catch (Exception ex) { MessageBox.Show(ex.Message); } }