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

📄 yilufadlg.cpp

📁 VC编写的彩票分析软件源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
                if((Number[sfr][SoureFirstLine]+Number[ssr][SoureSecondLine])==Number[dr][DestationLine])
                {
                    (*Step)++;
                }
                else if(bLogarithmicFlag)
				{
					if(((Number[sfr][SoureFirstLine]+Number[ssr][SoureSecondLine]-5)==Number[dr][DestationLine])||((Number[sfr][SoureFirstLine]+Number[ssr][SoureSecondLine]+5)==Number[dr][DestationLine]))
					{
						(*Step)++;
					}
					else break;

				}else break;
            }
            
        }
        
        if((*Step)>=m_StepLong) 
        {
            if((ssr<=EndPiont+1)&&(sfr<=EndPiont+1)&&(dr<=EndPiont+1))
            {
                if((ssr==EndPiont+1)||(sfr==EndPiont+1)||(dr==EndPiont+1))
                {
                    if((sfr==EndPiont+1)&&((sfr!=ssr)&&(sfr!=dr)))
                    {
                        ////////out data sfr
                        for(UINT k=1;k<=m_OutNumber[SoureFirstLine][0];k++)
                        {
                            if(Number[dr][DestationLine]>=Number[ssr][SoureSecondLine])
                            {
                                if(m_OutNumber[SoureFirstLine][k]==(Number[dr][DestationLine]-Number[ssr][SoureSecondLine]))
                                {

                                    m_OutNumber[SoureFirstLine][11]=1;
                                    break;
                                }
                            }
                            else if(m_OutNumber[SoureFirstLine][k]==(Number[dr][DestationLine]+10-Number[ssr][SoureSecondLine]))
                            {
                                m_OutNumber[SoureFirstLine][11]=1;
                                break;
                            }
                            
                        }
                        if(m_OutNumber[SoureFirstLine][11]==0)
                        {
                                m_OutNumber[SoureFirstLine][0]++;
                                m_OutNumber[SoureFirstLine][11]=0;
                                m_OutNumber[SoureFirstLine][(m_OutNumber[SoureFirstLine][0])]=Number[dr][DestationLine]>=Number[ssr][SoureSecondLine]?Number[dr][DestationLine]-Number[ssr][SoureSecondLine]:Number[dr][DestationLine]+10-Number[ssr][SoureSecondLine];
                        }
                        else m_OutNumber[SoureFirstLine][11]=0;
                        ///////End Out data sfr
                        OutDataMap(SoureFirstRank,SoureFirstLine,SoureSecondRank,SoureSecondLine,DestationRank,DestationLine,(*Step),m_Step);
                    }
                    else if((ssr==EndPiont+1)&&((ssr!=sfr)&&(ssr!=dr)))
                    {
                        ////////out data ssr
                        for(UINT k=1;k<=m_OutNumber[SoureSecondLine][0];k++)
                        {
                            if(Number[dr][DestationLine]>=Number[sfr][SoureFirstLine])
                            {
                                if(m_OutNumber[SoureSecondLine][k]==(Number[dr][DestationLine]-Number[sfr][SoureFirstLine]))
                                {

                                    m_OutNumber[SoureSecondLine][11]=1;
                                    break;
                                }
                            }
                            else if(m_OutNumber[SoureSecondLine][k]==(Number[dr][DestationLine]+10-Number[sfr][SoureFirstLine]))
                            {
                                m_OutNumber[SoureSecondLine][11]=1;
                                break;
                            }
                            
                        }
                        if(m_OutNumber[SoureSecondLine][11]==0)
                        {
                                m_OutNumber[SoureSecondLine][0]++;
                                m_OutNumber[SoureSecondLine][11]=0;
                                m_OutNumber[SoureSecondLine][(m_OutNumber[SoureSecondLine][0])]=Number[dr][DestationLine]>=Number[sfr][SoureFirstLine]?Number[dr][DestationLine]-Number[sfr][SoureFirstLine]:(Number[dr][DestationLine]+10-Number[sfr][SoureFirstLine]);
                        }
                        else m_OutNumber[SoureSecondLine][11]=0;
                        ///////End Out data
                        OutDataMap(SoureFirstRank,SoureFirstLine,SoureSecondRank,SoureSecondLine,DestationRank,DestationLine,(*Step),m_Step);
                    }
                    else if((dr==EndPiont+1)&&((dr!=sfr)&&(dr!=ssr)))
                    {
                        /////////////der
                        
                        for(UINT k=1;k<=m_OutNumber[DestationLine][0];k++)
                        {
                            if(10>(Number[sfr][SoureFirstLine]+Number[ssr][SoureSecondLine]))
                            {
                                if(m_OutNumber[DestationLine][k]==(Number[sfr][SoureFirstLine]+Number[ssr][SoureSecondLine]))
                                {

                                    m_OutNumber[DestationLine][11]=1;
                                    break;
                                }
                            }
                            else if(m_OutNumber[DestationLine][k]==(Number[sfr][SoureFirstLine]+Number[ssr][SoureSecondLine])-10)
                            {
                                m_OutNumber[DestationLine][11]=1;
                                break;
                            }
                            
                        }
                        if(m_OutNumber[DestationLine][11]==0)
                        {
                                m_OutNumber[DestationLine][0]++;
                                m_OutNumber[DestationLine][11]=0;
                                m_OutNumber[DestationLine][(m_OutNumber[DestationLine][0])]=10>(Number[sfr][SoureFirstLine]+Number[ssr][SoureSecondLine])?(Number[sfr][SoureFirstLine]+Number[ssr][SoureSecondLine]):(Number[sfr][SoureFirstLine]+Number[ssr][SoureSecondLine])-10;
                        }
                        else m_OutNumber[DestationLine][11]=0;
                        ///////End Out data der
                        OutDataMap(SoureFirstRank,SoureFirstLine,SoureSecondRank,SoureSecondLine,DestationRank,DestationLine,(*Step),m_Step);
                    }
                }
            }
        }
    }

    return 0;
    }
    else//分析短局二数合一
    {
        m_Step=4;
        for(;m_Step*m_StepLong<=m_MaxRank;m_Step+=4,(*Step)=1)
    {   
        if((m_MaxRank%m_Step)!=0) continue;
        for(sfr=SoureFirstRank+m_Step,ssr=SoureSecondRank+m_Step,dr=DestationRank+m_Step;(sfr<=EndPiont)&&(ssr<=EndPiont)&&(dr<=EndPiont);sfr+=m_Step,ssr+=m_Step,dr+=m_Step)
        {
            if((Number[sfr][SoureFirstLine]+Number[ssr][SoureSecondLine])>=10)
            {
                if((Number[sfr][SoureFirstLine]+Number[ssr][SoureSecondLine]-10)==Number[dr][DestationLine])
                {
                    (*Step)++;
                }
                else if(bLogarithmicFlag)
				{
					if(((Number[sfr][SoureFirstLine]+Number[ssr][SoureSecondLine]-10)-5==Number[dr][DestationLine])||((Number[sfr][SoureFirstLine]+Number[ssr][SoureSecondLine]-10)+5==Number[dr][DestationLine]))
					{
						(*Step)++;
					}
					else break;
				}
				else break;
            }
            else
            {
                if((Number[sfr][SoureFirstLine]+Number[ssr][SoureSecondLine])==Number[dr][DestationLine])
                {
                    (*Step)++;
                }
                else if(bLogarithmicFlag)
				{
					if(((Number[sfr][SoureFirstLine]+Number[ssr][SoureSecondLine]-5)==Number[dr][DestationLine])||((Number[sfr][SoureFirstLine]+Number[ssr][SoureSecondLine]+5)==Number[dr][DestationLine]))
					{
						(*Step)++;
					}
					else break;

				}else break;
            }
            
        }
        
        if((*Step)>=m_StepLong) 
        {
            if((ssr<=EndPiont+1)&&(sfr<=EndPiont+1)&&(dr<=EndPiont+1))
            {
                if((ssr==EndPiont+1)||(sfr==EndPiont+1)||(dr==EndPiont+1))
                {
                    if((sfr==EndPiont+1)&&((sfr!=ssr)&&(sfr!=dr)))
                    {
                        ////////out data sfr
                        for(UINT k=1;k<=m_OutNumber[SoureFirstLine][0];k++)
                        {
                            if(Number[dr][DestationLine]>=Number[ssr][SoureSecondLine])
                            {
                                if(m_OutNumber[SoureFirstLine][k]==(Number[dr][DestationLine]-Number[ssr][SoureSecondLine]))
                                {

                                    m_OutNumber[SoureFirstLine][11]=1;
                                    break;
                                }
                            }
                            else if(m_OutNumber[SoureFirstLine][k]==(Number[dr][DestationLine]+10-Number[ssr][SoureSecondLine]))
                            {
                                m_OutNumber[SoureFirstLine][11]=1;
                                break;
                            }
                            
                        }
                        if(m_OutNumber[SoureFirstLine][11]==0)
                        {
                                m_OutNumber[SoureFirstLine][0]++;
                                m_OutNumber[SoureFirstLine][11]=0;
                                m_OutNumber[SoureFirstLine][(m_OutNumber[SoureFirstLine][0])]=Number[dr][DestationLine]>=Number[ssr][SoureSecondLine]?Number[dr][DestationLine]-Number[ssr][SoureSecondLine]:Number[dr][DestationLine]+10-Number[ssr][SoureSecondLine];
                        }
                        else m_OutNumber[SoureFirstLine][11]=0;
                        ///////End Out data sfr
                        OutDataMap(SoureFirstRank,SoureFirstLine,SoureSecondRank,SoureSecondLine,DestationRank,DestationLine,(*Step),m_Step);
                    }
                    else if((ssr==EndPiont+1)&&((ssr!=sfr)&&(ssr!=dr)))
                    {
                        ////////out data ssr
                        for(UINT k=1;k<=m_OutNumber[SoureSecondLine][0];k++)
                        {
                            if(Number[dr][DestationLine]>=Number[sfr][SoureFirstLine])
                            {
                                if(m_OutNumber[SoureSecondLine][k]==(Number[dr][DestationLine]-Number[sfr][SoureFirstLine]))
                                {

                                    m_OutNumber[SoureSecondLine][11]=1;
                                    break;
                                }
                            }
                            else if(m_OutNumber[SoureSecondLine][k]==(Number[dr][DestationLine]+10-Number[sfr][SoureFirstLine]))
                            {
                                m_OutNumber[SoureSecondLine][11]=1;
                                break;
                            }
                            
                        }
                        if(m_OutNumber[SoureSecondLine][11]==0)
                        {
                                m_OutNumber[SoureSecondLine][0]++;
                                m_OutNumber[SoureSecondLine][11]=0;
                                m_OutNumber[SoureSecondLine][(m_OutNumber[SoureSecondLine][0])]=Number[dr][DestationLine]>=Number[sfr][SoureFirstLine]?Number[dr][DestationLine]-Number[sfr][SoureFirstLine]:(Number[dr][DestationLine]+10-Number[sfr][SoureFirstLine]);
                        }
                        else m_OutNumber[SoureSecondLine][11]=0;
                        ///////End Out data
                        OutDataMap(SoureFirstRank,SoureFirstLine,SoureSecondRank,SoureSecondLine,DestationRank,DestationLine,(*Step),m_Step);
                    }
                    else if((dr==EndPiont+1)&&((dr!=sfr)&&(dr!=ssr)))
                    {
                        /////////////der
                        
                        for(UINT k=1;k<=m_OutNumber[DestationLine][0];k++)
                        {
                            if(10>(Number[sfr][SoureFirstLine]+Number[ssr][SoureSecondLine]))
                            {
                                if(m_OutNumber[DestationLine][k]==(Number[sfr][SoureFirstLine]+Number[ssr][SoureSecondLine]))
                                {

                                    m_OutNumber[DestationLine][11]=1;
                                    break;
                                }
                            }
                            else if(m_OutNumber[DestationLine][k]==(Number[sfr][SoureFirstLine]+Number[ssr][SoureSecondLine])-10)
                            {
                                m_OutNumber[DestationLine][11]=1;
                                break;
                            }
                            
                        }
                        if(m_OutNumber[DestationLine][11]==0)
                        {
                                m_OutNumber[DestationLine][0]++;
                                m_OutNumber[DestationLine][11]=0;
                                m_OutNumber[DestationLine][(m_OutNumber[DestationLine][0])]=10>(Number[sfr][SoureFirstLine]+Number[ssr][SoureSecondLine])?(Number[sfr][SoureFirstLine]+Number[ssr][SoureSecondLine]):(Number[sfr][SoureFirstLine]+Number[ssr][SoureSecondLine])-10;
                        }
                        else m_OutNumber[DestationLine][11]=0;
                        ///////End Out data der
                        OutDataMap(SoureFirstRank,SoureFirstLine,SoureSecondRank,SoureSecondLine,DestationRank,DestationLine,(*Step),m_Step);
                    }
                }
            }
        }
    }

    return 0;
    }
    
}

void CYilufaDlg::OutDataMap(UINT OutSoFiRa, UINT OutSoFiLi, UINT OutSoSeRa, UINT OutSoSeLi, UINT OutDeRa, UINT OutDeLi, UINT Step,UINT StepLong)
{

    if(gls<100)
    {
	m_ScrollB.SetScrollPos(0);
    OutLaw[gls][0]=OutSoFiRa;
    OutLaw[gls][1]=OutSoFiLi;
    OutLaw[gls][2]=OutSoSeRa;
    OutLaw[gls][3]=OutSoSeLi;
    OutLaw[gls][4]=OutDeRa;
    OutLaw[gls][5]=OutDeLi;
    OutLaw[gls][6]=Step;
    OutLaw[gls][7]=StepLong;
    
	gls++;
    m_CurrentLaw=gls;
    }
    else
    {
    m_ScrollB.SetScrollPos(0);
    OutLaw[99][0]=OutSoFiRa;
    OutLaw[99][1]=OutSoFiLi;
    OutLaw[99][2]=OutSoSeRa;
    OutLaw[99][3]=OutSoSeLi;
    OutLaw[99][4]=OutDeRa;
    OutLaw[99][5]=OutDeLi;
    OutLaw[99][6]=Step;
    OutLaw[99][7]=StepLong;
    gls++;
    }
    
	RollView();

    ContrlStop();
}
/////////////////////////////////////////////////////////////////////////////
// CResult dialog


