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

📄 statdlg.cpp

📁 一个关于怎样模拟双色球彩票的代码 非常好的哦~~ 直接在VC++6 可编译
💻 CPP
📖 第 1 页 / 共 3 页
字号:
        GetSingleRedBallTimes( 16, csarRedBall );
        break;
    case 17:
        GetSingleRedBallTimes( 17, csarRedBall );
        break;
    case 18:
        GetSingleRedBallTimes( 18, csarRedBall );
        break;
    case 19:
        GetSingleRedBallTimes( 19, csarRedBall );
        break;
    case 20:
        GetSingleRedBallTimes( 20, csarRedBall );
        break;
    case 21:
        GetSingleRedBallTimes( 21, csarRedBall );
        break;
    case 22:
        GetSingleRedBallTimes( 22, csarRedBall );
        break;
    case 23:
        GetSingleRedBallTimes( 23, csarRedBall );
        break;
    case 24:
        GetSingleRedBallTimes( 24, csarRedBall );
        break;
    case 25:
        GetSingleRedBallTimes( 25, csarRedBall );
        break;
    case 26:
        GetSingleRedBallTimes( 26, csarRedBall );
        break;
    case 27:
        GetSingleRedBallTimes( 27, csarRedBall );
        break;
    case 28:
        GetSingleRedBallTimes( 28, csarRedBall );
        break;
    case 29:
        GetSingleRedBallTimes( 29, csarRedBall );
        break;
    case 30:
        GetSingleRedBallTimes( 30, csarRedBall );
        break;
    case 31:
        GetSingleRedBallTimes( 31, csarRedBall );
        break;
    case 32:
        GetSingleRedBallTimes( 32, csarRedBall );
        break;
    case 33: // 红球33
        GetSingleRedBallTimes( 33, csarRedBall );
        break;
    default:
        break;
    }
}

// 统计单个蓝球
void CStatDlg::OnButtonStatSingleBlueBall() 
{
	// TODO: Add your control notification handler code here
	int nIndex = m_cmbBlueBall.GetCurSel();
    if ( -1 == nIndex  )
    {
        MessageBox( _T("^_^ 你还没有选择蓝球,请选择!"), 
			        _T("友情提示"), 
					MB_ICONASTERISK );
        return;
    }

    // 从RedBlueBallIni.ini文件中获得蓝球
    CStringArray csarBlueBall;
    GetAllBlueBall( csarBlueBall );	

    // 显示单个蓝球出现的次数
    CString csCurSelBlueBall = _T("");
    m_cmbBlueBall.GetLBText( nIndex, csCurSelBlueBall );
    int nCurSelBlueBall = atoi( csCurSelBlueBall );
    switch ( nCurSelBlueBall )
    {
    case 1:  // 蓝球1
        GetSingleBlueBallTimes( 1, csarBlueBall );
        break;
    case 2:  // 蓝球2
        GetSingleBlueBallTimes( 2, csarBlueBall );
        break;
    case 3:
        GetSingleBlueBallTimes( 3, csarBlueBall );
        break;
    case 4:
        GetSingleBlueBallTimes( 4, csarBlueBall );
        break;
    case 5:
        GetSingleBlueBallTimes( 5, csarBlueBall );
        break;
    case 6:
        GetSingleBlueBallTimes( 6, csarBlueBall );
        break;
    case 7:
        GetSingleBlueBallTimes( 7, csarBlueBall );
        break;
    case 8:
        GetSingleBlueBallTimes( 8, csarBlueBall );
        break;
    case 9:
        GetSingleBlueBallTimes( 9, csarBlueBall );
        break;
    case 10:
        GetSingleBlueBallTimes( 10, csarBlueBall );
        break;
    case 11:
        GetSingleBlueBallTimes( 11, csarBlueBall );
        break;
    case 12:
        GetSingleBlueBallTimes( 12, csarBlueBall );
        break;
    case 13:
        GetSingleBlueBallTimes( 13, csarBlueBall );
        break;
    case 14:
        GetSingleBlueBallTimes( 14, csarBlueBall );
        break;
    case 15:
        GetSingleBlueBallTimes( 15, csarBlueBall );
        break;
    case 16:  // 蓝球16
        GetSingleBlueBallTimes( 16, csarBlueBall );
        break;
    default:
        break;
    }
}

