大一VB程序设计 题目求 大神帮忙
具体要求:基本表达式和部分常用函数的使用,如rnd()、isnumeric();rnd()虽然可随机生成数据,但每次运行后随机生成的次序有一定规律,可在rnd语句行前添加...
具体要求:
基本表达式和部分常用函数的使用,如rnd()、isnumeric();
rnd()虽然可随机生成数据,但每次运行后随机生成的次序有一定规律,可在rnd语句行前添加randomize语句行,实现完全每次运行均生成随机数据;
一个应用的功能逐步完善的步骤,应从体验者和设计者的角度分别考虑很多;
通过自动生成“大数-小数”的算式,了解后测型循环的使用;
通过减法功能的加入,了解多分支语句的使用。
操作步骤: 设计一个随机题板,可随机生成两个1-2位正整数的算式,用户填入算式结果后,单击“计算判断”可提示结果对错等信息。请按下列步骤逐一完善题板功能,并将完成的所有代码复制粘贴并提交问题1-2(红色文字)的答案:
题板最初应有三个控件分别显示两个随机数和接收用户结果的输入,应有一个控件提示计算结果对错,一个算式连接还必须有两个label显示运算符和等号,还需要两个commandbutton分别实现出题和计算判断的功能;
单击“再出一题”,随机生成算式的两个计算数,并不允许自行修改算式,单击“计算判断”实现计算结果的对错判断并显示。提示:控件textbox输入的内容默认为字符串,需通过val(s)转换s(全部为数字)为数值才能计算;
结果输入后,默认回车即进行“计算判断”,且算式结果应不允许“计算判断”后再提交判断。问题1:为什么设计中会有如此的功能考虑?
除能“计算判断”,还有“给出提示”的功能即显示算式的答案;
“计算判断”后除能提示结果对错外,还能实现对错的计数,即正确m次或错误n次;
既然对错次数能累计,就应该设置一个按钮“清空记录”用以清除已有对错的累计次数;
没有“计算判断”前不允许“再出一题”。问题2:为什么设计中会有如此的功能考虑?;
算式结果不允许输入非数值。提示:函数isnumeric(s)可判断字符串s是否为数值;
算式默认为加法运算,再添加功能可切换至减法运算。提示:如果使用控件optionbutton来切换加减法,则optionbutton.value=true代表该单选项被选定,此时不仅算式中运算符要改变,“计算判断”中也要相应增加功能。提示:可使用多分支判断语句如下:select case label.captioncase "+"语句块case "-"语句块end select
对于减法算式,若出现“小数-大数”的算式时自动重新生成“大数-小数”的算式。提示:自动重新生成“大数-小数”的算式可使用do...loop循环;
到此为止,该随机题板的应用功能基本设计完整,如要体验性更好,可为各commandbutton添加快捷键,且默认输入位置(即焦点)均在算式结果处,还可同样扩展生成乘除算式且被除数不能为0等。提示:为控件设置焦点如textbox.setfocus即为设置当前焦点在textbox中;
如你觉得设计的题板功能不甚完善,请在上机心得中进行设计的补充,将根据你记录的功能设计或上机心得、窗体及代码设计给予评语或评分!
注:分享我设计的随机题板窗体界面如下。 展开
基本表达式和部分常用函数的使用,如rnd()、isnumeric();
rnd()虽然可随机生成数据,但每次运行后随机生成的次序有一定规律,可在rnd语句行前添加randomize语句行,实现完全每次运行均生成随机数据;
一个应用的功能逐步完善的步骤,应从体验者和设计者的角度分别考虑很多;
通过自动生成“大数-小数”的算式,了解后测型循环的使用;
通过减法功能的加入,了解多分支语句的使用。
操作步骤: 设计一个随机题板,可随机生成两个1-2位正整数的算式,用户填入算式结果后,单击“计算判断”可提示结果对错等信息。请按下列步骤逐一完善题板功能,并将完成的所有代码复制粘贴并提交问题1-2(红色文字)的答案:
题板最初应有三个控件分别显示两个随机数和接收用户结果的输入,应有一个控件提示计算结果对错,一个算式连接还必须有两个label显示运算符和等号,还需要两个commandbutton分别实现出题和计算判断的功能;
单击“再出一题”,随机生成算式的两个计算数,并不允许自行修改算式,单击“计算判断”实现计算结果的对错判断并显示。提示:控件textbox输入的内容默认为字符串,需通过val(s)转换s(全部为数字)为数值才能计算;
结果输入后,默认回车即进行“计算判断”,且算式结果应不允许“计算判断”后再提交判断。问题1:为什么设计中会有如此的功能考虑?
除能“计算判断”,还有“给出提示”的功能即显示算式的答案;
“计算判断”后除能提示结果对错外,还能实现对错的计数,即正确m次或错误n次;
既然对错次数能累计,就应该设置一个按钮“清空记录”用以清除已有对错的累计次数;
没有“计算判断”前不允许“再出一题”。问题2:为什么设计中会有如此的功能考虑?;
算式结果不允许输入非数值。提示:函数isnumeric(s)可判断字符串s是否为数值;
算式默认为加法运算,再添加功能可切换至减法运算。提示:如果使用控件optionbutton来切换加减法,则optionbutton.value=true代表该单选项被选定,此时不仅算式中运算符要改变,“计算判断”中也要相应增加功能。提示:可使用多分支判断语句如下:select case label.captioncase "+"语句块case "-"语句块end select
对于减法算式,若出现“小数-大数”的算式时自动重新生成“大数-小数”的算式。提示:自动重新生成“大数-小数”的算式可使用do...loop循环;
到此为止,该随机题板的应用功能基本设计完整,如要体验性更好,可为各commandbutton添加快捷键,且默认输入位置(即焦点)均在算式结果处,还可同样扩展生成乘除算式且被除数不能为0等。提示:为控件设置焦点如textbox.setfocus即为设置当前焦点在textbox中;
如你觉得设计的题板功能不甚完善,请在上机心得中进行设计的补充,将根据你记录的功能设计或上机心得、窗体及代码设计给予评语或评分!
注:分享我设计的随机题板窗体界面如下。 展开
1个回答
展开全部
Dim a As Integer, b As Integer, t As Integer, s As Integer
Private Sub Command1_Click()
If Option1.Value = True Then
MsgBox a & "+" & b & "=" & Str(a + b)
Else
If Option2.Value = True Then
MsgBox a & "-" & b & "=" & Str(a - b)
End If
End If
Text3.SetFocus
End Sub
Private Sub Command2_Click()
Randomize (Time())
If Label1.Caption = "-" Then
Do
a = Rnd(Time()) * 99
b = Rnd(Time()) * 99
Loop While a < b
Else
If Label1.Caption = "+" Then
a = Rnd(Time()) * 99
b = Rnd(Time()) * 99
End If
End If
Text1.Text = Str(a)
Text2.Text = Str(b)
If IsNumeric(Text1.Text) = False Or IsNumeric(Text2.Text) = False Then
MsgBox "生成题目出错!"
Else
Command2.Enabled = False
End If
Text1.Enabled = False
Text2.Enabled = False
Text3.SetFocus
End Sub
Private Sub Command3_Click()
Select Case Label1.Caption
Case "+":
If IsNumeric(Text3.Text) = False Then
MsgBox "答案输入出错!"
Else
If (a + b) = Val(Text3.Text) Then
MsgBox "正确!"
Command2.Caption = "再出一题(ALT+&Q)"
Command2.Enabled = True
Text1.Enabled = True
Text2.Enabled = True
s = s + 1
Label4.Caption = "已答对" & s & "道题目!"
Else
MsgBox "错误!"
End If
End If
Case "-"
If IsNumeric(Text3.Text) = False Then
MsgBox "答案输入出错!"
Else
If (a - b) = Val(Text3.Text) Then
MsgBox "正确!"
Command2.Caption = "再出一题(ALT+&Q)"
Command2.Enabled = True
Text1.Enabled = True
Text2.Enabled = True
s = s + 1
Label4.Caption = "已答对" & s & "道题目!"
Else
MsgBox "错误!"
End If
End If
End Select
Text3.Text = ""
Text3.SetFocus
End Sub
Private Sub Command4_Click()
s = 0
Text1.Text = ""
Text2.Text = ""
End Sub
Private Sub Command5_Click()
End
End Sub
Private Sub Form_Load()
Option1.Value = True
s = 0
End Sub
Private Sub Option1_Click()
If Option1.Value = True Then
Label1.Caption = "+"
End If
End Sub
Private Sub Option2_Click()
If Option2.Value = True Then
Label1.Caption = "-"
End If
End Sub
DFRobot
2024-11-10 广告
2024-11-10 广告
图形化编程是一种直观的编程方式,它通过拖拽图形化的编程积木来构建程序,降低了编程的学习门槛。在上海智位机器人股份有限公司,我们致力于将图形化编程应用于机器人教育等领域,使学习者能够以更加轻松、有趣的方式掌握编程技能。我们的图形化编程平台界面...
点击进入详情页
本回答由DFRobot提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询