网站建设资讯

NEWS

网站建设资讯

vb.net微秒 vbnet msdn

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

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

创新互联于2013年创立,先为历城等服务建站,历城等地企业,进行企业商务咨询服务。为历城企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

一、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设计一个以秒为基本单位的表,并且显示在窗体上的步骤,并且给出关键代码

是我以前自己设计的用来测试自己点钞速度用的,希望是你需要的

以下是窗体的全部代码

Public Class Form1

Dim StartFlag As Boolean = False

Dim secon As Integer

Dim minut As Integer

'空格

Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp

If e.KeyCode = Keys.Space Then

If StartFlag Then

StartFlag = False

Timer1.Enabled = False

If Val(Strings.Right(Label1.Text, 2))  10 And Val(Strings.Right(Label1.Text, 2)) = 0 Then secon = 0 : minut = 0 : Label1.Text = "00:00" : Exit Sub

ListBox1.Items.Add(Label1.Text.ToString)

ListBox1.SelectedItem = ListBox1.Items.Count - 1

Label1.Focus()

Button1.Enabled = True

Label1.Text = "00:00"

secon = 0

minut = 0

Else

StartFlag = True

Timer1.Enabled = True

End If

End If

End Sub

'加载

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

ListBox1.Items.Clear()

Label1.Text = "00:00"

Button1.Enabled = False

secon = 0

minut = 0

Label1.Focus()

End Sub

'清空

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Button1.Enabled = False

ListBox1.Items.Clear()

Label1.Focus()

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

secon += 1

If secon = 60 Then

secon = 0

minut += 1

End If

Dim seconStr As String = secon

If seconStr.Length = 1 Then seconStr = "0" + seconStr

Dim minutStr As String = minut

If minutStr.Length = 1 Then minutStr = "0" + minutStr

Label1.Text = minutStr + ":" + seconStr

Label1.Focus()

End Sub

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

Dim SeconSun As Integer

If ListBox1.Items.Count  0 Then

For i = 0 To ListBox1.Items.Count - 1

Dim TemStr As String = ListBox1.Items.Item(i).ToString

Dim TemInt1 As Integer = Val(Strings.Right(TemStr, 2))

Dim TemInt2 As Integer = Val(Strings.Left(TemStr, 2))

Debug.Print(TemInt1.ToString)

Debug.Print(TemInt2.ToString)

SeconSun += TemInt1 + TemInt2 * 60

Debug.Print(SeconSun.ToString)

Next

TextBox1.Text = (SeconSun / ListBox1.Items.Count).ToString + "秒"

End If

Label1.Focus()

End Sub

End Class

高精度计时器

可以实现,但是不是用vb.net提供的Timer控件,这个控件精度较低,只能用多线程循环检测时间,通过调用系统函数Environment.TickCount获取微秒级的时间:

sub threadloop

dim s as integer '保存上次调用函数的时间

do while true

if Environment.TickCount - s = 50 then '隔50微妙调用一次函数

s=Environment.TickCount

call xxx '调用外部函数

end if

loop

end sub

上面的函数放在多线程中运行

VB.net 如何设定准确的1秒时间?

form 的load事件中加一句:timer1.interval=1000

在一个按钮里面加入一句触发timer事件开始计时的代码:

timer1.enabled=true

timer的tick事件中加入这么两句:

textbox1.backcolor=color.red

timer1.enabled=false


当前名称:vb.net微秒 vbnet msdn
浏览地址:http://cdweb.net/article/ddcccgp.html