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

📄 alssadlg.cpp

📁 一个有关生产排序的模拟退火算法
💻 CPP
📖 第 1 页 / 共 2 页
字号:

	strTemp = "计算得最佳路径为:";
//	::SendMessage( ViewHWND, WYWM_INFOVIEWAPPENDINFO, (WPARAM)(&strTemp), (LPARAM)0 );
	plistInfo->AddString(strTemp);
	strTemp = FormRouterString( ResultRouter );
//	::SendMessage( ViewHWND, WYWM_INFOVIEWAPPENDINFO, (WPARAM)(&strTemp), (LPARAM)0 );
	plistInfo->AddString(strTemp);
	
	GetRouterFileString( ResultRouter, strTemp );
	cityfile.Write( strTemp, strTemp.GetLength() );

	cityfile.Close();
	iterfile.Close();

	IsComputing = FALSE;

	return 0;
}


void CALSSADlg::OnComput() 
{
	// TODO: Add your control notification handler code here
	//CTspSAView *pView = (CTspSAView*)GetActiveView();
	//CALSSADlg dlg; 
	//HWND ViewHWND = ::GetDlgItem(dlg.m_hWnd,IDC_LIST_INFO);
	CListBox* plistInfo = (CListBox*)GetDlgItem(IDC_LIST_INFO);
	AfxBeginThread( SACompution, (LPVOID)plistInfo );
//	SACompution();
	GetDlgItem(IDC_COMPUT)->EnableWindow(FALSE);
	//GetDlgItem(IDC_FILEOPEN)->EnableWindow(IsComputing);
}


void CALSSADlg::OnCancel() 
{
	// TODO: Add extra cleanup here
	CResertDlg dlg;
	dlg.DoModal();
		
	CDialog::OnCancel();
}

//DEL void CALSSADlg::OnUpdateFileOpen(CCmdUI* pCmdUI) 
//DEL {
//DEL 	if( IsComputing )
//DEL 		pCmdUI->Enable(FALSE);
//DEL 	else
//DEL 		pCmdUI->Enable(TRUE);
//DEL }

//DEL void CALSSADlg::Msg(CString str)
//DEL {
//DEL 	CListBox * plistInfo = (CListBox*)GetDlgItem(IDC_LIST_INFO);
//DEL 	SYSTEMTIME tm;
//DEL 	GetLocalTime(&tm);
//DEL 	CString time;
//DEL 	time.Format(_T(" %d年%d月%d日 %d时:%d分:%d秒"), tm.wYear,tm.wMonth,tm.wDay,tm.wHour, tm.wMinute,tm.wSecond);
//DEL 	plistInfo->AddString(time+"        "+str);
//DEL 	int numList=plistInfo->GetCount()-1;
//DEL 	plistInfo->SetTopIndex(numList);
//DEL 	plistInfo->SetCurSel(numList);
//DEL 
//DEL 
//DEL }

void CALSSADlg::OnFilehard() 
{
	// TODO: Add your control notification handler code here
	CString strFileName;
	char szFilter[200];
	int isok=0;
	CListBox * plistInfo = (CListBox*)GetDlgItem(IDC_LIST_INFO);
	strcpy( szFilter, "TXT Files (*.txt)|*.txt||" );
	CFileDialog *pFileDialog;
	pFileDialog = new CFileDialog( TRUE, 
								NULL, 
								NULL, 
								OFN_HIDEREADONLY,
								szFilter,
								this );
	if( IDOK == pFileDialog->DoModal() )
	{
		//CTspSAView *pView = (CTspSAView*)GetActiveView();
		ClearSA();
		//pView->ClearInfos();
		
		CString strValue, strTemp;
		strFileName = pFileDialog->GetPathName();
		CStdioFile DataFile( strFileName, CFile::modeRead );
		CString strReadString;
		int ncityindex = 1;
		while( DataFile.ReadString(strReadString) ) 
		{
			strReadString.TrimLeft();
			strReadString.TrimRight();

			CString fcitycodx, tcitycodx,hdPanish;
			int nspace = 0;
			nspace = strReadString.Find(" ");
			if( nspace > 0 )
				fcitycodx = strReadString.Left( nspace );

			strReadString = strReadString.Mid( nspace+1 );
			nspace = strReadString.Find(" ");
			if( nspace > 0 )
				tcitycodx = strReadString.Left( nspace );

			strReadString = strReadString.Mid( nspace+1 );
			hdPanish = strReadString;

			SYCity tmpCity;
			tmpCity.m_strName = "城市 "+cityName;
			tmpCity.m_nIndex = ncityindex;
			tmpCity.m_Coordinate.m_fcodx = atof( citycodx );
			tmpCity.m_Coordinate.m_fcody = atof( citycody );

			vecCitys.push_back( tmpCity );

			ncityindex++;
		}
		DataFile.Close();

		InitialSA();
		strTemp = "共读入城市信息";
		strValue.Format("%d",CityNumber);
		strTemp += strValue;
		strTemp += "个";
	//	pView->AddString( strTemp );
		plistInfo->AddString(strTemp);
		
		strTemp = "计算城市距离完成";
	//	pView->AddString( strTemp );
		plistInfo->AddString(strTemp);

		isok=1;	
	}	

	delete pFileDialog;

	if(isok)
	{
		GetDlgItem(IDC_COMPUT)->EnableWindow(true);
		GetDlgItem(IDC_FILEHARD)->EnableWindow(FALSE);
	}
}