CResult::CResult(CWnd* pParent /*=NULL*/)
: CDialog(CResult::IDD, pParent)
{
    //{{AFX_DATA_INIT(CResult)
    //}}AFX_DATA_INIT
}


void CResult::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CResult)
    //}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CResult, CDialog)
//{{AFX_MSG_MAP(CResult)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CResult message handlers

BOOL CResult::OnInitDialog() 
{
    return TRUE;  // return TRUE unless you set the focus to a control
    // EXCEPTION: OCX Property Pages should return FALSE
}

UINT FindLaw(LPVOID pParam)
{
    CYilufaDlg* dlg=(CYilufaDlg*)pParam;
    dlg->gls=0;
    if(dlg->bOneFlag)
    {
        dlg->FTwoToOne();
    }
    /////////////////////////
    if(dlg->bCombinationFlag)
    {
        dlg->FThreeToTwo();
    }
    /////////////////////////
    if(dlg->bTwoToTwo)
    {
        dlg->FTwoToTwo();
    }
    /////////
    dlg->bFinishFlag=FALSE;
    PostThreadMessage(dlg->dw,WM_QUIT,0,0);//stop show step thread
    
    dlg->m_ToWork.EnableWindow(TRUE);
    (dlg->GetDlgItem(IDC_LAWLONG))->EnableWindow(TRUE);
    dlg->GetDlgItem(IDC_TOWORK)->SetFocus();
    
    
    return 0;
}
DWORD WINAPI ShowStep(LPVOID pDlg)
{
    CYilufaDlg* dlg=(CYilufaDlg*)pDlg;
    dlg->bFinishFlag=TRUE;
    MSG msg;
    int i=0;
    while(GetMessage(&msg,NULL,0,0))
    {
        switch(msg.message)
        {
        case TM_STEP: i++;
            dlg->m_Progress.SetPos(i);
            if(i>300) i=0;
            break;
        default:  break;
        }
    }
    
    /*while(dlg->bFinishFlag)
    {
    for(int i=0;i<300;i++)
    dlg->m_Progress.SetPos(i);
    (dlg->GetWindowDC())->TextOut(i,5,"a");
}*/
    
    return 0;
}

void CYilufaDlg::OnStop() 
{
    
   UpdateData(TRUE);
    if(pThread!=NULL)
    {
        if(!m_bStopFlag)
        {
            m_bStopFlag=TRUE;
			m_StopButton.SetWindowText("继续分析");
            //m_StopButton.text="继续分析";
            //m_StopButton.Invalidate(true);
            pThread->SuspendThread();
            
        }
        else
        {
            m_bStopFlag=FALSE;
			m_StopButton.SetWindowText("暂停分析");
            //m_StopButton.text="暂停分析";
            //m_StopButton.Invalidate(true);
            pThread->ResumeThread();
            
            
        }
    }
    
}

void CYilufaDlg::OnAddnew() 
{

⌨️ 快捷键说明

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