📄 parasetdlg.cpp
字号:
// ParaSetDlg.cpp : implementation file
//
#include "stdafx.h"
#include "GA.h"
#include "ParaSetDlg.h"
#include "GADlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CParaSetDlg dialog
CParaSetDlg::CParaSetDlg(CWnd* pParent /*=NULL*/)
: CDialog(CParaSetDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CParaSetDlg)
m_pcross = 90;
m_maxgen = 150;
m_pmutation = 5;
m_popsize = 100;
m_precision =4;
//}}AFX_DATA_INIT
}
void CParaSetDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CParaSetDlg)
DDX_Text(pDX, IDC_CROSSEDIT, m_pcross);
DDV_MinMaxInt(pDX, m_pcross, 0, 100);
DDX_Text(pDX, IDC_GENEDIT, m_maxgen);
DDV_MinMaxInt(pDX, m_maxgen, 1, 200);
DDX_Text(pDX, IDC_MUTATEDIT, m_pmutation);
DDV_MinMaxInt(pDX, m_pmutation, 0, 100);
DDX_Text(pDX, IDC_POPEDIT, m_popsize);
DDV_MinMaxInt(pDX, m_popsize, 2, 250);
DDX_Text(pDX, IDC_PREEDIT, m_precision);
DDV_MinMaxInt(pDX, m_precision, 0, 10);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CParaSetDlg, CDialog)
//{{AFX_MSG_MAP(CParaSetDlg)
ON_BN_CLICKED(IDC_DEFAULT, OnDefault)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CParaSetDlg message handlers
void CParaSetDlg::OnOK()
{
// TODO: Add extra validation here
CString strmebo;
float precision=0;
UpdateData();
/* if(0==m_popsize || 1==m_popsize)
{
strmebo.Format("种群规模不能为0或1");
AfxMessageBox(strmebo); return;
}*/
if(0==m_pcross && 0==m_pmutation)
{
strmebo.Format("交叉概率和变异概率同时不能为0");
AfxMessageBox(strmebo); return;
}
/* int indot=0,strlen;
indot=m_strPre.Find('.');
if(indot==-1)
{
strmebo.Format("程序会把精度设为1。");
AfxMessageBox(strmebo);
precision=1;
}
else
{
strlen=m_strPre.GetLength();
for(int i=strlen-1;i>indot;i--)
{
if(m_strPre[i]>='0' && m_strPre[i]<='9')
{
precision+=(m_strPre[i]-48);
precision/=10;
}
else
{
strmebo.Format("请重新输入精度值.");
AfxMessageBox(strmebo);
return ;
}
}
}
m_precision=precision;*/
/* strmebo.Format("m_precision=%g,",m_precision);
AfxMessageBox(strmebo);*/
CDialog::OnOK();
}
void CParaSetDlg::OnDefault()
{
// TODO: Add your control notification handler code here
m_pcross=90;
m_pmutation=5;
m_maxgen=100;
m_popsize=150;
m_precision=4;
/* m_strPre.Format("%g",m_precision);
((CEdit*)GetDlgItem(IDC_PREEDIT))->SetWindowText(m_strPre);*/
UpdateData(FALSE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -