我看了书,是个有五个LABEL1控件哈,x+y=z
就是这样的加法,
x和y都是用的随机生成的100内的整数哈!然后,有个计算,点了后,我们输入他们随机产生的数字,有两个嘛,我们就可以直接给出答案,要是我们答对了,就把答案直接复制给z哈,就这样,我的代码是下面,那样的,可是老是对了,出不来,错了,倒是可以重新来,高手看看代码那里错了,谢谢指教
Private Sub Command1_Click()
Dim sum As Single
Dim mz As String
sum = Val(Label1.Caption) + Val(Label3.Caption)
flag = 1
mz$ = "计算" + Label1.Caption + "+" + Label3.Caption
Do While flag = 1
info$ = InputBox$(mz$, "计算", , 4500)
If sum <> info$ Then
flag = 0
temp = MsgBox("数据不正确", 36, "数据核对框")
If temp = 6 Then
flag = 1
End If
End If
Label5.Caption = info$
LoopEnd SubPrivate Sub Command2_Click()
Unload Me
End SubPrivate Sub Form_Load()
Randomize Timer
Label1.Caption = CInt(Rnd * 100)
Label3.Caption = CInt(Rnd * 100)
End Sub
就是这样的加法,
x和y都是用的随机生成的100内的整数哈!然后,有个计算,点了后,我们输入他们随机产生的数字,有两个嘛,我们就可以直接给出答案,要是我们答对了,就把答案直接复制给z哈,就这样,我的代码是下面,那样的,可是老是对了,出不来,错了,倒是可以重新来,高手看看代码那里错了,谢谢指教
Private Sub Command1_Click()
Dim sum As Single
Dim mz As String
sum = Val(Label1.Caption) + Val(Label3.Caption)
flag = 1
mz$ = "计算" + Label1.Caption + "+" + Label3.Caption
Do While flag = 1
info$ = InputBox$(mz$, "计算", , 4500)
If sum <> info$ Then
flag = 0
temp = MsgBox("数据不正确", 36, "数据核对框")
If temp = 6 Then
flag = 1
End If
End If
Label5.Caption = info$
LoopEnd SubPrivate Sub Command2_Click()
Unload Me
End SubPrivate Sub Form_Load()
Randomize Timer
Label1.Caption = CInt(Rnd * 100)
Label3.Caption = CInt(Rnd * 100)
End Sub
解决方案 »
- 串口调试-接收新数据前清空原来的数据问题
- 有没有完美的屏闭XP里面的Ctrl+Alt+Del键的控件、代码、或Dll???
- 谁知道VB写的ACTIVEX DLL中的form 是否支持DDE技术?
- 在一个循环中是否能让循环暂时停止,等到满足一定条件再从停止的地方继续进行?
- 急:EhLib组件能不能用在VB中
- 如何做自己的类
- 用VB写com组件时,不能定义名字文open、name的属性值或方法,怎么办?
- 连通检测 ---本计算机是否与internet相连通
- 讨论如何保持数据库的唯一性
- 急:是否使用VBA打开PPT中一页,并可以用其他语言调用,如java等
- 急需原代码!!!!
- hisofty(瘦马)接分,其他人勿进(mzy7511)
Do While flag = 1
info$ = InputBox$(mz$, "计算", , 4500)
If sum <> info$ Then
flag = 0
temp = MsgBox("数据不正确", 36, "数据核对框")
If temp = 6 Then '看到没有,这个判断执行到的条件是上一个条件成立。
flag = 1 '逻辑乱了吧。
End If
End If
Label5.Caption = info$
Loop
楼上几位说得很正确,没有良好的代码风格,是对自己也是对别人的不尊重,谁敢改你写的程序?“乱码”很难成为技术高手的。
Dim sum As Single
Dim mz As String
sum = Val(Label1.Caption) + Val(Label3.Caption)
flag = 1
mz$ = "计算" + Label1.Caption + "+" + Label3.Caption
Do While flag = 1
info$ = InputBox$(mz$, "计算", , 4500)
flag = 0
If sum <> info$ Then
temp = MsgBox("数据不正确", 36, "数据核对框")
If temp = 6 Then
flag = 1
End If
End If
Label5.Caption = info$
LoopEnd SubPrivate Sub Command2_Click()
Unload Me
End SubPrivate Sub Form_Load()
Randomize Timer
Label1.Caption = CInt(Rnd * 100)
Label3.Caption = CInt(Rnd * 100)
End Sub
你的逻辑错了,我怎么知道你的真实意图是什么,怎么改?下面是我根据自己的理解给你的解答,看看是不是你想要的结果吧,如果理解错了你别骂:Private Sub Command1_Click()
Dim sum As Single
Dim mz As String
sum = Val(Label1.Caption) + Val(Label3.Caption)
flag = 1
mz$ = "计算" + Label1.Caption + "+" + Label3.Caption
Do While flag = 1
info$ = InputBox$(mz$, "计算", , 4500)
If sum <> info$ Then
flag = 1
temp = MsgBox("数据不正确", 36, "数据核对框")
Else
flag = 0
End If
Label5.Caption = info$
Loop
End SubPrivate Sub Command2_Click()
Unload Me
End SubPrivate Sub Form_Load()
Randomize Timer
Label1.Caption = CInt(Rnd * 100)
Label3.Caption = CInt(Rnd * 100)
End Sub问问题的时候,要把要求说清楚,
另外请尊重帮助你的人。不管别人为你回答对了还是错了!