void CALSSADlg::OnFilewidth() 
{
	// TODO: Add your control notification handler code here
	CString strFileName;
	char szFilter[200];
	int isok=0;
	CListBox * plistInfo = (CListBox*)GetDlgItem(IDC_LIST_INFO);
	strcpy( szFilter, "TXT Files (*.txt)|*.txt||" );
	CFileDialog *pFileDialog;
	pFileDialog = new CFileDialog( TRUE, 
								NULL, 
								NULL, 
								OFN_HIDEREADONLY,
								szFilter,
								this );
	if( IDOK == pFileDialog->DoModal() )
	{
		//CTspSAView *pView = (CTspSAView*)GetActiveView();
		ClearSA();
		//pView->ClearInfos();
		
		CString strValue, strTemp;
		strFileName = pFileDialog->GetPathName();
		CStdioFile DataFile( strFileName, CFile::modeRead );
		CString strReadString;
		int ncityindex = 1;
		while( DataFile.ReadString(strReadString) ) 
		{
			strReadString.TrimLeft();
			strReadString.TrimRight();

			CString fcitycodx, tcitycodx,hdPanish;
			int nspace = 0;
			nspace = strReadString.Find(" ");
			if( nspace > 0 )
				fcitycodx = strReadString.Left( nspace );

			strReadString = strReadString.Mid( nspace+1 );
			nspace = strReadString.Find(" ");
			if( nspace > 0 )
				tcitycodx = strReadString.Left( nspace );

			strReadString = strReadString.Mid( nspace+1 );
			hdPanish = strReadString;

			SYCity tmpCity;
			tmpCity.m_strName = "城市 "+cityName;
			tmpCity.m_nIndex = ncityindex;
			tmpCity.m_Coordinate.m_fcodx = atof( citycodx );
			tmpCity.m_Coordinate.m_fcody = atof( citycody );

			vecCitys.push_back( tmpCity );

			ncityindex++;
		}
		DataFile.Close();

		InitialSA();
		strTemp = "共读入城市信息";
		strValue.Format("%d",CityNumber);
		strTemp += strValue;
		strTemp += "个";
	//	pView->AddString( strTemp );
		plistInfo->AddString(strTemp);
		
		strTemp = "计算城市距离完成";
	//	pView->AddString( strTemp );
		plistInfo->AddString(strTemp);

		isok=1;	
	}	

	delete pFileDialog;

	if(isok)
	{
		GetDlgItem(IDC_COMPUT)->EnableWindow(true);
		GetDlgItem(IDC_FILEHARD)->EnableWindow(FALSE);
	}
		GetDlgItem(IDC_FILEWIDTH)->EnableWindow(FALSE);

}

void CALSSADlg::OnFilegauge() 
{
	// TODO: Add your control notification handler code here
	CString strFileName;
	char szFilter[200];
	int isok=0;
	CListBox * plistInfo = (CListBox*)GetDlgItem(IDC_LIST_INFO);
	strcpy( szFilter, "TXT Files (*.txt)|*.txt||" );
	CFileDialog *pFileDialog;
	pFileDialog = new CFileDialog( TRUE, 
								NULL, 
								NULL, 
								OFN_HIDEREADONLY,
								szFilter,
								this );
	if( IDOK == pFileDialog->DoModal() )
	{
		//CTspSAView *pView = (CTspSAView*)GetActiveView();
		ClearSA();
		//pView->ClearInfos();
		
		CString strTemp;
		strFileName = pFileDialog->GetPathName();
		CStdioFile DataFile( strFileName, CFile::modeRead );
		CString strReadString;
		int ncityindex = 1;
		while( DataFile.ReadString(strReadString) ) 
		{
			strReadString.TrimLeft();
			strReadString.TrimRight();

			CString fcitycodz, tcitycodz,gPanish;
			int nspace = 0;
			nspace = strReadString.Find(" ");
			if( nspace > 0 )
				fcitycodz = strReadString.Left( nspace );

			strReadString = strReadString.Mid( nspace+1 );
			nspace = strReadString.Find(" ");
			if( nspace > 0 )
				tcitycodz = strReadString.Left( nspace );

			strReadString = strReadString.Mid( nspace+1 );
			gPanish = strReadString;

			Gaugepanish tmpGaugepanish;
			tmpGaugepanish.m_fcodz = atof(fcitycodz);
			tmpGaugepanish.m_tcodz = atof(tcitycodz);
			tmpGaugepanish.m_gPanish = atof(gPanish);
			
			vecGaugepanish.push_back( tmpGaugepanish );

			ncityindex++;
		}
		DataFile.Close();
	
		strTemp = "厚度惩罚系数数据读入完毕";
	//	pView->AddString( strTemp );
		plistInfo->AddString(strTemp);

		isok=1;	
	}	

	delete pFileDialog;

	if(isok)
	{
		GetDlgItem(IDC_FILEOPEN)->EnableWindow(true);
		GetDlgItem(IDC_FILEGAUGE)->EnableWindow(FALSE);
	}		
}

⌨️ 快捷键说明

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