📄 packgreedydatasetdlg.cpp
字号:
// PackGreedyDataSetDlg.cpp : implementation file
//
#include "stdafx.h"
#include "AlgorithmicDesign.h"
#include "PackGreedyDataSetDlg.h"
#include "MainFrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPackGreedyDataSetDlg dialog
CPackGreedyDataSetDlg::CPackGreedyDataSetDlg(CWnd* pParent /*=NULL*/)
: CDialog(CPackGreedyDataSetDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CPackGreedyDataSetDlg)
m_price = _T("");
m_weight = _T("");
m_totalweight = 0.0;
m_number = 0;
//}}AFX_DATA_INIT
}
void CPackGreedyDataSetDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPackGreedyDataSetDlg)
DDX_Text(pDX, IDC_EDIT_P, m_price);
DDX_Text(pDX, IDC_EDIT_W, m_weight);
DDX_Text(pDX, IDC_EDIT_M, m_totalweight);
DDX_Text(pDX, IDC_EDIT_N, m_number);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPackGreedyDataSetDlg, CDialog)
//{{AFX_MSG_MAP(CPackGreedyDataSetDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPackGreedyDataSetDlg message handlers
BOOL CPackGreedyDataSetDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_number=7;
m_totalweight=15;
m_price="10,5,15,7,6,18,3";
m_weight="2,3,5,7,1,4,1";
UpdateData(FALSE);
CMainFrame* pMainFrame =(CMainFrame*)::AfxGetMainWnd();
DWORD RoomData=pMainFrame->m_selectnumber;
if(RoomData==2)
{
m_number=3;
m_totalweight=30;
m_price="40,25,25";
m_weight="20,15,15";
UpdateData(FALSE);
SetWindowText("FIFO队列式分支限界0/1背包问题参数设置");
}
if(RoomData==4)
{
m_number = 4;
m_totalweight = 11;
m_price = "6,10,12,13";
m_weight = "2,4,6,7";
UpdateData(FALSE);
SetWindowText("0/1背包问题的动态规划算法参数设置");
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CPackGreedyDataSetDlg::OnOK()
{
// TODO: Add extra validation here
UpdateData(TRUE);
CMainFrame* pMainFrame =(CMainFrame*)::AfxGetMainWnd();
DWORD RoomData=pMainFrame->m_selectnumber;
char* checkchar,*checkchar2;
int i=0;
//判断物体个数是否正确
int length=m_price.GetLength();
checkchar=m_price.GetBuffer(length);
for(int j=0;j<length;j++)
{
if(checkchar[j]==' ')
{
memcpy(checkchar+j,checkchar+j+1,length-j);
length--;
j--;
}
}
for( j=0;j<length;j++)
if(checkchar[j]==',')
if((checkchar[j+1]>='0')&&(checkchar[j+1]<='9'))
i++;
if((i+1)!=m_number)
{
if(RoomData==2)
MessageBox(" 有物体没有输入价格!","FIFO队列式分支限界0/1背包问题参数设置信息",MB_OK);
else if(RoomData==4)
MessageBox(" 有物体没有输入价格!","0/1背包问题的动态规划算法参数设置信息",MB_OK);
else
MessageBox(" 有物体没有输入价格!","0/1背包问题的贪心算法参数设置信息",MB_OK);
return;
}
m_price.Format("%s",checkchar);
i=0;
length=m_weight.GetLength();
checkchar2=m_weight.GetBuffer(length);
for( j=0;j<length;j++)
{
if(checkchar2[j]==' ')
{
memcpy(checkchar2+j,checkchar2+j+1,length-j);
length--;
j--;
}
}
for( j=0;j<length;j++)
if(checkchar2[j]==',')
if((checkchar2[j+1]>='0')&&(checkchar2[j+1]<='9'))
i++;
if((i+1)!=m_number)
{
if(RoomData==2)
MessageBox(" 有物体没有输入重量!","FIFO队列式分支限界0/1背包问题参数设置信息",MB_OK);
else if(RoomData==4)
MessageBox(" 有物体没有输入重量!","0/1背包问题的动态规划算法参数设置信息",MB_OK);
else
MessageBox(" 有物体没有输入重量!","0/1背包问题的贪心算法参数设置信息",MB_OK);
return;
}
m_weight.Format("%s",checkchar2);
UpdateData(FALSE);
if(RoomData==0)
pMainFrame->pPackgreedyFrame->p_AlgorithmiclistView->AddDemoData(m_number,m_totalweight,checkchar,checkchar2);
else if(RoomData==2)
{
if(m_number>4)
MessageBox(" 物体个数应小于等于4!","FIFO队列式分支限界0/1背包问题参数设置信息",MB_OK);
pMainFrame->pPackDemarkFrame->p_DemolistView->AddData(m_number);
}
else
pMainFrame->pPackDynamicFrame->p_AlgorithmiclistView->AddDemoData(m_number,m_totalweight,checkchar,checkchar2);
CDialog::OnOK();
}
void CPackGreedyDataSetDlg::OnCancel()
{
// TODO: Add extra cleanup here
/* char* checkchar;
int i=0;
//判断物体个数是否正确
int length=m_price.GetLength();
checkchar=m_price.GetBuffer(length);
for(int j=0;j<length;j++)
{
if(checkchar[j]==' ')
{
memcpy(checkchar+j,checkchar+j+1,length-j);
length--;
j--;
}
}
for( j=0;j<length;j++)
if(checkchar[j]==',')
if((checkchar[j+1]>='0')&&(checkchar[j+1]<='9'))
i++;
if((i+1)!=m_number)
{
MessageBox(" 有物体没有输入价格!","0/1背包问题的贪心算法参数设置信息",MB_OK);
return;
}
m_price.Format("%s",checkchar);
i=0;
length=m_weight.GetLength();
checkchar=m_weight.GetBuffer(length);
for( j=0;j<length;j++)
{
if(checkchar[j]==' ')
{
memcpy(checkchar+j,checkchar+j+1,length-j);
length--;
j--;
}
}
for( j=0;j<length;j++)
if(checkchar[j]==',')
if((checkchar[j+1]>='0')&&(checkchar[j+1]<='9'))
i++;
if((i+1)!=m_number)
{
MessageBox(" 有物体没有输入重量!","0/1背包问题的贪心算法参数设置信息",MB_OK);
return;
}
m_weight.Format("%s",checkchar);
UpdateData(FALSE);*/
//CMainFrame* pMainFrame =(CMainFrame*)::AfxGetMainWnd();
//pMainFrame->pPackgreedyFrame->p_AlgorithmiclistView->AddDemoData(m_number,m_totalweight,checkchar,checkchar2);
CDialog::OnCancel();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -