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

📄 unitarydlg.cpp

📁 BP神经网络程序
💻 CPP
字号:
// UnitaryDlg.cpp : implementation file
//

#include "stdafx.h"
#include "bpnlayerexe.h"
#include "UnitaryDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// UnitaryDlg dialog


UnitaryDlg::UnitaryDlg(CWnd* pParent /*=NULL*/)
	: CDialog(UnitaryDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(UnitaryDlg)
	m_iSelect = 0;
	//}}AFX_DATA_INIT
	
}


void UnitaryDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(UnitaryDlg)
	DDX_Radio(pDX, IDC_RADIO1, m_iSelect);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(UnitaryDlg, CDialog)
	//{{AFX_MSG_MAP(UnitaryDlg)

	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// UnitaryDlg message handlers


void UnitaryDlg::OnButton1() 
{
	// TODO: Add your control notification handler code here
	CDaoDatabase DbOpen;
	CDaoRecordset RsOpen(&DbOpen);
	CDaoTableDef TdOpen(&DbOpen);
	CFileDialog FileDlg(TRUE);
	FileDlg.m_ofn.lpstrTitle="打开要待归一化的数据库文件";
	FileDlg.m_ofn.lpstrFilter="Access database(*.mdb)\0*.mdb\0Text file(*.txt)\0*.txt\0All files(*.*)\0*.*\0\0";
	if (IDOK==FileDlg.DoModal())
	{
		DbOpen.Open(FileDlg.GetPathName());
	}
	else
		return;
	TdOpen.Open("data");
	RsOpen.Open(&TdOpen);
	int iRecortCount=RsOpen.GetRecordCount();
	int iFieldCount=RsOpen.GetFieldCount();
	CDaoFieldInfo FieldInfo;
	RsOpen.GetFieldInfo(0,FieldInfo);

	

	AfxMessageBox(FieldInfo.m_strName);
//////////////////////////////////////////////////////////////////////////	
	CDaoDatabase DbSave;
	CDaoRecordset RsSave(&DbSave);
	CDaoTableDef TdSave(&DbSave);
	CFileDialog FileDlg2(FALSE);
	FileDlg2.m_ofn.lpstrTitle="保存数据库";
	FileDlg2.m_ofn.lpstrFilter="Access database(*.mdb)\0*.mdb\0Text file(*.txt)\0*.txt\0All files(*.*)\0*.*\0\0";
	FileDlg2.m_ofn.lpstrDefExt="mdb";
	CFileFind FileFind;
	if (IDOK==FileDlg2.DoModal())
	{
		if (!FileFind.FindFile(FileDlg2.GetPathName()))
		{
			DbSave.Create(FileDlg2.GetPathName());
		}
		else
		{
			DeleteFile(FileDlg2.GetPathName());
			DbSave.Create(FileDlg2.GetPathName());
		}
	}
	else
	{
		return;
	}
//////////////////////////////////////////////////////////////////////////
	CString strTemp="create table data(Input0 double)";
	COleVariant ColeTemp;
	DbSave.Execute(strTemp);
	TdSave.Open("data");

	for (int i=1;i<iFieldCount;i++)
	{
		RsOpen.GetFieldInfo(i,FieldInfo);
		TdSave.CreateField(FieldInfo.m_strName,dbDouble,1);
	}
	RsSave.Open(&TdSave);

	double **ppdMinMax;
	ppdMinMax=new double*[iFieldCount];
	for (int i=0;i<iFieldCount;i++)
	{
		ppdMinMax[i]=new double[2];
	}
	for (int i=0;i<iFieldCount;i++)
	{
		RsOpen.MoveFirst();
		**(ppdMinMax+i)=RsOpen.GetFieldValue(i).dblVal;
		*(*(ppdMinMax+i)+1)=**(ppdMinMax+i);
		for (int j=0;j<iRecortCount;j++)
		{
			ColeTemp=RsOpen.GetFieldValue(i);
			if (ColeTemp.dblVal>**(ppdMinMax+i))
			{
				**(ppdMinMax+i)=ColeTemp.dblVal;
			}
			if (ColeTemp.dblVal<*(*(ppdMinMax+i)+1))
			{
				*(*(ppdMinMax+i)+1)=ColeTemp.dblVal;
			}
			if ((iRecortCount-1)!=j)
			{
				RsOpen.MoveNext();
			}
		}	
	}

	for (int i=0;i<2;i++)
	{
		RsSave.AddNew();
		for (int j=0;j<iFieldCount;j++)
		{
			RsSave.SetFieldValue(j,*(*(ppdMinMax+j)+i));
		}
		RsSave.Update();
	}

	
//////////////////////////////////////////////////////////////////////////
	RsSave.MoveFirst();
	RsOpen.MoveFirst();
	UpdateData(TRUE);
	for (int i=0;i<iRecortCount;i++)
	{
		RsSave.AddNew();
		
		for (int j=0;j<iFieldCount;j++)
		{
			ColeTemp=RsOpen.GetFieldValue(j);
			if (0==m_iSelect)
			{
				RsSave.SetFieldValue(j,(ColeTemp.dblVal-*(*(ppdMinMax+j)+1))/(**(ppdMinMax+j)-*(*(ppdMinMax+j)+1))*0.9+0.05);
			}
			if (1==m_iSelect)
			{
				RsSave.SetFieldValue(j,((ColeTemp.dblVal-*(*(ppdMinMax+j)+1))/(**(ppdMinMax+j)-*(*(ppdMinMax+j)+1))*2-1)*0.9);
			}
		}
		RsSave.Update();
		if (i!=(iRecortCount-1))
		{
			RsOpen.MoveNext();
		}
	}
	EndDialog(0);
}

⌨️ 快捷键说明

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