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

📄 xuanxiang.cpp

📁 采用c++编写的有关svm交叉验证的程序。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    m_weightlist.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);//设置表格属性.
 
	CButton* p12 = (CButton*)GetDlgItem(IDC_CHECK12);p12->SetCheck(0);
    CButton* p13 = (CButton*)GetDlgItem(IDC_CHECK13);p13->SetCheck(0);
	// default values
	//param.svm_type = C_SVC;
	//param.kernel_type = RBF;
	m_kdegree = 3;
	m_ky = 0;	// 1/k
	m_kr = 0;
	m_nu = 0.5;
	m_cache = 40;
	m_cset = 1;
	m_eps = 1e-3;
	m_plost = 0.1;
	shrinking = 1;
	probability = 1;
	m_nfold=0;

    UpdateData(FALSE);


    disable();
	GetDlgItem(IDC_EDIT6)->EnableWindow(1);
	GetDlgItem(IDC_EDIT7)->EnableWindow(1);
	GetDlgItem(IDC_EDIT14)->EnableWindow(1);
    
	Maxiter=10000;
	SetDlgItemInt(IDC_EDIT20,Maxiter);

	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}

void Cxuanxiang::OnBnClickedButton1()
{
	//响应输入按钮  
	UpdateData();
    if (m_weight==0)
		return;
	++param0.nr_weight;
    param0.weight_label = (int *)realloc(param0.weight_label,sizeof(int)*param0.nr_weight);//提供内存空间
    param0.weight = (double *)realloc(param0.weight,sizeof(double)*param0.nr_weight);//提供内存空间
    param0.weight_label[param0.nr_weight-1] = m_weightclass;
    param0.weight[param0.nr_weight-1] = m_weight;
	listini();
}

void Cxuanxiang::OnBnClickedButton3()
{
	//《响应删除按钮
    //m_list3.EnsureVisible(selectindex-1,false);//使新加条目可见   selectindex-2是倒数第二个,
	//m_list3.SetItemState(selectindex-1, LVIS_SELECTED, LVIS_SELECTED);//使条目处于选中状态 
	int nIndex = m_weightlist.GetNextItem(-1,LVNI_ALL|LVNI_SELECTED);
	if(nIndex == -1)
	{
		MessageBox("请选择一个权");
		return;//如果未选中,则返回
	}
	else              
	{  
		int allindex = m_weightlist.GetItemCount();
	    --param0.nr_weight;
    //    param0.weight_label = (int *)realloc(param0.weight_label,sizeof(int)*param0.nr_weight);//提供内存空间
  //      param0.weight = (double *)realloc(param0.weight,sizeof(double)*param0.nr_weight);//为什么不能减少内存???
        for (int t=nIndex; t<allindex;t++)
		{
			param0.weight_label[t] = param0.weight_label[t+1];//后一个的数字加入到删除的标号
            param0.weight[t] = param0.weight[t+1];
		}
	    listini();
	}
}

void Cxuanxiang::OnBnClickedButton2()
{
    CFileDialog fdlg(true,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"打开文件 (*.*)|*.*||");
	
	if(fdlg.DoModal()!=IDOK)
	{	
		return;
	}
	m_filename=fdlg.GetPathName();
	SetDlgItemText(IDC_EDIT11,m_filename);
}

void Cxuanxiang::OnBnClickedButton4()
{
	CFileDialog fdlg(false,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"保存文件 (*.model)|*.model||");
	if(fdlg.DoModal()!=IDOK)
	{	
		return;
	}
	m_filename1=fdlg.GetPathName();	SetDlgItemText(IDC_EDIT12,m_filename1);

}

void Cxuanxiang::listini(void)
{
	ASSERT(m_weightlist);
	m_weightlist.DeleteAllItems();
	for(int r=0;r<param0.nr_weight;r++)
    {
	    CString str;
	    str.Format ("%d",param0.weight_label[r]);
	    m_weightlist.InsertItem(r,str,0); //插入一行新数据,i为行数.str为第一行第一个数据.每插入一行调用一次.
	    str.Format("%0.4f",param0.weight[r]);
	    m_weightlist.SetItemText(r,1,str);//设置新行的第二个数据	
    }
}