// 检查是否指定了红球和蓝球
void CStatDlg::OnCheckRedBlueBall() 
{
	// TODO: Add your control notification handler code here
	int nCurSelRedBall = m_cmbRedBall.GetCurSel();
    if ( -1 == nCurSelRedBall  )  // 没有选择红球
    {
        AfxMessageBox( _T("^_^ 你没有选择红球,请选择!") );
        m_chkRedBlueBall.SetCheck( 0 );
        return;
    }

    int nCurSelBlueBall = m_cmbBlueBall.GetCurSel();
    if ( -1 == nCurSelBlueBall  )  // 没有选择蓝球
    {
        AfxMessageBox( _T("^_^ 你没有选择蓝球,请选择!") );
        m_chkRedBlueBall.SetCheck( 0 );
        return;
    }

    GetDlgItem( IDC_BUTTON_STAT_SINGLE_RED_BALL )->EnableWindow( FALSE );
    GetDlgItem( IDC_BUTTON_STAT_SINGLE_BLUE_BALL )->EnableWindow( FALSE ); 
}

// 统计指定的红球和蓝球
void CStatDlg::OnButtonStatSelectedRedBlueBall() 
{
	// TODO: Add your control notification handler code here
	int nCheckStatus = m_chkRedBlueBall.GetCheck();

    if ( 0 == nCheckStatus )  // 没有点击指定复选框
    {
        AfxMessageBox( _T("^_^ 你必须先指定才能统计!") );
        return;
    }
    else if ( 1 == nCheckStatus )
    {
        OnButtonStatSingleRedBall();
        OnButtonStatSingleBlueBall();

        CStringArray csarIssue;
        GetIssue( csarIssue );
        int nCurMaxIssue = csarIssue.GetSize(); // 数组的大小
        CString csCurMaxIssue = _T("");
        csCurMaxIssue.Format( _T("%d"), nCurMaxIssue );
        CString csRedBlueBallTip = _T("^_^截止到第");
        csRedBlueBallTip += csCurMaxIssue;
        csRedBlueBallTip += _T("期,");

        if ( m_csRedBallTimes.IsEmpty() && (!m_csBlueBallTimes.IsEmpty()) )
        {            
            csRedBlueBallTip += _T("红球");  
            csRedBlueBallTip += m_csRedBallFlag;
            csRedBlueBallTip += _T("还没有出现过;");
            csRedBlueBallTip += _T("蓝球");  
            csRedBlueBallTip += m_csBlueBallFlag;
            csRedBlueBallTip += _T("出现过");
            csRedBlueBallTip += m_csBlueBallTimes;
            csRedBlueBallTip += _T("次。");
        
            MessageBox( csRedBlueBallTip, _T("友情提示"), MB_ICONASTERISK );
        }
        else if ( m_csBlueBallTimes.IsEmpty() && (!m_csRedBallTimes.IsEmpty()) )
        {            
            csRedBlueBallTip += _T("蓝球");  
            csRedBlueBallTip += m_csBlueBallFlag;
            csRedBlueBallTip += _T("还没有出现过;");
            csRedBlueBallTip += _T("红球");
            csRedBlueBallTip += m_csRedBallFlag;
            csRedBlueBallTip += _T("出现过");
            csRedBlueBallTip += m_csRedBallTimes;
            csRedBlueBallTip += _T("次。");
        
            MessageBox( csRedBlueBallTip, _T("友情提示"), MB_ICONASTERISK );
        }
        else if ( m_csBlueBallTimes.IsEmpty() && m_csRedBallTimes.IsEmpty() )
        {            
            csRedBlueBallTip += _T("红球"); 
            csRedBlueBallTip += m_csRedBallFlag;
            csRedBlueBallTip += _T("还没有出现过;");
            csRedBlueBallTip += _T("蓝球");   
            csRedBlueBallTip += m_csBlueBallFlag;
            csRedBlueBallTip += _T("蓝球也还没有出现过。"); 
        
            MessageBox( csRedBlueBallTip, _T("友情提示"), MB_ICONASTERISK );
        }
        else
        {
            csRedBlueBallTip += _T("红球");
            csRedBlueBallTip += m_csRedBallFlag;
            csRedBlueBallTip += _T("出现过");
            csRedBlueBallTip += m_csRedBallTimes;
            csRedBlueBallTip += _T("次;");
            csRedBlueBallTip += _T("蓝球"); 
            csRedBlueBallTip += m_csBlueBallFlag;
            csRedBlueBallTip += _T("出现过");
            csRedBlueBallTip += m_csBlueBallTimes;
            csRedBlueBallTip += _T("次。");
        
            MessageBox( csRedBlueBallTip, _T("友情提示"), MB_ICONASTERISK ); 
        }                               
    }
	else
    {
        // 这里不需要做任何事情.
    }

    GetDlgItem( IDC_BUTTON_STAT_SINGLE_RED_BALL )->EnableWindow( TRUE );
    GetDlgItem( IDC_BUTTON_STAT_SINGLE_BLUE_BALL )->EnableWindow( TRUE );
    m_chkRedBlueBall.SetCheck( 0 );
}

// 统计所有的球
void CStatDlg::OnButtonStatAllBall() 
{
	// TODO: Add your control notification handler code here
	m_bIsAllStat = true;

    // 创建excel.
    COleVariant vtOptional((long)DISP_E_PARAMNOTFOUND,
		VT_ERROR),vtTrue((short)TRUE),vtFalse((short)FALSE);
	_Application *ExcelApp = new _Application;

	ExcelApp->CreateDispatch(_T("excel.application"));

	// 设置为显示
	ExcelApp->SetVisible(TRUE);

	// 得到WorkBooks
	Workbooks  ExcelBook = ExcelApp->GetWorkbooks();
	Sheets     ExcelSheet = ExcelBook.Add(vtOptional);
	_Workbook  workBook;
	_Worksheet workSheet;
	Range    range;
	workBook.AttachDispatch(ExcelApp->GetApplication());
	ExcelSheet = workBook.GetSheets();

	workSheet = ExcelSheet.GetItem(COleVariant((short)1));
	workSheet.Activate();

	Range myallrange = workSheet.GetRange(COleVariant(_T("D1")),COleVariant(_T("H1")));
	myallrange.BorderAround(COleVariant((short)1),(long)2,(long)1,vtOptional);
	myallrange.SetHorizontalAlignment(COleVariant((short)3));
	myallrange.Merge(COleVariant((short)1));
    
    CStringArray csarIssue;
    GetIssue( csarIssue );
    int nCurMaxIssue = csarIssue.GetSize();
    CString csCurMaxIssue = _T("");
    csCurMaxIssue.Format( _T("%d"), nCurMaxIssue );
    CString csResultInfo = _T("截止到第");
    csResultInfo += csCurMaxIssue;
    csResultInfo += _T("期的统计结果");
    
	myallrange.SetValue(COleVariant(csResultInfo));

	Range myrange = workSheet.GetRange(COleVariant(_T("D2")),COleVariant(_T("D2")));
	myrange.SetValue(COleVariant(_T("红球")));
	myrange.BorderAround(COleVariant((short)1),(long)2,(long)1,vtOptional);
	myrange.SetHorizontalAlignment(COleVariant((short)3));
	myrange.SetVerticalAlignment(COleVariant((short)2));
	myrange.SetColumnWidth(COleVariant((short)15));

	myrange = workSheet.GetRange(COleVariant(_T("E2")),COleVariant(_T("E2")));
	myrange.SetValue(COleVariant(_T("出现的次数")));
	myrange.BorderAround(COleVariant((short)1),(long)2,(long)1,vtOptional);
	myrange.SetHorizontalAlignment(COleVariant((short)3));
	myrange.SetVerticalAlignment(COleVariant((short)2));
	myrange.SetColumnWidth(COleVariant((short)15));

	myrange = workSheet.GetRange(COleVariant(_T("F2")),COleVariant(_T("F2")));
	myrange.SetValue(COleVariant(_T("蓝球")));
	myrange.BorderAround(COleVariant((short)1),(long)2,(long)1,vtOptional);
	myrange.SetHorizontalAlignment(COleVariant((short)3));
	myrange.SetVerticalAlignment(COleVariant((short)2));
	myrange.SetColumnWidth(COleVariant((short)15));

	myrange = workSheet.GetRange(COleVariant(_T("G2")),COleVariant(_T("G2")));
	myrange.SetValue(COleVariant(_T("出现的次数")));
	myrange.BorderAround(COleVariant((short)1),(long)2,(long)1,vtOptional);
	myrange.SetHorizontalAlignment(COleVariant((short)3));
	myrange.SetVerticalAlignment(COleVariant((short)2));
	myrange.SetColumnWidth(COleVariant((short)15));

    myrange = workSheet.GetRange(COleVariant(_T("H2")),COleVariant(_T("H2")));
	myrange.SetValue(COleVariant(_T("备注:")));
	myrange.BorderAround(COleVariant((short)1),(long)2,(long)1,vtOptional);
	myrange.SetHorizontalAlignment(COleVariant((short)3));
	myrange.SetVerticalAlignment(COleVariant((short)2));
	myrange.SetColumnWidth(COleVariant((short)20));

	CString csColItem = _T("");
    CString csRedBallNumber = _T("");
    CString csRedBallValue = _T("");
	for ( int i = 3; i <= 35; i++ ) 
	{
		// 设置33个红球号
        csColItem.Format(_T("D%d"),i);
		Range myrange = workSheet.GetRange(COleVariant(csColItem),COleVariant(csColItem));
       
        csRedBallNumber.Format( _T("%d"), i - 2 );
    
		myrange.SetValue(COleVariant(csRedBallNumber));
		myrange.BorderAround(COleVariant((short)1),(long)2,(long)1,vtOptional);
		myrange.SetHorizontalAlignment(COleVariant((short)3));
		myrange.SetVerticalAlignment(COleVariant((short)2));    
        
        // 设置33个红球值
        csColItem.Format(_T("E%d"),i);
		myrange = workSheet.GetRange(COleVariant(csColItem),COleVariant(csColItem));
       
        // 从RedBlueBallIni.ini中取得红球
        CStringArray csarRedBallString;
        GetRedBallString(csarRedBallString);

        CStringArray csarRedBall;
        GetAllRedBall( csarRedBallString, csarRedBall );
        
        GetSingleRedBallTimes( i - 2, csarRedBall );
        csRedBallValue = m_csRedBallTimes;
    
		myrange.SetValue(COleVariant(csRedBallValue));
		myrange.BorderAround(COleVariant((short)1),(long)2,(long)1,vtOptional);
		myrange.SetHorizontalAlignment(COleVariant((short)3));
		myrange.SetVerticalAlignment(COleVariant((short)2));
    }

    CString csBlueBallNumber = _T("");
    CString csBlueBallValue = _T("");
	for ( int j = 3; j <= 18; j++ ) 
	{
		
        // 设置16个蓝球号
        csColItem.Format("F%d",j);
		Range myrange = workSheet.GetRange(COleVariant(csColItem),COleVariant(csColItem));
       
        csBlueBallNumber.Format( _T("%d"), j - 2 );
    
		myrange.SetValue(COleVariant(csBlueBallNumber));
		myrange.BorderAround(COleVariant((short)1),(long)2,(long)1,vtOptional);
		myrange.SetHorizontalAlignment(COleVariant((short)3));
		myrange.SetVerticalAlignment(COleVariant((short)2));  
        
        // 设置16个蓝球值
        csColItem.Format(_T("G%d"),j);
		myrange = workSheet.GetRange(COleVariant(csColItem),COleVariant(csColItem));
       
        // 从RedBlueBallIni.ini取得蓝球值
        CStringArray csarBlueBall;
        GetAllBlueBall( csarBlueBall );
        
        GetSingleBlueBallTimes( j - 2, csarBlueBall );
        csBlueBallValue = m_csBlueBallTimes;
    
		myrange.SetValue(COleVariant(csBlueBallValue));
		myrange.BorderAround(COleVariant((short)1),(long)2,(long)1,vtOptional);
		myrange.SetHorizontalAlignment(COleVariant((short)3));
		myrange.SetVerticalAlignment(COleVariant((short)2));
    }

    delete ExcelApp;	
    
    m_bIsAllStat = false;
}

// 检查期号
bool CStatDlg::CheckIssue()
{
    UpdateData();
    
    if ( m_csIssue.IsEmpty() )  // 期号为空
    {
        AfxMessageBox(_T("期号不能为空"));
        GetDlgItem(IDC_EDIT_ISSUE)->SetFocus();
        return false;
    }
    else
    {
        bool bIsDigit = CCommonTool::CheckDigit( m_csIssue, m_csIssue.GetLength() );
        if ( !bIsDigit )  // 输入的不是数字
        {
            AfxMessageBox(_T("你输入的期号不是纯数字,请重新输入"));
            m_csIssue = _T("");
            UpdateData( FALSE );
            GetDlgItem(IDC_EDIT_ISSUE)->SetFocus();
            return false;
        }
    }

    return true;
}

// 检查6个红球
bool CStatDlg::CheckSixRedBall()
{
    bool bIsValidRedBall1 = CheckRedBallValidity( m_csRedBall1, IDC_EDIT_RED_BALL1 );
    if ( !bIsValidRedBall1 )
    {
        AfxMessageBox(_T("你输入的红球1无效,请重新输入!"));
        return false;
    }

    bool bIsValidRedBall2 = CheckRedBallValidity( m_csRedBall2, IDC_EDIT_RED_BALL2 );
    if ( !bIsValidRedBall2 )
    {
        AfxMessageBox(_T("你输入的红球2无效,请重新输入!"));
        return false;
    }

    bool bIsValidRedBall3 = CheckRedBallValidity( m_csRedBall3, IDC_EDIT_RED_BALL3 );
    if ( !bIsValidRedBall3 )
    {
        AfxMessageBox(_T("你输入的红球3无效,请重新输入!"));
        return false;
    }

    bool bIsValidRedBall4 = CheckRedBallValidity( m_csRedBall4, IDC_EDIT_RED_BALL4 );
    if ( !bIsValidRedBall4 )
    {
        AfxMessageBox(_T("你输入的红球4无效,请重新输入!"));
        return false;
    }

    bool bIsValidRedBall5 = CheckRedBallValidity( m_csRedBall5, IDC_EDIT_RED_BALL5 );
    if ( !bIsValidRedBall5 )
    {

⌨️ 快捷键说明

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