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

📄 samplepage.cpp

📁 BP智能岩土工程
💻 CPP
字号:
// SamplePage.cpp : implementation file
//

#include "stdafx.h"
#include "智能岩土工程.h"
#include "SamplePage.h"
#include <fstream.h>
#include "BPSheet.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSamplePage property page

IMPLEMENT_DYNCREATE(CSamplePage, CPropertyPage)

CSamplePage::CSamplePage() : CPropertyPage(CSamplePage::IDD)
{
	//{{AFX_DATA_INIT(CSamplePage)
		// NOTE: the ClassWizard will add member initialization here
	n = 0;
	q = 0;
	m = 0;
	p = 0;
	SampleData = NULL;
	AfxMessageBox("CSamplePage--test-1");
	//}}AFX_DATA_INIT
}

CSamplePage::~CSamplePage()
{
	
	if (SampleData != NULL)
	{		
		for (int ii=0; ii<m; ii++)
		{
			delete []SampleData[ii];
			SampleData[ii] = NULL;
		}
		delete []SampleData;
		SampleData = NULL;
	}
}

void CSamplePage::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSamplePage)
	DDX_Control(pDX, IDC_LIST, m_SampleList);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSamplePage, CPropertyPage)
	//{{AFX_MSG_MAP(CSamplePage)
	ON_BN_CLICKED(IDC_INPUT_SAMPLE, OnInputSample)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSamplePage message handlers

BOOL CSamplePage::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	
	// TODO: Add extra initialization here
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CSamplePage::OnInputSample() 
{
	// TODO: Add your control notification handler code here
//删除上一次原有记录
	if(m_SampleList.GetItemCount()!=0)
		m_SampleList.DeleteAllItems();
	for(int ii=n+q; ii>=0; ii--)
		m_SampleList.DeleteColumn(ii);
//读取新的格式
	CBPSheet* MyBPSheet;
	MyBPSheet = (CBPSheet*)this->GetParent();
	n = MyBPSheet->m_Modle.m_InputNum;
	p = MyBPSheet->m_Modle.m_MidNum;
	q = MyBPSheet->m_Modle.m_OutputNum;
	if(n==0||q==0)
	{
		AfxMessageBox("请先设置网络模型!");
		return ;
	}
//开始读文件
	CFileDialog FileDlg(TRUE, "txt", "Sample.txt", OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST,
		                "文本文件(*.txt)|*.txt||");
	FileDlg.m_ofn.lpstrTitle = "打开";
	FileDlg.m_ofn.lpstrInitialDir = "";//"C:\\Documents and Settings\\Administrator\\桌面";
	if(FileDlg.DoModal()!=IDOK)
	{
		return;
	}
	CString strFileName;
	strFileName = FileDlg.m_ofn.lpstrFile;
	ifstream myfile;
	myfile.open(strFileName, ios::in | ios::nocreate);
	if (myfile.fail())
	{
		return ;
	}	
//先分配地址再读取得数据(输入层和输出层的数据)
	if (SampleData!= NULL)
	{
		for (int ii=0; ii<m; ii++)
		{
			delete []SampleData[ii];
			SampleData[ii] = NULL;
		}
		delete []SampleData;
		SampleData = NULL;
	}
	myfile>>m;//先读取样本个数
	SampleData = new double *[m];
	for(ii=0; ii<m; ii++)
	{
		SampleData[ii] = new double[n+q];
	}
	for (ii=0; ii<m; ii++)
	{
		for (int jj=0; jj<n+q; jj++)
		{
			myfile>>SampleData[ii][jj];
		}
	}
	myfile.close();
//写入界面
	LV_COLUMN lvColumn;
	lvColumn.mask = LVCF_FMT|LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH;
	lvColumn.fmt = LVCFMT_LEFT;
	lvColumn.cx = 100;
	for(ii=0; ii<=n+q; ii++)
	{
		if(ii==0)
		{
			lvColumn.iSubItem = ii;
			lvColumn.pszText = "样本";
			m_SampleList.InsertColumn(0,&lvColumn);
		}
		else
		{
			if(ii<=n)
			{
				lvColumn.iSubItem = ii;
				lvColumn.pszText = "输入分量";
				m_SampleList.InsertColumn(ii,&lvColumn);
			}
			else
			{
				lvColumn.iSubItem = ii;
				lvColumn.pszText = "输出分量";
				m_SampleList.InsertColumn(ii,&lvColumn);
			}
		}
	}
	if(m_SampleList.GetItemCount()!=0)
		m_SampleList.DeleteAllItems();
	LV_ITEM lvItem;
	lvItem.mask = LVIF_TEXT;
	lvItem.iSubItem = 0;
	for(ii=0; ii<m; ii++)
	{
		lvItem.iItem = ii;
		CString str;
		str.Format("%d", ii+1);
		m_SampleList.InsertItem(ii,str);
		for(int jj=1; jj<=n; jj++)
		{
			CString strData;
			strData.Format("%f",SampleData[ii][jj-1]);
			m_SampleList.SetItemText(ii,jj,strData);
		};
		for(jj=n+1; jj<=n+q; jj++)
		{
			CString strData;
			strData.Format("%f",SampleData[ii][jj-1]);
			m_SampleList.SetItemText(ii,jj,strData);
		}
	}
}

⌨️ 快捷键说明

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