void Cxuanxiang::disable(void)
{
	m_eps = 1e-3;
	SetDlgItemText(IDC_EDIT5,"0.001");
	GetDlgItem(IDC_EDIT1)->EnableWindow(0);
	GetDlgItem(IDC_EDIT2)->EnableWindow(0);
	GetDlgItem(IDC_EDIT3)->EnableWindow(0);
	GetDlgItem(IDC_EDIT6)->EnableWindow(0);SetDlgItemText(IDC_EDIT6,"1");
	GetDlgItem(IDC_EDIT7)->EnableWindow(0);SetDlgItemText(IDC_EDIT7,"0");
	GetDlgItem(IDC_EDIT14)->EnableWindow(0);SetDlgItemText(IDC_EDIT14,"0");
	GetDlgItem(IDC_EDIT8)->EnableWindow(0);SetDlgItemText(IDC_EDIT8,"0.5");
	GetDlgItem(IDC_EDIT9)->EnableWindow(0);SetDlgItemText(IDC_EDIT9,"0.1");
	GetDlgItem(IDC_CHECK13)->EnableWindow(1);
    CButton* p13 = (CButton*)GetDlgItem(IDC_CHECK13);
	p13->SetCheck(0);
    CButton* p12 = (CButton*)GetDlgItem(IDC_CHECK12);
	p12->SetCheck(0);

	param0.nr_weight = 0;
	param0.weight_label = NULL;
	param0.weight = NULL;
	listini();

	if(m_svmty.GetCurSel() == 0)
	{
		GetDlgItem(IDC_EDIT6)->EnableWindow(1);
		GetDlgItem(IDC_EDIT7)->EnableWindow(1);
		GetDlgItem(IDC_EDIT14)->EnableWindow(1);
	}
	if(m_svmty.GetCurSel() == 1)
	{
		m_eps = 1e-5;
		SetDlgItemText(IDC_EDIT5,"0.00001");
		GetDlgItem(IDC_EDIT8)->EnableWindow(1);
	}
	if(m_svmty.GetCurSel() == 2)
	{
		GetDlgItem(IDC_EDIT8)->EnableWindow(1);
		GetDlgItem(IDC_CHECK13)->EnableWindow(0);
	}
	if(m_svmty.GetCurSel() == 3)
	{
		GetDlgItem(IDC_EDIT6)->EnableWindow(1);
		GetDlgItem(IDC_EDIT9)->EnableWindow(1);
	}
	if(m_svmty.GetCurSel() == 4)
	{
		GetDlgItem(IDC_EDIT6)->EnableWindow(1);
		GetDlgItem(IDC_EDIT8)->EnableWindow(1);
	}

	//if(m_kty.GetCurSel() == 0)
	//{
	//}
	if(m_kty.GetCurSel() == 1)
	{
		GetDlgItem(IDC_EDIT1)->EnableWindow(1);
		GetDlgItem(IDC_EDIT2)->EnableWindow(1);
	    GetDlgItem(IDC_EDIT3)->EnableWindow(1);
	}
	if(m_kty.GetCurSel() == 2)
	{
		GetDlgItem(IDC_EDIT2)->EnableWindow(1);
	}
	if(m_kty.GetCurSel() == 3)
	{
		GetDlgItem(IDC_EDIT2)->EnableWindow(1);
		GetDlgItem(IDC_EDIT3)->EnableWindow(1);
	}
	if(m_kty.GetCurSel() == 4)
	{
	GetDlgItem(IDC_EDIT6)->EnableWindow(1);
	GetDlgItem(IDC_EDIT7)->EnableWindow(1);
	GetDlgItem(IDC_EDIT14)->EnableWindow(1);
	GetDlgItem(IDC_EDIT8)->EnableWindow(1);
	GetDlgItem(IDC_EDIT9)->EnableWindow(1);

	}
	OnBnClickedCheck14();
}

void Cxuanxiang::OnCbnSelchangeCombo1()
{
    disable();
}

void Cxuanxiang::OnCbnSelchangeCombo2()
{
    disable();
}

void Cxuanxiang::OnBnClickedCheck14()
{
    CButton* p14 = (CButton*)GetDlgItem(IDC_CHECK14);
    if(!p14->GetCheck())
	{
	GetDlgItem(IDC_CHECK13)->EnableWindow(1);
	//GetDlgItem(IDC_CHECK12)->EnableWindow(1);
		yichuan=0;SetDlgItemInt(IDC_EDIT10,0);
	GetDlgItem(IDC_EDIT19)->ShowWindow(0);
	GetDlgItem(IDC_STATIC0)->ShowWindow(0);
	GetDlgItem(IDC_EDIT21)->ShowWindow(0);
	GetDlgItem(IDC_STATIC1)->ShowWindow(0);
	GetDlgItem(IDC_EDIT22)->ShowWindow(0);
	GetDlgItem(IDC_STATIC2)->ShowWindow(0);
	GetDlgItem(IDC_EDIT23)->ShowWindow(0);
	GetDlgItem(IDC_STATIC3)->ShowWindow(0);
	GetDlgItem(IDC_EDIT24)->ShowWindow(0);
	GetDlgItem(IDC_STATIC4)->ShowWindow(0);
	GetDlgItem(IDC_EDIT25)->ShowWindow(0);
	GetDlgItem(IDC_STATIC5)->ShowWindow(0);
	GetDlgItem(IDC_EDIT26)->ShowWindow(0);
	GetDlgItem(IDC_STATIC6)->ShowWindow(0);
	GetDlgItem(IDC_EDIT27)->ShowWindow(0);
	GetDlgItem(IDC_EDIT28)->ShowWindow(0);
	GetDlgItem(IDC_STATIC7)->ShowWindow(0);
	GetDlgItem(IDC_STATIC8)->ShowWindow(0);
	GetDlgItem(IDC_STATIC10)->ShowWindow(0);GetDlgItem(IDC_STATIC11)->ShowWindow(0);
	GetDlgItem(IDC_EDIT29)->ShowWindow(0);GetDlgItem(IDC_EDIT30)->ShowWindow(0);
//	GetDlgItem(IDC_BUTTON6)->ShowWindow(0);
	}
	else
	{
	yichuan=1;
	SetDlgItemInt(IDC_EDIT10,5);
	GetDlgItem(IDC_STATIC10)->ShowWindow(1);GetDlgItem(IDC_STATIC11)->ShowWindow(1);
    GetDlgItem(IDC_EDIT29)->ShowWindow(1);GetDlgItem(IDC_EDIT30)->ShowWindow(1);
	//GetDlgItem(IDC_BUTTON6)->ShowWindow(1);
    CButton* p13 = (CButton*)GetDlgItem(IDC_CHECK13);
	p13->SetCheck(0);p13->EnableWindow(0);
   // CButton* p12 = (CButton*)GetDlgItem(IDC_CHECK12);
//	p12->SetCheck(0);p12->EnableWindow(0);

	if(GetDlgItem(IDC_EDIT1)->IsWindowEnabled())
	{
	GetDlgItem(IDC_EDIT19)->ShowWindow(1);
	GetDlgItem(IDC_STATIC0)->ShowWindow(1);
	}
	else
	{
	GetDlgItem(IDC_EDIT19)->ShowWindow(0);
	GetDlgItem(IDC_STATIC0)->ShowWindow(0);
	}

	if(GetDlgItem(IDC_EDIT3)->IsWindowEnabled())
	{
	GetDlgItem(IDC_EDIT21)->ShowWindow(1);
	GetDlgItem(IDC_STATIC1)->ShowWindow(1);
	GetDlgItem(IDC_EDIT22)->ShowWindow(1);
	GetDlgItem(IDC_STATIC2)->ShowWindow(1);
	}
	else
	{
	GetDlgItem(IDC_EDIT21)->ShowWindow(0);
	GetDlgItem(IDC_STATIC1)->ShowWindow(0);
	GetDlgItem(IDC_EDIT22)->ShowWindow(0);
	GetDlgItem(IDC_STATIC2)->ShowWindow(0);
	}
	if(GetDlgItem(IDC_EDIT8)->IsWindowEnabled())
	{
	GetDlgItem(IDC_EDIT23)->ShowWindow(1);
	GetDlgItem(IDC_STATIC3)->ShowWindow(1);
	GetDlgItem(IDC_EDIT24)->ShowWindow(1);
	GetDlgItem(IDC_STATIC4)->ShowWindow(1);
	}
	else
	{
	GetDlgItem(IDC_EDIT23)->ShowWindow(0);
	GetDlgItem(IDC_STATIC3)->ShowWindow(0);
	GetDlgItem(IDC_EDIT24)->ShowWindow(0);
	GetDlgItem(IDC_STATIC4)->ShowWindow(0);
	}
	if(GetDlgItem(IDC_EDIT9)->IsWindowEnabled())
	{
	GetDlgItem(IDC_EDIT25)->ShowWindow(1);
	GetDlgItem(IDC_STATIC5)->ShowWindow(1);
	GetDlgItem(IDC_EDIT26)->ShowWindow(1);
	GetDlgItem(IDC_STATIC6)->ShowWindow(1);
	}
	else
	{
	GetDlgItem(IDC_EDIT25)->ShowWindow(0);
	GetDlgItem(IDC_STATIC5)->ShowWindow(0);
	GetDlgItem(IDC_EDIT26)->ShowWindow(0);
	GetDlgItem(IDC_STATIC6)->ShowWindow(0);
	}

	if(GetDlgItem(IDC_EDIT6)->IsWindowEnabled())
	{
	GetDlgItem(IDC_EDIT27)->ShowWindow(1);
	GetDlgItem(IDC_EDIT28)->ShowWindow(1);
	GetDlgItem(IDC_STATIC7)->ShowWindow(1);
	GetDlgItem(IDC_STATIC8)->ShowWindow(1);
	}
	else
	{
	GetDlgItem(IDC_EDIT27)->ShowWindow(0);
	GetDlgItem(IDC_EDIT28)->ShowWindow(0);
	GetDlgItem(IDC_STATIC7)->ShowWindow(0);
	GetDlgItem(IDC_STATIC8)->ShowWindow(0);
	}
	}
}

//void Cxuanxiang::OnBnClickedButton6()
//{
//    CFileDialog fdlg(true,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"打开文件 (*.*)|*.*||");
//	
//	if(fdlg.DoModal()!=IDOK)
//	{	
//		return;
//	}
//	m_yichuanfile=fdlg.GetPathName();
//	SetDlgItemText(IDC_EDIT13,m_yichuanfile);
//}

⌨️ 快捷键说明

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