vb编程~高手进 数字广度测试
基本就是随机产生一个数字
从4位到10位
每位测试四次
比如四位的就可能是:1345,2468,9867,8872
只要输对了一次,加一位,变成五位的,如果全错,程序就停止
最大记忆广度值:基础分是3分,正确一次就加0.25
得出结果:是最大记忆广度和最大记忆位数
解释:比如你设i=1 to 4
就是四次
四位随机产生的数字
如果答对一次就加一次分,然后转入五位数测试。如果一次也没答对,就是退出
对不起,我没有多余的分,要不都给你了
谢谢了
问题补充:要求数字产生之后,紧接着就消失了,这时再进行输入
就是: 这个是我们要做的实验:实验Ⅱ:
当被试做好准备后,主试按下“启动”键。
实验从记忆位长4位开始,每位重复4遍,最大记忆位长为10位。瞬时记忆广度值基础分为3.00分,如某遍回答正确,瞬时记忆广度值加0.25 分。如果某记忆位长实验四遍皆错,此实验结束;如果有一遍回答正确,记忆位长增加1位,
测定瞬时记忆广度值实验结束后,被试键盘指示灯将闪烁几下,开始进入测定最大记忆位数值实验。10位记忆信息全部显示5遍,被试通过键盘按记忆信息呈现的顺序回答,如果中间有没记住的,则按一下“*”键。
长声提示实验结束,显示实验结果。第一行为设定的瞬时刺激时间、第二行为瞬时记忆广度值、第三行为最大记忆位数值。
按主试面板的“启动”键,实验可重新开始。按其他键可重新设定实验条件。
就是: 这个是我们要做的实验:实验Ⅱ:
当被试做好准备后,主试按下“启动”键。
实验从记忆位长4位开始,每位重复4遍,最大记忆位长为10位。瞬时记忆广度值基础分为3.00分,如某遍回答正确,瞬时记忆广度值加0.25 分。如果某记忆位长实验四遍皆错,此实验结束;如果有一遍回答正确,记忆位长增加1位,
测定瞬时记忆广度值实验结束后,被试键盘指示灯将闪烁几下,开始进入测定最大记忆位数值实验。10位记忆信息全部显示5遍,被试通过键盘按记忆信息呈现的顺序回答,如果中间有没记住的,则按一下“*”键。
长声提示实验结束,显示实验结果。第一行为设定的瞬时刺激时间、第二行为瞬时记忆广度值、第三行为最大记忆位数值。
按主试面板的“启动”键,实验可重新开始。按其他键可重新设定实验条件。
这是网友帮编的一个程序,没有程序文件
程序清单:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim rd As String
Dim lng, score, tim
Private Sub Command1_Click()
If Command1.Caption = "重新开始" Then
If MsgBox("您确定要重新开始吗?", vbQuestion + vbYesNo, "数字广度测试") = vbYes Then Call newf
Else
Call newf
End If
End Sub
Private Sub Command2_Click()
If Text1.Text = Trim(rd) Then
score = score + 0.25
lng = lng + 1
tim = 4
Label1.Caption = "回答正确!继续..."
Call Shows
DoEvents
Sleep 1000
Call Showf
Else
tim = tim - 1
If tim > 0 Then
Label1.Caption = "错误,您还有" & tim & "次机会!"
DoEvents
Sleep 1000
Call Showf
Else
MsgBox "测试结束!你的最大记忆广度为" & score & "分,你的最大记忆位数为" & lng & "位!", vbInformation, "数字广度测试"
End If
End If
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub Timer1_Timer()
Label1.Caption = "请回答,并填入下框中。"
Text1.Enabled = True
Text1.Text = ""
Text1.SetFocus
Command2.Enabled = True
Timer1.Enabled = False
End Sub
Function Getrd(num)
Randomize (Timer)
x = Rnd
ca = Str(Int(x * 10 ^ num)) '获取lng位的随机数rd
For i = 0 To num - Len(ca) '不足lng位的在前面添0
ca = " 0" & Trim(ca)
Next i
Getrd = ca
End Function
Private Sub Showf()
rd = Getrd(lng)
Label1.Caption = rd
Command2.Enabled = False
Text1.Enabled = False
Timer1.Enabled = True
End Sub
Private Sub Shows()
Label2.Caption = score
Label3.Caption = lng
End Sub
Private Sub newf()
tim = 4
lng = 4 '初始位数
score = 3 '初始分数
Call Shows
Call Showf
Command1.Caption = "重新开始"
End Sub
不知能不能满足要求,希望可以帮忙测试一下,再整出一个程序文件
谢谢了