📄 genalgsview.cpp
字号:
// GenAlgsView.cpp : implementation of the CGenAlgsView class
//
#include "stdafx.h"
#include "GenAlgs.h"
#include "GenAlgsDoc.h"
#include "GenAlgsView.h"
#include <stdlib.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CGenAlgsView
IMPLEMENT_DYNCREATE(CGenAlgsView, CFormView)
BEGIN_MESSAGE_MAP(CGenAlgsView, CFormView)
//{{AFX_MSG_MAP(CGenAlgsView)
ON_BN_CLICKED(IDC_START, OnStart)
ON_BN_CLICKED(IDC_CLEAR, OnClear)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CGenAlgsView construction/destruction
CGenAlgsView::CGenAlgsView()
: CFormView(CGenAlgsView::IDD)
{
//{{AFX_DATA_INIT(CGenAlgsView)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
// TODO: add construction code here
ga=NULL;
}
CGenAlgsView::~CGenAlgsView()
{
}
void CGenAlgsView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CGenAlgsView)
DDX_Control(pDX, IDC_CROSSRATE, m_crossrate);
DDX_Control(pDX, IDC_POPSIZE, m_popsize);
DDX_Control(pDX, IDC_MUTATIONRATE, m_mutationrate);
DDX_Control(pDX, IDC_MAXGEN, m_maxgen);
DDX_Control(pDX, IDC_LCHROM, m_lchrom);
DDX_Control(pDX, IDC_EDIT, m_edit);
//}}AFX_DATA_MAP
}
BOOL CGenAlgsView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CFormView::PreCreateWindow(cs);
}
void CGenAlgsView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
}
/////////////////////////////////////////////////////////////////////////////
// CGenAlgsView printing
BOOL CGenAlgsView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CGenAlgsView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CGenAlgsView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
void CGenAlgsView::OnPrint(CDC* pDC, CPrintInfo* /*pInfo*/)
{
// TODO: add customized printing code here
}
/////////////////////////////////////////////////////////////////////////////
// CGenAlgsView diagnostics
#ifdef _DEBUG
void CGenAlgsView::AssertValid() const
{
CFormView::AssertValid();
}
void CGenAlgsView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
CGenAlgsDoc* CGenAlgsView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CGenAlgsDoc)));
return (CGenAlgsDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CGenAlgsView message handlers
void CGenAlgsView::OnStart()
{
// TODO: Add your control notification handler code here
IniData ini;
/*ini.crossrate=0.15;
ini.lchrom=20;
ini.maxgen=25;
ini.mutationrate=0.1;
ini.parameters=1;
ini.popsize=10;*/
CString str;
char stoi[20];
GetDlgItemText(IDC_LCHROM,str);
strcpy(stoi,str);
ini.lchrom=atoi(stoi);
GetDlgItemText(IDC_MAXGEN,str);
strcpy(stoi,str);
ini.maxgen=atoi(stoi);
GetDlgItemText(IDC_POPSIZE,str);
strcpy(stoi,str);
ini.popsize=atoi(stoi);
GetDlgItemText(IDC_CROSSRATE,str);
strcpy(stoi,str);
ini.crossrate=atof(stoi);
GetDlgItemText(IDC_MUTATIONRATE,str);
strcpy(stoi,str);
ini.mutationrate=atof(stoi);
ini.parameters=2;
if (ini.lchrom==0 ||ini.maxgen==0 ||ini.popsize==0 )
{
MessageBox("输入不正确");
return;
}
ReportFormat RF;
RF.Bin_l=ini.lchrom*ini.parameters+5;
RF.fitness_l=10;
RF.funvalue_l=10;
RF.Gray_l=ini.lchrom*ini.parameters+5;
RF.ID_l=3;
RF.parent1_l=3;
RF.parent2_l=3;
RF.x_l=10;
pop pp;
if (ga!=NULL)
{
MessageBox("请先清空!!");
}
else
{
ga=new CGenAlg(pp,ini,RF,m_edit);
ga->Initialize();
ga->Generation();
}
/*char str[20];
CString s;
GetDlgItemText(IDC_LCHROM,s);
//str=m_lchrom.GetWindowText();
strcpy(str,s);
MessageBox(str);*/
//delete ga;
}
void CGenAlgsView::OnClear()
{
// TODO: Add your control notification handler code here
//delete ga;
ga=NULL;
SetDlgItemText(IDC_EDIT,"");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -