| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 524 人关注过本帖
标题:vb编程~高手进 数字广度测试
只看楼主 加入收藏
myppsky
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-7-10
收藏
 问题点数:0 回复次数:1 
vb编程~高手进 数字广度测试
是一个关于数字记忆广度的东东
基本就是随机产生一个数字
从4位到10位
每位测试四次
比如四位的就可能是:1345,2468,9867,8872
只要输对了一次,加一位,变成五位的,如果全错,程序就停止

最大记忆广度值:基础分是3分,正确一次就加0.25
得出结果:是最大记忆广度和最大记忆位数
解释:比如你设i=1 to 4
就是四次
四位随机产生的数字
如果答对一次就加一次分,然后转入五位数测试。如果一次也没答对,就是退出
对不起,我没有多余的分,要不都给你了
谢谢了
问题补充:要求数字产生之后,紧接着就消失了,这时再进行输入
就是: 这个是我们要做的实验:实验Ⅱ:
当被试做好准备后,主试按下“启动”键。
实验从记忆位长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



不知能不能满足要求,希望可以帮忙测试一下,再整出一个程序文件
谢谢了
搜索更多相关主题的帖子: 数字 
2007-07-10 18:37
myppsky
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-7-10
收藏
得分:0 
回复:(myppsky)vb编程~高手进 数字广度测试
其中有一段
Private Sub Showf()
rd = Getrd(lng)
Label1.Caption = rd
Command2.Enabled = False
Text1.Enabled = False
Timer1.Enabled = True
End Sub
修改后:
Private Sub Showf()
rd = Getrd(lng)
Label1.Caption = rd
Command2.Enabled = True
Text1.Enabled = True
Timer1.Enabled = True
End Sub
程序自己调试了一下可以运行
问题是:如何能够让产生的数字,规定的时间内消失
然后再输入数字
再进行如上的程序
因为是考查瞬时记忆的实验,所以肯定要消失的
2007-07-10 21:37
快速回复:vb编程~高手进 数字广度测试
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037269 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved