📄 ruleseditorfrm.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl\vcl.h>
#pragma hdrstop
#include "RulesEditorFrm.h"
#include "MainFrm.h"
//---------------------------------------------------------------------------
#pragma link "cspin"
#pragma resource "*.dfm"
TRulesEditorForm *RulesEditorForm;
//---------------------------------------------------------------------------
__fastcall TRulesEditorForm::TRulesEditorForm(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TRulesEditorForm::FormShow(TObject *Sender)
{
int VeryLow;
int Low;
int Medium;
int High;
int VeryHigh;
number_of_output_fuzzysets = 0;
for (int i=0; i<MAX_FUZZYSETS_PER_VARIABLE; i++)
{
if (FuzzyController->output_variable->fuzzysets[i] != NULL)
{
number_of_output_fuzzysets++;
}
else
{
break;
}
}
if (number_of_output_fuzzysets == 3)
{
VeryLow = -1;
Low = 0;
Medium = 1;
High = 2;
VeryHigh= -1;
r1outComboBox->Items->Clear();
r1outComboBox->Items->Add("Low");
r1outComboBox->Items->Add("Medium");
r1outComboBox->Items->Add("High");
r2outComboBox->Items->Clear();
r2outComboBox->Items->Add("Low");
r2outComboBox->Items->Add("Medium");
r2outComboBox->Items->Add("High");
r3outComboBox->Items->Clear();
r3outComboBox->Items->Add("Low");
r3outComboBox->Items->Add("Medium");
r3outComboBox->Items->Add("High");
r4outComboBox->Items->Clear();
r4outComboBox->Items->Add("Low");
r4outComboBox->Items->Add("Medium");
r4outComboBox->Items->Add("High");
r5outComboBox->Items->Clear();
r5outComboBox->Items->Add("Low");
r5outComboBox->Items->Add("Medium");
r5outComboBox->Items->Add("High");
r6outComboBox->Items->Clear();
r6outComboBox->Items->Add("Low");
r6outComboBox->Items->Add("Medium");
r6outComboBox->Items->Add("High");
r7outComboBox->Items->Clear();
r7outComboBox->Items->Add("Low");
r7outComboBox->Items->Add("Medium");
r7outComboBox->Items->Add("High");
r8outComboBox->Items->Clear();
r8outComboBox->Items->Add("Low");
r8outComboBox->Items->Add("Medium");
r8outComboBox->Items->Add("High");
r9outComboBox->Items->Clear();
r9outComboBox->Items->Add("Low");
r9outComboBox->Items->Add("Medium");
r9outComboBox->Items->Add("High");
}
else if (number_of_output_fuzzysets == 5)
{
VeryLow = 0;
Low = 1;
Medium = 2;
High = 3;
VeryHigh= 4;
r1outComboBox->Items->Clear();
r1outComboBox->Items->Add("VeryLow");
r1outComboBox->Items->Add("Low");
r1outComboBox->Items->Add("Medium");
r1outComboBox->Items->Add("High");
r1outComboBox->Items->Add("VeryHigh");
r2outComboBox->Items->Clear();
r2outComboBox->Items->Add("VeryLow");
r2outComboBox->Items->Add("Low");
r2outComboBox->Items->Add("Medium");
r2outComboBox->Items->Add("High");
r2outComboBox->Items->Add("VeryHigh");
r3outComboBox->Items->Clear();
r3outComboBox->Items->Add("VeryLow");
r3outComboBox->Items->Add("Low");
r3outComboBox->Items->Add("Medium");
r3outComboBox->Items->Add("High");
r3outComboBox->Items->Add("VeryHigh");
r4outComboBox->Items->Clear();
r4outComboBox->Items->Add("VeryLow");
r4outComboBox->Items->Add("Low");
r4outComboBox->Items->Add("Medium");
r4outComboBox->Items->Add("High");
r4outComboBox->Items->Add("VeryHigh");
r5outComboBox->Items->Clear();
r5outComboBox->Items->Add("VeryLow");
r5outComboBox->Items->Add("Low");
r5outComboBox->Items->Add("Medium");
r5outComboBox->Items->Add("High");
r5outComboBox->Items->Add("VeryHigh");
r6outComboBox->Items->Clear();
r6outComboBox->Items->Add("VeryLow");
r6outComboBox->Items->Add("Low");
r6outComboBox->Items->Add("Medium");
r6outComboBox->Items->Add("High");
r6outComboBox->Items->Add("VeryHigh");
r7outComboBox->Items->Clear();
r7outComboBox->Items->Add("VeryLow");
r7outComboBox->Items->Add("Low");
r7outComboBox->Items->Add("Medium");
r7outComboBox->Items->Add("High");
r7outComboBox->Items->Add("VeryHigh");
r8outComboBox->Items->Clear();
r8outComboBox->Items->Add("VeryLow");
r8outComboBox->Items->Add("Low");
r8outComboBox->Items->Add("Medium");
r8outComboBox->Items->Add("High");
r8outComboBox->Items->Add("VeryHigh");
r9outComboBox->Items->Clear();
r9outComboBox->Items->Add("VeryLow");
r9outComboBox->Items->Add("Low");
r9outComboBox->Items->Add("Medium");
r9outComboBox->Items->Add("High");
r9outComboBox->Items->Add("VeryHigh");
}
if(FuzzyController != NULL)
{
// setup predicate's premises
r1in1ComboBox->ItemIndex = 0;
r1opComboBox ->ItemIndex = 0;
r1in2ComboBox->ItemIndex = 0;
r2in1ComboBox->ItemIndex = 0;
r2opComboBox ->ItemIndex = 0;
r2in2ComboBox->ItemIndex = 1;
r3in1ComboBox->ItemIndex = 0;
r3opComboBox ->ItemIndex = 0;
r3in2ComboBox->ItemIndex = 2;
r4in1ComboBox->ItemIndex = 1;
r4opComboBox ->ItemIndex = 0;
r4in2ComboBox->ItemIndex = 0;
r5in1ComboBox->ItemIndex = 1;
r5opComboBox ->ItemIndex = 0;
r5in2ComboBox->ItemIndex = 1;
r6in1ComboBox->ItemIndex = 1;
r6opComboBox ->ItemIndex = 0;
r6in2ComboBox->ItemIndex = 2;
r7in1ComboBox->ItemIndex = 2;
r7opComboBox ->ItemIndex = 0;
r7in2ComboBox->ItemIndex = 0;
r8in1ComboBox->ItemIndex = 2;
r8opComboBox ->ItemIndex = 0;
r8in2ComboBox->ItemIndex = 1;
r9in1ComboBox->ItemIndex = 2;
r9opComboBox ->ItemIndex = 0;
r9in2ComboBox->ItemIndex = 2;
if (FuzzyController->rules[0] != NULL)
{
r1outComboBox->ItemIndex = -1;
if (!strcmp(FuzzyController->rules[0]->consequent->premise->fuzzyset->get_name(), "VeryLow"))
r1outComboBox->ItemIndex = VeryLow;
else if (!strcmp(FuzzyController->rules[0]->consequent->premise->fuzzyset->get_name(), "Low"))
r1outComboBox->ItemIndex = Low;
else if (!strcmp(FuzzyController->rules[0]->consequent->premise->fuzzyset->get_name(), "Medium"))
r1outComboBox->ItemIndex = Medium;
else if (!strcmp(FuzzyController->rules[0]->consequent->premise->fuzzyset->get_name(), "High"))
r1outComboBox->ItemIndex = High;
else if (!strcmp(FuzzyController->rules[0]->consequent->premise->fuzzyset->get_name(), "VeryHigh"))
r1outComboBox->ItemIndex = VeryHigh;
r1alphaCSpinEdit->Value = 100 * FuzzyController->rules[0]->alphaCut;
r1weightCSpinEdit->Value = 100 * FuzzyController->rules[0]->weight;
}
if (FuzzyController->rules[1] != NULL)
{
r2outComboBox->ItemIndex = -1;
if (!strcmp(FuzzyController->rules[1]->consequent->premise->fuzzyset->get_name(), "VeryLow"))
r2outComboBox->ItemIndex = VeryLow;
else if (!strcmp(FuzzyController->rules[1]->consequent->premise->fuzzyset->get_name(), "Low"))
r2outComboBox->ItemIndex = Low;
else if (!strcmp(FuzzyController->rules[1]->consequent->premise->fuzzyset->get_name(), "Medium"))
r2outComboBox->ItemIndex = Medium;
else if (!strcmp(FuzzyController->rules[1]->consequent->premise->fuzzyset->get_name(), "High"))
r2outComboBox->ItemIndex = High;
else if (!strcmp(FuzzyController->rules[1]->consequent->premise->fuzzyset->get_name(), "VeryHigh"))
r2outComboBox->ItemIndex = VeryHigh;
r2alphaCSpinEdit->Value = 100 * FuzzyController->rules[1]->alphaCut;
r2weightCSpinEdit->Value = 100 * FuzzyController->rules[1]->weight;
}
if (FuzzyController->rules[2] != NULL)
{
r3outComboBox->ItemIndex = -1;
if (!strcmp(FuzzyController->rules[2]->consequent->premise->fuzzyset->get_name(), "VeryLow"))
r3outComboBox->ItemIndex = VeryLow;
else if (!strcmp(FuzzyController->rules[2]->consequent->premise->fuzzyset->get_name(), "Low"))
r3outComboBox->ItemIndex = Low;
else if (!strcmp(FuzzyController->rules[2]->consequent->premise->fuzzyset->get_name(), "Medium"))
r3outComboBox->ItemIndex = Medium;
else if (!strcmp(FuzzyController->rules[2]->consequent->premise->fuzzyset->get_name(), "High"))
r3outComboBox->ItemIndex = High;
else if (!strcmp(FuzzyController->rules[2]->consequent->premise->fuzzyset->get_name(), "VeryHigh"))
r3outComboBox->ItemIndex = VeryHigh;
r3alphaCSpinEdit->Value = 100 * FuzzyController->rules[2]->alphaCut;
r3weightCSpinEdit->Value = 100 * FuzzyController->rules[2]->weight;
}
if (FuzzyController->rules[3] != NULL)
{
r4outComboBox->ItemIndex = -1;
if (!strcmp(FuzzyController->rules[3]->consequent->premise->fuzzyset->get_name(), "VeryLow"))
r4outComboBox->ItemIndex = VeryLow;
else if (!strcmp(FuzzyController->rules[3]->consequent->premise->fuzzyset->get_name(), "Low"))
r4outComboBox->ItemIndex = Low;
else if (!strcmp(FuzzyController->rules[3]->consequent->premise->fuzzyset->get_name(), "Medium"))
r4outComboBox->ItemIndex = Medium;
else if (!strcmp(FuzzyController->rules[3]->consequent->premise->fuzzyset->get_name(), "High"))
r4outComboBox->ItemIndex = High;
else if (!strcmp(FuzzyController->rules[3]->consequent->premise->fuzzyset->get_name(), "VeryHigh"))
r4outComboBox->ItemIndex = VeryHigh;
r4alphaCSpinEdit->Value = 100 * FuzzyController->rules[3]->alphaCut;
r4weightCSpinEdit->Value = 100 * FuzzyController->rules[3]->weight;
}
if (FuzzyController->rules[4] != NULL)
{
r5outComboBox->ItemIndex = -1;
if (!strcmp(FuzzyController->rules[4]->consequent->premise->fuzzyset->get_name(), "VeryLow"))
r5outComboBox->ItemIndex = VeryLow;
else if (!strcmp(FuzzyController->rules[4]->consequent->premise->fuzzyset->get_name(), "Low"))
r5outComboBox->ItemIndex = Low;
else if (!strcmp(FuzzyController->rules[4]->consequent->premise->fuzzyset->get_name(), "Medium"))
r5outComboBox->ItemIndex = Medium;
else if (!strcmp(FuzzyController->rules[4]->consequent->premise->fuzzyset->get_name(), "High"))
r5outComboBox->ItemIndex = High;
else if (!strcmp(FuzzyController->rules[4]->consequent->premise->fuzzyset->get_name(), "VeryHigh"))
r5outComboBox->ItemIndex = VeryHigh;
r5alphaCSpinEdit->Value = 100 * FuzzyController->rules[4]->alphaCut;
r5weightCSpinEdit->Value = 100 * FuzzyController->rules[4]->weight;
}
if (FuzzyController->rules[5] != NULL)
{
r6outComboBox->ItemIndex = -1;
if (!strcmp(FuzzyController->rules[5]->consequent->premise->fuzzyset->get_name(), "VeryLow"))
r6outComboBox->ItemIndex = VeryLow;
else if (!strcmp(FuzzyController->rules[5]->consequent->premise->fuzzyset->get_name(), "Low"))
r6outComboBox->ItemIndex = Low;
else if (!strcmp(FuzzyController->rules[5]->consequent->premise->fuzzyset->get_name(), "Medium"))
r6outComboBox->ItemIndex = Medium;
else if (!strcmp(FuzzyController->rules[5]->consequent->premise->fuzzyset->get_name(), "High"))
r6outComboBox->ItemIndex = High;
else if (!strcmp(FuzzyController->rules[5]->consequent->premise->fuzzyset->get_name(), "VeryHigh"))
r6outComboBox->ItemIndex = VeryHigh;
r6alphaCSpinEdit->Value = 100 * FuzzyController->rules[5]->alphaCut;
r6weightCSpinEdit->Value = 100 * FuzzyController->rules[5]->weight;
}
if (FuzzyController->rules[6] != NULL)
{
r7outComboBox->ItemIndex = -1;
if (!strcmp(FuzzyController->rules[6]->consequent->premise->fuzzyset->get_name(), "VeryLow"))
r7outComboBox->ItemIndex = VeryLow;
else if (!strcmp(FuzzyController->rules[6]->consequent->premise->fuzzyset->get_name(), "Low"))
r7outComboBox->ItemIndex = Low;
else if (!strcmp(FuzzyController->rules[6]->consequent->premise->fuzzyset->get_name(), "Medium"))
r7outComboBox->ItemIndex = Medium;
else if (!strcmp(FuzzyController->rules[6]->consequent->premise->fuzzyset->get_name(), "High"))
r7outComboBox->ItemIndex = High;
else if (!strcmp(FuzzyController->rules[6]->consequent->premise->fuzzyset->get_name(), "VeryHigh"))
r7outComboBox->ItemIndex = VeryHigh;
r7alphaCSpinEdit->Value = 100 * FuzzyController->rules[6]->alphaCut;
r7weightCSpinEdit->Value = 100 * FuzzyController->rules[6]->weight;
}
if (FuzzyController->rules[7] != NULL)
{
r8outComboBox->ItemIndex = -1;
if (!strcmp(FuzzyController->rules[7]->consequent->premise->fuzzyset->get_name(), "VeryLow"))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -