⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 blurrulepage.cpp

📁 实现规则推理 模糊识别 神经网络的专家系统
💻 CPP
字号:
// BlurRulePage.cpp : implementation file
//
#include "stdafx.h"
#include "AcquireKlg.h"
#include "AcquireKlgDoc.h"
#include "MainFrm.h"
#include "RuleDefineView.h"
#include "Global.h"
#include <math.h>


#include "BlurRulePage.h"
#include "savefunDlg.h"
#include "ado.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CBlurRulePage dialog

extern CADODatabase GlDataBase;

CBlurRulePage::CBlurRulePage(CRuleDefineView* pParent) /*=NULL CRuleDefineView*/
	: CDialog(CBlurRulePage::IDD, pParent)
{

	
	//{{AFX_DATA_INIT(CBlurRulePage)
	m_edit_bcont = _T("");
	m_pRDView = pParent;
	//}}AFX_DATA_INIT
}


void CBlurRulePage::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CBlurRulePage)
	DDX_Control(pDX, IDC_COMBO_outnode, m_combo_outnode);
	DDX_Control(pDX, IDC_EDIT1_LJXPC, m_etLjxpc);
	DDX_Control(pDX, IDC_EDIT1_TJPARA, m_etTJPara);
	DDX_Control(pDX, IDC_STATIC3, m_stRjxpc);
	DDX_Control(pDX, IDC_EDIT_LRONGCHA, m_etLRongCha);
	DDX_Control(pDX, IDC_EDIT_RRONGCHA, m_etRRongCha);
	DDX_Control(pDX, IDC_EDIT_RJXPC, m_etRjxpc);
	DDX_Control(pDX, IDC_STATIC5, m_stRRongCha);
	DDX_Control(pDX, IDC_STATIC4, m_stLRongCha);
	DDX_Control(pDX, IDC_COMBO_FUNTYPE, m_cmFunType);
	DDX_Text(pDX, IDC_EDIT_BLURDESCRIBE, m_edit_bcont);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CBlurRulePage, CDialog)
	//{{AFX_MSG_MAP(CBlurRulePage)
	ON_CBN_SELCHANGE(IDC_COMBO_FUNTYPE, OnSelchangeComboFuntype)
	ON_BN_CLICKED(IDC_BUTTON_savefun, OnBUTTONsavefun)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()
//////////////////////自定义函数/////////////////////////////////////////
//获得指定的视图类指针
/*CView* CBlurRulePage::GetView(CRuntimeClass* pClass) 
{ 
	CAcquireKlgDoc* pDoc=(CAcquireKlgDoc*)GetParentFrame()->GetActiveView()->GetDocument();
	ASSERT(pDoc);
	CView* pView = NULL; 
	POSITION pos=pDoc->GetFirstViewPosition(); 
	while(pos!=NULL){ 
		pView=pDoc->GetNextView(pos); 
		if(pView->IsKindOf(pClass)) 
			break;
	} 
	if(!pView->IsKindOf(pClass)){ 
		AfxMessageBox("Can't Locate the View."); 
		return NULL;
	} 
	return pView;
} 
*/

void CBlurRulePage::showRongCha(bool bShow){
	DWORD dwShow = bShow?SW_SHOW:SW_HIDE;
	m_stLRongCha.ShowWindow(dwShow);
	m_stRRongCha.ShowWindow(dwShow);
	m_etLRongCha.ShowWindow(dwShow);
	m_etRRongCha.ShowWindow(dwShow);

}

/////////////////////////////////////////////////////////////////////////////
// CBlurRulePage message handlers



BOOL CBlurRulePage::OnInitDialog() 
{
	CDialog::OnInitDialog();
//	m_pNtView = (CNodeTreeView*)GetView(RUNTIME_CLASS(CNodeTreeView));
//	m_pRDView=(CRuleDefineView*)GetView(RUNTIME_CLASS(CRuleDefineView));

	SetDlgItemText(IDC_EDIT_hs,"单击按钮输入->");
	m_cmFunType.AddString("正态分布(f1)");
	m_cmFunType.AddString("三角分布(f2)");
	m_cmFunType.AddString("梯形分布(f3)");
	m_cmFunType.AddString("升半正态(f4)");
	m_cmFunType.AddString("降半正态(f5)");
	m_cmFunType.SetCurSel(0);

	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CBlurRulePage::OnSelchangeComboFuntype() 
{
    int nSelected = m_cmFunType.GetCurSel();
	switch(nSelected){
	case 0:
		SetZhenTai();
		break;
	case 1:
		SetSanJiao();
		break;
	case 2:
		SetTiXing();
		break;
	case 3:
		SetShengBan();
		break;
	case 4:
		SetJiangBan();
		break;
	default:break;
	
	}
	m_pRDView->GetCurBlurFun();
	m_pRDView->ShowBlurFun();	
}

void CBlurRulePage::SetZhenTai(){
	SetDlgItemText(IDC_STATIC2,"调节参数(k):");
	m_etLjxpc.ShowWindow(false);
	m_etTJPara.ShowWindow(false);
	m_stRjxpc.ShowWindow(false);
	m_etRjxpc.ShowWindow(false);
	showRongCha(false);
	m_pRDView->ShowImage("zhengtai1.bmp");
	
}


void CBlurRulePage::SetSanJiao(){
	SetDlgItemText(IDC_STATIC2,"左极限偏差(b):");
	m_etLjxpc.ShowWindow(false);
	m_etTJPara.ShowWindow(false);
	m_stRjxpc.ShowWindow(false);
	m_etRjxpc.ShowWindow(false);
	showRongCha(false);
	m_pRDView->ShowImage("sanjiao1.bmp");
}

void CBlurRulePage::SetTiXing(){
	SetDlgItemText(IDC_STATIC2,"左极限偏差(b):");
	m_etLjxpc.ShowWindow(false);
	m_etTJPara.ShowWindow(false);
	m_stRjxpc.ShowWindow(false);
	m_etRjxpc.ShowWindow(false);
	showRongCha(false);
	m_pRDView->ShowImage("tixing1.bmp");
}
void CBlurRulePage::SetShengBan(){
	SetDlgItemText(IDC_STATIC2,"调节参数(k):");
	m_etLjxpc.ShowWindow(false);
	m_etTJPara.ShowWindow(false);
	m_stRjxpc.ShowWindow(false);
	m_etRjxpc.ShowWindow(false);
	showRongCha(false);
	m_pRDView->ShowImage("6_1.bmp");
	
}
void CBlurRulePage::SetJiangBan(){
	SetDlgItemText(IDC_STATIC2,"调节参数(k):");
	m_etLjxpc.ShowWindow(false);
	m_etTJPara.ShowWindow(false);
	m_stRjxpc.ShowWindow(false);
	m_etRjxpc.ShowWindow(false);
	showRongCha(false);
	m_pRDView->ShowImage("8_1.bmp");
	
}

void CBlurRulePage::SetFuncTypeCurSel(int nCur){
	m_cmFunType.SetCurSel(nCur-1);
}


int CBlurRulePage::GetFuncTypeCurSel(){
    int nCur = m_cmFunType.GetCurSel();

	if(nCur!=CB_ERR) 
		nCur++;
	return nCur;
}



void CBlurRulePage::OnBUTTONsavefun() 
{	CString strsn;
	GetDlgItemText(IDC_EDIT_BLUR_ORDER,strsn);
	strsn.TrimLeft();
	if (strsn.GetLength()>0){
    funtype=GetFuncTypeCurSel();
	CsavefunDlg funcdlg;
	funcdlg.DoModal();
	}else
	AfxMessageBox("无模糊规则!");

//m_pRDView->savefun();
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -