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

📄 ulottery.pas

📁 由sbzldlb发布的这款程序是关于彩票根据数据推算出号码。
💻 PAS
📖 第 1 页 / 共 3 页
字号:
          M_RedMinCount.Text:=IntToStr(I+1)+' '+M_RedMinCount.Text
        else M_RedMinCount.Text:='0'+IntToStr(I+1)+' '+M_RedMinCount.Text  

      end;
    end;

    M_FenXiJieGuo.Lines.Add('');
    M_FenXiJieGuo.Lines.Add('-----------蓝球出现次数最多和最少的号码-----------');



    MaxCountBall:=BLueBallInfo[0].BallCount;
    MInCountBall:=BLueBallInfo[0].BallCount;
    for I:=1 to 15 do
    begin
      if MaxCountBall< BLueBallInfo[I].BallCount then  MaxCountBall:= BLueBallInfo[I].BallCount;
      if MInCountBall> BLueBallInfo[I].BallCount then  MInCountBall:= BLueBallInfo[I].BallCount;
    end;

    for I:=0 to 15 do
    begin
      if MaxCountBall= BLueBallInfo[I].BallCount then
      begin
        M_FenXiJieGuo.Lines.Add('蓝球出现次数最多的号码是:'+IntToStr(I+1)+' 出现的次数是:'+IntToStr(MaxCountBall));

        M_BlueMaxCount.Text:=IntToStr(I+1)+' '+M_BlueMaxCount.Text;
      end;
    end;
    
    for I:=0 to 15 do
    begin
      if MInCountBall= BLueBallInfo[I].BallCount then
      begin
        M_FenXiJieGuo.Lines.Add('蓝球出现次数最少的号码是:'+IntToStr(I+1)+' 出现的次数是:'+IntToStr(MInCountBall));

        M_BlueMinCount.Text:=IntToStr(I+1)+' '+M_BlueMinCount.Text;
      end;
    end;

    //号码平均合值     AveHeZhi,AveJianJu:Integer;
    M_FenXiJieGuo.Lines.Add('');
    M_FenXiJieGuo.Lines.Add('-----------号码平均合值-----------');
    AveHeZhi:=0;
    for I:=0 to L_XiangMuTu.Items.Count-1 do
    begin
      if L_XiangMuTu.Items[I].SubItems[7]<>'' then 
        AveHeZhi:=AveHeZhi+StrToInt(L_XiangMuTu.Items[I].SubItems[7]);
    end;
    M_FenXiJieGuo.Lines.Add('号码合值的平均值是:'+IntToStr(Round(AveHeZhi/L_XiangMuTu.Items.Count)));
    E_HeZhiAve.Text:=IntToStr(Round(AveHeZhi/L_XiangMuTu.Items.Count));

    //号码平均间距
    M_FenXiJieGuo.Lines.Add('');
    M_FenXiJieGuo.Lines.Add('-----------号码平均间距-----------');
    AveJianJu:=0;
    for I:=0 to L_XiangMuTu.Items.Count-1 do
    begin
      if L_XiangMuTu.Items[I].SubItems[8]<>'' then
        AveJianJu:=AveJianJu+StrToInt(L_XiangMuTu.Items[I].SubItems[8]);
    end;
    M_FenXiJieGuo.Lines.Add('号码间距的平均值是:'+IntToStr(Round(AveJianJu/L_XiangMuTu.Items.Count)));
    E_JianJuAve.Text:=IntToStr(Round(AveJianJu/L_XiangMuTu.Items.Count));
    
    //奇数的平均值      AveJiShu,AveOuShu
    M_FenXiJieGuo.Lines.Add('');
    M_FenXiJieGuo.Lines.Add('-----------奇数的平均值-----------');
    AveJiShu:=0;
    for I:=0 to L_XiangMuTu.Items.Count-1 do
    begin
      if L_XiangMuTu.Items[I].SubItems[6]<>'' then
        AveJiShu:=AveJiShu+StrToInt(L_XiangMuTu.Items[I].SubItems[6]);
    end;
    M_FenXiJieGuo.Lines.Add('奇数的平均值是:'+FloatToStr(AveJiShu/L_XiangMuTu.Items.Count));
    E_JiShuAve.Text:=FloatToStr(AveJiShu/L_XiangMuTu.Items.Count);


    //偶数的平均值
    M_FenXiJieGuo.Lines.Add('');
    M_FenXiJieGuo.Lines.Add('-----------偶数的平均值-----------');
    AveOuShu:=0;
    for I:=0 to L_XiangMuTu.Items.Count-1 do
    begin
      if L_XiangMuTu.Items[I].SubItems[5]<>'' then
        AveOuShu:=AveOuShu+StrToInt(L_XiangMuTu.Items[I].SubItems[5]);
    end;
    M_FenXiJieGuo.Lines.Add('偶数的平均值是:'+FloatToStr(AveOuShu/L_XiangMuTu.Items.Count));
    E_OuShuAve.Text:=FloatToStr(AveOuShu/L_XiangMuTu.Items.Count);

  end;
end;

//算彩票号码
procedure TLotteryFrm.GetNewLotteryID;
var
  BallIDIsUsed:array[0..32] of Boolean; 
  I,J:Integer;
  ResultStr:String;
  SubStr:String;
  RedLottery1,RedLottery2,RedLottery3,RedLottery4,RedLottery5,RedLottery6:Byte;
  OneLottery:Integer;
  MaxBall:Boolean;
begin
  for I:=0 to 32 do
    BallIDIsUsed[I]:=False;

  ResultStr:='';
  
  if C_BallColor.Text='红球' then
  begin
    J:=0;
    for I:=1 to 33 do
    begin
      if I<=9 then
        SubStr:='0'+IntToStr(I)
      else
        SubStr:=IntToStr(I);

      if Pos(SubStr,M_RedMaxCount.Text)>0 then
      begin
        J:=J+1;
        case j of
          1:RedLottery1:=I;
          2:RedLottery2:=I;
          3:RedLottery3:=I;
          4:RedLottery4:=I;
          5:RedLottery5:=I;
          6:RedLottery6:=I;
        end;
      end;

      if Pos(SubStr,M_RedMinCount.Text)>0 then
      begin
        J:=J+1;
        case j of
          1:RedLottery1:=I;
          2:RedLottery2:=I;
          3:RedLottery3:=I;
          4:RedLottery4:=I;
          5:RedLottery5:=I;
          6:RedLottery6:=I;
        end;
      end;
    end;

    MaxBall:=false;

    OneLottery:= GetMaxID(RedLottery1,
      RedLottery2,
      RedLottery3,
      RedLottery4,
      RedLottery5,
      RedLottery6)-StrToInt(E_JianJuAve.Text);

    if OneLottery>0 then
    begin
      if OneLottery>9 then
      begin
        if Pos(IntToStr(OneLottery),M_LastThreeID.Text)<=0 then
        begin
          if Round((RedLottery1+RedLottery2+RedLottery3+OneLottery)/4)>StrToInt(E_JianJuAve.Text) then
          begin
            J:=J+1;
            case j of
              1:RedLottery1:=OneLottery;
              2:RedLottery2:=OneLottery;
              3:RedLottery3:=OneLottery;
              4:RedLottery4:=OneLottery;
              5:RedLottery5:=OneLottery;
              6:RedLottery6:=OneLottery;
            end;
            MaxBall:=True;
          end;
        end;
      end else
      begin
        if Pos('0'+IntToStr(OneLottery),M_LastThreeID.Text)<=0 then
        begin
          if Round((RedLottery1+RedLottery2+RedLottery3+OneLottery)/4)>StrToInt(E_JianJuAve.Text) then
          begin
            J:=J+1;
            case j of
              1:RedLottery1:=OneLottery;
              2:RedLottery2:=OneLottery;
              3:RedLottery3:=OneLottery;
              4:RedLottery4:=OneLottery;
              5:RedLottery5:=OneLottery;
              6:RedLottery6:=OneLottery;
            end;
            MaxBall:=True;            
          end;
        end;
      end;
    end;

    if MaxBall=False then
    begin
      OneLottery:=GetMinID(RedLottery1,
        RedLottery2,
        RedLottery3,
        RedLottery4,
        RedLottery5,
        RedLottery6)+StrToInt(E_JianJuAve.Text);

      J:=J+1;
      case j of
        1:RedLottery1:=OneLottery;
        2:RedLottery2:=OneLottery;
        3:RedLottery3:=OneLottery;
        4:RedLottery4:=OneLottery;
        5:RedLottery5:=OneLottery;
        6:RedLottery6:=OneLottery;
      end;
    end;


    if Round((RedLottery1+RedLottery2+RedLottery3+RedLottery4)/4)>StrToInt(E_JianJuAve.Text) then
    begin
      for I:=RedLottery1 to StrToInt(E_JianJuAve.Text) do
      begin

        if I<=9 then
          SubStr:='0'+IntToStr(I)
        else
          SubStr:=IntToStr(I);

        if (Pos(SubStr,M_LastThreeID.Text)<=0)
          and (I<>RedLottery1)
          and (I<>RedLottery2)
          and (I<>RedLottery3)
          and (I<>RedLottery4) then
        begin
          J:=J+1;
          case j of
            1:RedLottery1:=I;
            2:RedLottery2:=I;
            3:RedLottery3:=I;
            4:RedLottery4:=I;
            5:RedLottery5:=I;
            6:RedLottery6:=I;
          end;
          break;
        end;

      end;
    end else
    begin
      for I:= StrToInt(E_JianJuAve.Text) to RedLottery4 do
      begin

        if I<=9 then
          SubStr:='0'+IntToStr(I)
        else
          SubStr:=IntToStr(I);

        if (Pos(SubStr,M_LastThreeID.Text)<=0)
          and (I<>RedLottery1)
          and (I<>RedLottery2)
          and (I<>RedLottery3)
          and (I<>RedLottery4) then
        begin
          J:=J+1;
          case j of
            1:RedLottery1:=I;
            2:RedLottery2:=I;
            3:RedLottery3:=I;
            4:RedLottery4:=I;
            5:RedLottery5:=I;
            6:RedLottery6:=I;
          end;
          break;
        end;
      end;      
    end;
    
    OneLottery:=0;
    while OneLottery= 0 do
    begin
      OneLottery:=random(33);
      if (OneLottery<>0)
          and (OneLottery<>RedLottery1)
          and (OneLottery<>RedLottery2)
          and (OneLottery<>RedLottery3)
          and (OneLottery<>RedLottery4)
          and (OneLottery<>RedLottery4) then
      begin

      end else
      begin
        OneLottery:=0;  
      end;

      
    end;
    J:=J+1;
    case j of
      1:RedLottery1:=OneLottery;
      2:RedLottery2:=OneLottery;
      3:RedLottery3:=OneLottery;
      4:RedLottery4:=OneLottery;
      5:RedLottery5:=OneLottery;
      6:RedLottery6:=OneLottery;
    end;

    E_NewID.Text:=IntToStr(RedLottery1)+' '+
                  IntToStr(RedLottery2)+' '+
                  IntToStr(RedLottery3)+' '+
                  IntToStr(RedLottery4)+' '+
                  IntToStr(RedLottery5)+' '+
                  IntToStr(RedLottery6)+' ';
  end else
  begin

  end;
end;

procedure TLotteryFrm.C_BallColorChange(Sender: TObject);
begin
  C_BallID.Clear;
  //常规走势
  ChangGuiZouShi;
  //分布图
  FenBuTu;
  //项目图
  XiangMuTu;
  //分析数据
  FenXiShuJu;
  //得到号码
  GetNewLotteryID;
end;

procedure TLotteryFrm.C_BallIDChange(Sender: TObject);
var
  OneBallAdoQuery : TAdoQuery;
  XMLStr          : String;
  I               : Integer;
begin
  if (Sender as TComboBox).Text<>'' then
  begin
    OneBallAdoQuery:=TAdoQuery.Create(Nil);
    try
      OneBallAdoQuery.Connection:=ADOConnection1;
      OneBallAdoQuery.Close;
      OneBallAdoQuery.SQL.Text:='select * From Lottery order by LotteryID Desc';
      OneBallAdoQuery.Open;

      for I:=0 to OneBallAdoQuery.RecordCount-1 do
      begin

        if C_BallColor.Text='红色' then
        begin

          if  (OneBallAdoQuery.FieldByname('RedLottery1').AsString=C_BallID.Text) or
              (OneBallAdoQuery.FieldByname('RedLottery2').AsString=C_BallID.Text) or
              (OneBallAdoQuery.FieldByname('RedLottery3').AsString=C_BallID.Text) or
              (OneBallAdoQuery.FieldByname('RedLottery4').AsString=C_BallID.Text) or
              (OneBallAdoQuery.FieldByname('RedLottery5').AsString=C_BallID.Text) or
              (OneBallAdoQuery.FieldByname('RedLottery6').AsString=C_BallID.Text) then
          begin
            XMLStr:=XMLStr
              +'<ROW'
              +' X="'+OneBallAdoQuery.FieldByname('LotteryID').AsString
              +'" '
              +' Y="'+'1'
              +'" '
              +'/>';
          end else
          begin
            XMLStr:=XMLStr
              +'<ROW'
              +' X="'+OneBallAdoQuery.FieldByname('LotteryID').AsString
              +'" '
              +' Y="'+'0'
              +'" '
              +'/>';
          end;

        end else
        begin

          if  (OneBallAdoQuery.FieldByname('BlueLottery').AsString=C_BallID.Text) then
          begin
            XMLStr:=XMLStr
              +'<ROW'
              +' X="'+OneBallAdoQuery.FieldByname('LotteryID').AsString
              +'" '
              +' Y="'+'1'
              +'" '
              +'/>';
          end else
          begin
            XMLStr:=XMLStr
              +'<ROW'
              +' X="'+OneBallAdoQuery.FieldByname('LotteryID').AsString
              +'" '
              +' Y="'+'0'
              +'" '
              +'/>';
          end;

        end;

        OneBallAdoQuery.Next;
      end;
      
      XMLStr:=GetXMLHead+XMLStr+GetXMLEnd;
      SetSeriesData;
      ClientDataSet.XMLData:=XMLStr;
      ClientDataSet.Open;
      
    finally
      FreeAndNil(OneBallAdoQuery);
    end;
  end;
end;

procedure TLotteryFrm.N2Click(Sender: TObject);
begin
  Close;
end;

procedure TLotteryFrm.N4Click(Sender: TObject);
begin
  MessageBox(Handle,'只要将数据导入数据库,就可以分析!','帮助?',MB_OK);
end;

procedure TLotteryFrm.N5Click(Sender: TObject);
begin
  MessageBox(Handle,'这是双色球彩票分析器!'+#13#10
    +'版本:1.0'+#13#10
    +'有问题请联系:sbzldlb@163.com'+#13#10
    +'欢迎专业人事指点!'+#13#10,
    '关于!',MB_OK);
end;



end.

⌨️ 快捷键说明

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