⽤VB制作四则运算器步骤及代码
⽤V B制作四则运算器
步骤及代码
Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT
⼀、实验⽬的、⽬标
综合运⽤本课程的相关知识,完成两位数四则运算器的设计、编写与测试,培养学⽣的实践动⼿能⼒,并检测本课程的学习效果。
⼆、实验内容
大学vb实验教程答案基本要求:
两位数(指10-99的⾃然数)的加减乘除(除法指的是整除)运算,其中减法和除法必须满⾜“被操作数不⼩于操作数”(即可以不考虑20-
56、4\20等情况)
两个操作数、运算符均随机产⽣
完成⼀题后⾃动判断对错,并显⽰出来
可以随时查看已经完成的题⽬情况
完成⼀题⾃动计算题⽬总数、正确数、错误数和正确率,并实时显⽰出来
扩展要求(不硬性规定):
在答错的题⽬后⾯给出正确答案
可增加时钟控件,10秒(或15秒)内必须完成⼀题
限制题⽬数⽬为固定值(如20题、50题)
把程序扩展成为多位数甚⾄任意位数的运算器
三、实验过程与步骤
1、在Visual Basic 系统环境下,打开“⼯程设计”窗⼝。
2、新建两个窗⼝Form1和Form2,添加控件并进⾏控件的设置, Form1作⽤是进⾏题⽬数量和答题时间的选择并将数据进⾏保存以供Form2调
⽤,Form2的作⽤是进⾏随机两位数(指10-99的⾃然数)的加减乘除
(除法指的是整除)运算,完成⼀题后⾃动判断对错,给出错误题⽬的正确答案,并显⽰出来,添加时间钟控,显⽰计算题⽬总数、正确数、错误数和正确率。
3、在Form1窗⼝,双击控件打开代码窗⼝,设计窗体及控件的事件代码。采⽤单选的形式选择题⽬数量和答题时间,当点击确定按钮时,调⽤
Form2,当点击退出时,退出整个程序。
Public tishu As Integer, shijian As Integer
Private Sub Form_Load()
= False
= False
=
=
MsgBox "请选择题量和答题时间!", 48, "提⽰"
Unload Form2
End Sub
Private Sub Option1_Click(Index As Integer)
tishu = Val(Option1(Index).Caption)
= tishu
End Sub
Private Sub Option2_Click(Index As Integer)
shijian = Val(Option2(Index).Caption)
= shijian
End Sub
Private Sub Command1_Click()
MsgBox "请直接在⽂本框中输⼊数字作答(其中除法为整除)," & vbLf & "回车完成⼀题,系统⾃动⽣成下⼀题", , "提⽰" End Sub
Private Sub Command2_Click()
End
End Sub
4、在Form2窗⼝,双击控件打开代码窗⼝,设计窗体及控件的事件代码。
(1)定义变量
Dim a() As Integer
Dim b() As Integer
Dim c() As Integer
Dim result() As Double
Dim cou As Integer
Dim n As String
Dim X As String
Dim i As Integer
Dim p As Integer
Dim sum As Integer
Dim right As Integer
Dim wrong As Integer
Dim w As Double
Dim ww As String
Dim S As Integer
Dim d As Integer
(2)两位随机数(指10-99的⾃然数)的加减乘除(除法指的是整除)运算Private Sub product()
ReDim Preserve a(cou)
ReDim Preserve b(cou)
ReDim Preserve c(cou)
ReDim Preserve result(cou)
a(cou) = 10 + Int(Rnd * 90)
b(cou) = 1 + Int(Rnd * 4)
c(cou) = 10 + Int(Rnd * 90)
Select Case b(cou)
Case 1
= CStr(a(cou))
= CStr(c(cou))
result(cou) = a(cou) + c(cou)
= "+"
Case 2
If Val(CStr(a(cou))) > Val(CStr(c(cou))) Then
= CStr(a(cou))
= CStr(c(cou))
result(cou) = a(cou) - c(cou)
Else
= CStr(c(cou))
= CStr(a(cou))
result(cou) = c(cou) - a(cou)
End If
= "-"
Case 3
= CStr(a(cou))
= CStr(c(cou))
result(cou) = a(cou) * c(cou)
= "*"
Case 4
If Val(CStr(a(cou))) > Val(CStr(c(cou))) Then
= CStr(a(cou))
= CStr(c(cou))
result(cou) = Int(a(cou) / c(cou))
Else
= CStr(c(cou))
= CStr(a(cou))
result(cou) = Int(c(cou) / a(cou))
End If
= "/"
End Select
End Sub
(3)设定Form2加载时的相关数据
Private Sub Form_Load()
=
=
Randomize
Call product
= "剩余时间" & Space(2) & S & Space(1) & "S"
sum = 0
right = 0
wrong = 0
w = 0
End Sub
(4)通过⼀个钟控和⼀个⽂本框的回车键⽅法实现两位随机数(指10-99的⾃然数)的加减乘除(除法指的是整除)运算的判断,给出错误答案并将式⼦显⽰出来,统计正确题数和错误题数
Private Sub Timer1_Timer()
If p >= 0 Then
i = i + 1
p = S - i
= "剩余时间" & Space(2) & p & Space(1) & "S"
End If
If p = 0 Then
wrong = wrong + 1
= "错误题数:" & Space(2) & wrong
n = "×"
X = result(cou)
& & & & & Chr(32) & CStr(n) & Space(3) & "答案是" & CStr(X)) i = -1
Call product
End If
Unload Form2
Load Form1
MsgBox "请重新选择题量和答题时间或者退出系统", 48, "提⽰" End If
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
i = -1
If = "" Or IsNumeric = False Then
MsgBox "请输⼊答案!", 48, "提⽰"
Else
If Val <> result(cou) Then n = "×" Else n = "√"
If n = "×" Then
wrong = wrong + 1
= "错误题数:" & Space(2) & wrong
X = result(cou)
& & & & & Chr(32) & CStr(n) & Space(3) & "答案是" & CStr(X)) Else
right = right + 1
= "正确题数:" & Space(2) & right
& & & & & Chr(32) & CStr(n))
End If
= ""
End If
Call product
End If
End Sub
(5)利⽤另⼀个钟控统计已答题数和正确率
Private Sub Timer2_Timer()
sum = right + wrong
= "已答题数:" & Space(2) & sum
If sum > 0 Then
w = right / sum
If w = 0 Then
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论