📄 samplepage.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 + -