包含vb.net抽签的词条

vb.net 多次滚动抽奖的程序代码

我用多线程写的,你可以参考下。

创新互联建站是一家专注于网站设计制作、成都做网站与策划设计,鼎城网站建设哪家好?创新互联建站做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:鼎城等地区。鼎城做网站价格咨询:028-86922220

系统界面图如下:(注:重置功能为清除已经中奖号码,回归1-100都可以中奖状态。)

代码:

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

System.Threading.Thread g_Thread = null;

Listint g_list = new Listint();

int g_Num = 0;

delegate void g_delegate();

/// summary

/// 开始

/// /summary

/// param name="sender"/param

/// param name="e"/param

private void button2_Click(object sender, EventArgs e)

{

if(g_list.Count==100)

{

MessageBox.Show("所有数字已使用,请重置!");

return;

}

button3.Enabled = true;

Random r = new Random();

g_delegate dele= ChangeTxt;

g_Thread = new System.Threading.Thread(() =

{

while(this.IsDisposed==false)

{

g_Num = r.Next(1, 100);

if(g_list.Contains(g_Num))

{

g_Num =  1;

}

while(g_list.Contains(g_Num))

{

g_Num++;

}

this.Invoke(dele);

System.Threading.Thread.Sleep(50);

}

});

g_Thread.Start();

}

void ChangeTxt()

{

label2.Text = g_Num.ToString();

}

/// summary

/// 停止

/// /summary

/// param name="sender"/param

/// param name="e"/param

private void button3_Click(object sender, EventArgs e)

{

//if(g_Thread.ThreadState==System.Threading.ThreadState.Running)

{

g_Thread.Abort();

g_list.Add(Convert.ToInt32(label2.Text));

}

button3.Enabled = false;

}

/// summary

/// 重置

/// /summary

/// param name="sender"/param

/// param name="e"/param

private void button1_Click(object sender, EventArgs e)

{

g_list.Clear();

}

private void Form1_FormClosed(object sender, FormClosedEventArgs e)

{

System.Environment.Exit(0);

}

}

VB.net随机产生10个小于数字不重复

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim i, j

j = GetRndNotRepeat(1, 10, 10)

If j(0) Then

For i = 1 To 10

MsgBox(j(i))

Next

End If

End Sub

Public Function GetRndNotRepeat(ByVal NumMin As Integer, ByVal NumMax As Integer, ByVal n As Integer)

'编制:xsfhlzh

'功能:取NumMin到NumMax间的n个随机整数

'说明:取数标志数组是Byte,每一位表示NumMin到NumMax间某个数的状态

Dim arr() As Integer

If n NumMax - NumMin + 1 Then

ReDim arr(0)

arr(0) = 0

Return arr

Else

ReDim arr(n)

Dim m As Integer

Dim b() As Byte

m = Int((NumMax - NumMin) / 8)

ReDim b(m)

'取数标志

Dim i

Dim x, y, z As Integer

Randomize()

arr(0) = 1

For i = 1 To n

Do

'找到x的位置,y表示x在数组的第几个字节,z表示x在该字节的第几位

x = Int(Rnd() * (NumMax - NumMin + 1)) + NumMin

y = x - NumMin

z = 2 ^ (y Mod 8)

y = y \ 8

Loop While b(y) And z

b(y) = b(y) Or z

arr(i) = x

'找到未取的数,并放入数组,设置标志位

Next i

End If

Return arr

End Function

怎么用VB做一个随机抽取器?

只要在代码中使用随机函数即可实现随机抽取功能

一、vb随机数生成的方法

vb随机数生成函数是 Rnd[(number)],number 参数为可选项。在调用 Rnd 生成随机数之前,先使用 Randomize 初始化随机数生成器来产生种子,该生成器是根据系统计时器来产生种子的。

1、生成100以内的随机数

Randomize

Int(Rnd() * 100)//生成 0 - 99 之间的随机数

Int(Rnd() * 101)//生成 0 - 100 之间的随机数

   2、生成指定范围随机数

由于 vb 没有提供直接生成指定范围随机数的函数,所以要把 Rnd 变通一下,方法如下:

Int((上限 - 下限 + 1) * Rnd + 下限);

把它封装成可直接调用的函数如下:

Function GetRandom(under, over As Integer) As Integer

If under over Then

temp = under;

under = over;

over = temp;

End If

Randomize

GetRandom = Int((under - over + 1) * Rnd + over);

End Function

调用方法:

GetRandom(10, 100);//生成10到100的随机数

二、vb.net生成随机数的方法

1、方法:Random.Next(int minValue, int maxValue);

2、说明:

若 minValue 和 maxValue 都没有提供,则生成一个 0 - 2147483647 之间的随机数;

若 minValue 和 maxValue 只提供一个,则生成一个 0 - maxValue 之间的随机数;

若 minValue 和 maxValue 两个都提供,则生成一个 minValue - maxValue 之间的随机数;

3、举例

Dim ran = New System.Random()

ran.Next()//生成 0 - 2147483647 之间的随机数

ran.Next(100)//生成 0 - 100 之间的随机数

ran.Next(10, 100)//生成 10 - 100 之间的随机数

Dim ran = New Random(DateTime.Now.Millisecond)//通过日期的微秒生成随机数


当前标题:包含vb.net抽签的词条
分享地址:http://myzitong.com/article/hpjeep.html