Beispiel #1
0
        // Обработка нажатия кнопки для вывода дочерних узлов
        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);
            }
        }
Beispiel #2
0
        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);
            }
        }