📄 ruleseditorfrm.cpp
字号:
r8outComboBox->ItemIndex = VeryLow;
else if (!strcmp(FuzzyController->rules[7]->consequent->premise->fuzzyset->get_name(), "Low"))
r8outComboBox->ItemIndex = Low;
else if (!strcmp(FuzzyController->rules[7]->consequent->premise->fuzzyset->get_name(), "Medium"))
r8outComboBox->ItemIndex = Medium;
else if (!strcmp(FuzzyController->rules[7]->consequent->premise->fuzzyset->get_name(), "High"))
r8outComboBox->ItemIndex = High;
else if (!strcmp(FuzzyController->rules[7]->consequent->premise->fuzzyset->get_name(), "VeryHigh"))
r8outComboBox->ItemIndex = VeryHigh;
r8alphaCSpinEdit->Value = 100 * FuzzyController->rules[7]->alphaCut;
r8weightCSpinEdit->Value = 100 * FuzzyController->rules[7]->weight;
}
if (FuzzyController->rules[8] != NULL)
{
r9outComboBox->ItemIndex = -1;
if (!strcmp(FuzzyController->rules[8]->consequent->premise->fuzzyset->get_name(), "VeryLow"))
r9outComboBox->ItemIndex = VeryLow;
else if (!strcmp(FuzzyController->rules[8]->consequent->premise->fuzzyset->get_name(), "Low"))
r9outComboBox->ItemIndex = Low;
else if (!strcmp(FuzzyController->rules[8]->consequent->premise->fuzzyset->get_name(), "Medium"))
r9outComboBox->ItemIndex = Medium;
else if (!strcmp(FuzzyController->rules[8]->consequent->premise->fuzzyset->get_name(), "High"))
r9outComboBox->ItemIndex = High;
else if (!strcmp(FuzzyController->rules[8]->consequent->premise->fuzzyset->get_name(), "VeryHigh"))
r9outComboBox->ItemIndex = VeryHigh;
r9alphaCSpinEdit->Value = 100 * FuzzyController->rules[8]->alphaCut;
r9weightCSpinEdit->Value = 100 * FuzzyController->rules[8]->weight;
}
}
else
{
Close();
}
}
//---------------------------------------------------------------------------
void __fastcall TRulesEditorForm::r1weightCSpinEditChange(TObject *Sender)
{
if (r1weightCSpinEdit->Value == 0)
{
r1in1ComboBox ->Visible = false;
r1opComboBox ->Visible = false;
r1in2ComboBox ->Visible = false;
r1outComboBox ->Visible = false;
r1alphaCSpinEdit->Visible = false;
}
else
{
r1in1ComboBox ->Visible = true;
r1opComboBox ->Visible = true;
r1in2ComboBox ->Visible = true;
r1outComboBox ->Visible = true;
r1alphaCSpinEdit->Visible = true;
}
}
//---------------------------------------------------------------------------
void __fastcall TRulesEditorForm::r2weightCSpinEditChange(TObject *Sender)
{
if (r2weightCSpinEdit->Value == 0)
{
r2in1ComboBox ->Visible = false;
r2opComboBox ->Visible = false;
r2in2ComboBox ->Visible = false;
r2outComboBox ->Visible = false;
r2alphaCSpinEdit->Visible = false;
}
else
{
r2in1ComboBox ->Visible = true;
r2opComboBox ->Visible = true;
r2in2ComboBox ->Visible = true;
r2outComboBox ->Visible = true;
r2alphaCSpinEdit->Visible = true;
}
}
//---------------------------------------------------------------------------
void __fastcall TRulesEditorForm::r3weightCSpinEditChange(TObject *Sender)
{
if (r3weightCSpinEdit->Value == 0)
{
r3in1ComboBox ->Visible = false;
r3opComboBox ->Visible = false;
r3in2ComboBox ->Visible = false;
r3outComboBox ->Visible = false;
r3alphaCSpinEdit->Visible = false;
}
else
{
r3in1ComboBox ->Visible = true;
r3opComboBox ->Visible = true;
r3in2ComboBox ->Visible = true;
r3outComboBox ->Visible = true;
r3alphaCSpinEdit->Visible = true;
}
}
//---------------------------------------------------------------------------
void __fastcall TRulesEditorForm::r4weightCSpinEditChange(TObject *Sender)
{
if (r4weightCSpinEdit->Value == 0)
{
r4in1ComboBox ->Visible = false;
r4opComboBox ->Visible = false;
r4in2ComboBox ->Visible = false;
r4outComboBox ->Visible = false;
r4alphaCSpinEdit->Visible = false;
}
else
{
r4in1ComboBox ->Visible = true;
r4opComboBox ->Visible = true;
r4in2ComboBox ->Visible = true;
r4outComboBox ->Visible = true;
r4alphaCSpinEdit->Visible = true;
}
}
//---------------------------------------------------------------------------
void __fastcall TRulesEditorForm::r5weightCSpinEditChange(TObject *Sender)
{
if (r5weightCSpinEdit->Value == 0)
{
r5in1ComboBox ->Visible = false;
r5opComboBox ->Visible = false;
r5in2ComboBox ->Visible = false;
r5outComboBox ->Visible = false;
r5alphaCSpinEdit->Visible = false;
}
else
{
r5in1ComboBox ->Visible = true;
r5opComboBox ->Visible = true;
r5in2ComboBox ->Visible = true;
r5outComboBox ->Visible = true;
r5alphaCSpinEdit->Visible = true;
}
}
//---------------------------------------------------------------------------
void __fastcall TRulesEditorForm::r6weightCSpinEditChange(TObject *Sender)
{
if (r6weightCSpinEdit->Value == 0)
{
r6in1ComboBox ->Visible = false;
r6opComboBox ->Visible = false;
r6in2ComboBox ->Visible = false;
r6outComboBox ->Visible = false;
r6alphaCSpinEdit->Visible = false;
}
else
{
r6in1ComboBox ->Visible = true;
r6opComboBox ->Visible = true;
r6in2ComboBox ->Visible = true;
r6outComboBox ->Visible = true;
r6alphaCSpinEdit->Visible = true;
}
}
//---------------------------------------------------------------------------
void __fastcall TRulesEditorForm::r7weightCSpinEditChange(TObject *Sender)
{
if (r7weightCSpinEdit->Value == 0)
{
r7in1ComboBox ->Visible = false;
r7opComboBox ->Visible = false;
r7in2ComboBox ->Visible = false;
r7outComboBox ->Visible = false;
r7alphaCSpinEdit->Visible = false;
}
else
{
r7in1ComboBox ->Visible = true;
r7opComboBox ->Visible = true;
r7in2ComboBox ->Visible = true;
r7outComboBox ->Visible = true;
r7alphaCSpinEdit->Visible = true;
}
}
//---------------------------------------------------------------------------
void __fastcall TRulesEditorForm::r8weightCSpinEditChange(TObject *Sender)
{
if (r8weightCSpinEdit->Value == 0)
{
r8in1ComboBox ->Visible = false;
r8opComboBox ->Visible = false;
r8in2ComboBox ->Visible = false;
r8outComboBox ->Visible = false;
r8alphaCSpinEdit->Visible = false;
}
else
{
r8in1ComboBox ->Visible = true;
r8opComboBox ->Visible = true;
r8in2ComboBox ->Visible = true;
r8outComboBox ->Visible = true;
r8alphaCSpinEdit->Visible = true;
}
}
//---------------------------------------------------------------------------
void __fastcall TRulesEditorForm::r9weightCSpinEditChange(TObject *Sender)
{
if (r9weightCSpinEdit->Value == 0)
{
r9in1ComboBox ->Visible = false;
r9opComboBox ->Visible = false;
r9in2ComboBox ->Visible = false;
r9outComboBox ->Visible = false;
r9alphaCSpinEdit->Visible = false;
}
else
{
r9in1ComboBox ->Visible = true;
r9opComboBox ->Visible = true;
r9in2ComboBox ->Visible = true;
r9outComboBox ->Visible = true;
r9alphaCSpinEdit->Visible = true;
}
}
//---------------------------------------------------------------------------
void __fastcall TRulesEditorForm::r1outComboBoxChange(TObject *Sender)
{
FuzzyController->clear_rules();
FuzzyController->add_rule(new TFuzzyRule(true, r1alphaCSpinEdit->Value/100.0, r1weightCSpinEdit->Value/100.0));
FuzzyController->add_rule(new TFuzzyRule(true, r2alphaCSpinEdit->Value/100.0, r2weightCSpinEdit->Value/100.0));
FuzzyController->add_rule(new TFuzzyRule(true, r3alphaCSpinEdit->Value/100.0, r3weightCSpinEdit->Value/100.0));
FuzzyController->add_rule(new TFuzzyRule(true, r4alphaCSpinEdit->Value/100.0, r4weightCSpinEdit->Value/100.0));
FuzzyController->add_rule(new TFuzzyRule(true, r5alphaCSpinEdit->Value/100.0, r5weightCSpinEdit->Value/100.0));
FuzzyController->add_rule(new TFuzzyRule(true, r6alphaCSpinEdit->Value/100.0, r6weightCSpinEdit->Value/100.0));
FuzzyController->add_rule(new TFuzzyRule(true, r7alphaCSpinEdit->Value/100.0, r7weightCSpinEdit->Value/100.0));
FuzzyController->add_rule(new TFuzzyRule(true, r8alphaCSpinEdit->Value/100.0, r8weightCSpinEdit->Value/100.0));
FuzzyController->add_rule(new TFuzzyRule(true, r9alphaCSpinEdit->Value/100.0, r9weightCSpinEdit->Value/100.0));
if (FuzzyController->rules[0] != NULL)
{
FuzzyController->rules[0]->predicate->clear_premises();
FuzzyController->rules[0]->predicate->add_premise(new TPremise(FuzzyController->input_variables[0]->fuzzysets[r1in1ComboBox->ItemIndex]));
FuzzyController->rules[0]->predicate->clear_operators();
FuzzyController->rules[0]->predicate->add_operator(r1opComboBox->ItemIndex);
FuzzyController->rules[0]->predicate->add_premise(new TPremise(FuzzyController->input_variables[1]->fuzzysets[r1in2ComboBox->ItemIndex]));
FuzzyController->rules[0]->consequent->set_premise(new TPremise(FuzzyController->output_variable->fuzzysets[r1outComboBox->ItemIndex]));
}
if (FuzzyController->rules[1] != NULL)
{
FuzzyController->rules[1]->predicate->clear_premises();
FuzzyController->rules[1]->predicate->add_premise(new TPremise(FuzzyController->input_variables[0]->fuzzysets[r2in1ComboBox->ItemIndex]));
FuzzyController->rules[1]->predicate->clear_operators();
FuzzyController->rules[1]->predicate->add_operator(r2opComboBox->ItemIndex);
FuzzyController->rules[1]->predicate->add_premise(new TPremise(FuzzyController->input_variables[1]->fuzzysets[r2in2ComboBox->ItemIndex]));
FuzzyController->rules[1]->consequent->set_premise(new TPremise(FuzzyController->output_variable->fuzzysets[r2outComboBox->ItemIndex]));
}
if (FuzzyController->rules[2] != NULL)
{
FuzzyController->rules[2]->predicate->clear_premises();
FuzzyController->rules[2]->predicate->add_premise(new TPremise(FuzzyController->input_variables[0]->fuzzysets[r3in1ComboBox->ItemIndex]));
FuzzyController->rules[2]->predicate->clear_operators();
FuzzyController->rules[2]->predicate->add_operator(r3opComboBox->ItemIndex);
FuzzyController->rules[2]->predicate->add_premise(new TPremise(FuzzyController->input_variables[1]->fuzzysets[r3in2ComboBox->ItemIndex]));
FuzzyController->rules[2]->consequent->set_premise(new TPremise(FuzzyController->output_variable->fuzzysets[r3outComboBox->ItemIndex]));
}
if (FuzzyController->rules[3] != NULL)
{
FuzzyController->rules[3]->predicate->clear_premises();
FuzzyController->rules[3]->predicate->add_premise(new TPremise(FuzzyController->input_variables[0]->fuzzysets[r4in1ComboBox->ItemIndex]));
FuzzyController->rules[3]->predicate->clear_operators();
FuzzyController->rules[3]->predicate->add_operator(r4opComboBox->ItemIndex);
FuzzyController->rules[3]->predicate->add_premise(new TPremise(FuzzyController->input_variables[1]->fuzzysets[r4in2ComboBox->ItemIndex]));
FuzzyController->rules[3]->consequent->set_premise(new TPremise(FuzzyController->output_variable->fuzzysets[r4outComboBox->ItemIndex]));
}
if (FuzzyController->rules[4] != NULL)
{
FuzzyController->rules[4]->predicate->clear_premises();
FuzzyController->rules[4]->predicate->add_premise(new TPremise(FuzzyController->input_variables[0]->fuzzysets[r5in1ComboBox->ItemIndex]));
FuzzyController->rules[4]->predicate->clear_operators();
FuzzyController->rules[4]->predicate->add_operator(r5opComboBox->ItemIndex);
FuzzyController->rules[4]->predicate->add_premise(new TPremise(FuzzyController->input_variables[1]->fuzzysets[r5in2ComboBox->ItemIndex]));
FuzzyController->rules[4]->consequent->set_premise(new TPremise(FuzzyController->output_variable->fuzzysets[r5outComboBox->ItemIndex]));
}
if (FuzzyController->rules[5] != NULL)
{
FuzzyController->rules[5]->predicate->clear_premises();
FuzzyController->rules[5]->predicate->add_premise(new TPremise(FuzzyController->input_variables[0]->fuzzysets[r6in1ComboBox->ItemIndex]));
FuzzyController->rules[5]->predicate->clear_operators();
FuzzyController->rules[5]->predicate->add_operator(r6opComboBox->ItemIndex);
FuzzyController->rules[5]->predicate->add_premise(new TPremise(FuzzyController->input_variables[1]->fuzzysets[r6in2ComboBox->ItemIndex]));
FuzzyController->rules[5]->consequent->set_premise(new TPremise(FuzzyController->output_variable->fuzzysets[r6outComboBox->ItemIndex]));
}
if (FuzzyController->rules[6] != NULL)
{
FuzzyController->rules[6]->predicate->clear_premises();
FuzzyController->rules[6]->predicate->add_premise(new TPremise(FuzzyController->input_variables[0]->fuzzysets[r7in1ComboBox->ItemIndex]));
FuzzyController->rules[6]->predicate->clear_operators();
FuzzyController->rules[6]->predicate->add_operator(r7opComboBox->ItemIndex);
FuzzyController->rules[6]->predicate->add_premise(new TPremise(FuzzyController->input_variables[1]->fuzzysets[r7in2ComboBox->ItemIndex]));
FuzzyController->rules[6]->consequent->set_premise(new TPremise(FuzzyController->output_variable->fuzzysets[r7outComboBox->ItemIndex]));
}
if (FuzzyController->rules[7] != NULL)
{
FuzzyController->rules[7]->predicate->clear_premises();
FuzzyController->rules[7]->predicate->add_premise(new TPremise(FuzzyController->input_variables[0]->fuzzysets[r8in1ComboBox->ItemIndex]));
FuzzyController->rules[7]->predicate->clear_operators();
FuzzyController->rules[7]->predicate->add_operator(r8opComboBox->ItemIndex);
FuzzyController->rules[7]->predicate->add_premise(new TPremise(FuzzyController->input_variables[1]->fuzzysets[r8in2ComboBox->ItemIndex]));
FuzzyController->rules[7]->consequent->set_premise(new TPremise(FuzzyController->output_variable->fuzzysets[r8outComboBox->ItemIndex]));
}
if (FuzzyController->rules[8] != NULL)
{
FuzzyController->rules[8]->predicate->clear_premises();
FuzzyController->rules[8]->predicate->add_premise(new TPremise(FuzzyController->input_variables[0]->fuzzysets[r9in1ComboBox->ItemIndex]));
FuzzyController->rules[8]->predicate->clear_operators();
FuzzyController->rules[8]->predicate->add_operator(r9opComboBox->ItemIndex);
FuzzyController->rules[8]->predicate->add_premise(new TPremise(FuzzyController->input_variables[1]->fuzzysets[r9in2ComboBox->ItemIndex]));
FuzzyController->rules[8]->consequent->set_premise(new TPremise(FuzzyController->output_variable->fuzzysets[r9outComboBox->ItemIndex]));
}
MainForm->Update();
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -