29-算术四则运算vb编程
- 格式:doc
- 大小:107.50 KB
- 文档页数:10
vb编写计算公式(二)VB编写计算公式引言在VB编程中,我们经常需要编写各种计算公式来完成特定的功能。
本文将介绍一些常见的计算公式,并给出相应的例子来说明。
1. 简单四则运算加法result = num1 + num2这个公式将两个数相加,并将结果赋值给变量result。
减法result = num1 - num2这个公式将num2从num1中减去,并将结果赋值给变量result。
乘法result = num1 * num2这个公式将两个数相乘,并将结果赋值给变量result。
除法result = num1 / num2这个公式将num1除以num2,并将结果赋值给变量result。
2. 复杂计算公式求平方根result = (num)这个公式将给定数的平方根计算出来,并将结果赋值给变量result。
求绝对值result = (num)这个公式将给定数的绝对值计算出来,并将结果赋值给变量result。
求幂result = (num, power)这个公式将给定数的power次幂计算出来,并将结果赋值给变量result。
四舍五入result = (num)这个公式将给定数四舍五入到最接近的整数,并将结果赋值给变量result。
结论本文介绍了一些常见的计算公式,包括简单的四则运算和复杂的数学函数。
通过合理运用这些公式,可以轻松完成各种计算任务。
希望本文对于VB编程初学者有所帮助,也欢迎同行们提出宝贵意见和建议。
以上为VB编写计算公式的相关内容。
注意事项:本文只提供计算公式的示例和解释,并不包含完整的VB代码实现。
VBA中的数学运算与公式计算方法在VBA编程语言中,数学运算和公式计算是非常重要的功能。
通过使用VBA中提供的数学函数和操作符,我们可以方便地进行各种数学运算和公式计算。
本文将介绍一些常用的数学运算方法和公式计算方法。
首先,我们来看一些常用的数学运算方法。
VBA中提供了一系列数学函数,包括基本的加减乘除运算,以及一些高级的数学运算函数。
下面是一些常用的数学函数:1. 加法运算:使用"+"操作符可以进行两个数的加法运算。
例如,可以使用以下代码计算两个数的和:```Dim num1 As IntegerDim num2 As IntegerDim sum As Integernum1 = 5num2 = 10sum = num1 + num2MsgBox "和为:" & sum```2. 减法运算:使用"-"操作符可以进行两个数的减法运算。
例如,可以使用以下代码计算两个数的差:```Dim num1 As IntegerDim num2 As IntegerDim difference As Integernum1 = 10num2 = 5difference = num1 - num2MsgBox "差为:" & difference```3. 乘法运算:使用"*"操作符可以进行两个数的乘法运算。
例如,可以使用以下代码计算两个数的积:```Dim num1 As IntegerDim num2 As IntegerDim product As Integernum1 = 5num2 = 10product = num1 * num2MsgBox "积为:" & product```4. 除法运算:使用"/"操作符可以进行两个数的除法运算。
计算器的VB程序设计要求:1)设计一个可以进行四则运算的简单计算器。
该计算器可以进行加、减、乘、除、求模(取余)等简单的四则运算,并具有符合计算器日常使用习惯的容错纠错功能。
具体步骤如下:①在界面上建立按钮控件数组:首先在窗体中置入一个命令按钮控件后,将其激活并点击右键通过“复制”、“粘贴”的方法依次产生19个一样的命令按钮控件,其中在创建第一个“粘贴”控件时VB会询问“是否要创建控件数组?”回答“是”即可开始依次创建该控件数组。
②按钮属性的设置:将各按钮的caption属性分别设置为0,1,2……9,+、-、×,/,Mod,=,cls,Exit,注意在设置这些属性时其值与按钮控件的Index属性的对应性。
③其它控件的属性设置:文本框作为显示操作数和结果的控件,应遵循一般计算器的显示习惯,将其Alignment即对齐属性设置为“Right”,此外,将各控件相关的字体、字号等设置为统一风格。
④在程序的通用区定义四个窗体层变量:num1、num2、sum、act、前三个为双精度、act为整型变量。
⑤编写进行四则运算所需的程序作为命令按钮的单击事件过程。
实验三参考代码一:•Dim num1 As Double, num2 As Double•Dim sum As Double•Dim act As Integer•Private Sub Form_Load()•num1 = 0•num2 = 0•sum = 0•End Sub•Private Sub Command1_Click(Index As Integer)•Select Case Index•Case 0• If Text1.Text = "" Then• Text1.Text = "0"• Else• Text1.Text = Text1.Text + "0"• End If•Case 1• If Text1.Text = "" Then• Text1.Text = "1"• Else• Text1.Text = Text1.Text + "1" End If•Case 2• If Text1.Text = "" Then• Text1.Text = "2"• Else• Text1.Text = Text1.Text + "2"• End If•Case 3• If Text1.Text = "" Then• Text1.Text = "3"• Else• Text1.Text = Text1.Text + "3"• End If•Case 4• If Text1.Text = "" Then• Text1.Text = "4"• Else• Text1.Text = Text1.Text + "4" • End If•Case 5• If Text1.Text = "" Then• Text1.Text = "5"• Else• Text1.Text = Text1.Text + "5" •End If•Case 6• If Text1.Text = "" Then• Text1.Text = "6"• Else• Text1.Text = Text1.Text + "6" • End If•Case 7• If Text1.Text = "" Then• Text1.Text = "7"• Else• Text1.Text = Text1.Text + "7"•Case 8• If Text1.Text = "" Then• Text1.Text = "8"• Else• Text1.Text = Text1.Text + "8"• End If•Case 9• If Text1.Text = "" Then• Text1.Text = "9"• Else• Text1.Text = Text1.Text + "9"• End If•Case 10• If Text1.Text = "" Then• Text1.Text = "."• Else• Text1.Text = Text1.Text + "."• End If•Case 11• num1 = CDbl(Text1.Text) ‘强制转换双精度型• Text1.Text = ""•Case 12• num1 = CDbl(Text1.Text) • Text1.Text = ""• act = 2•Case 13• num1 = CDbl(Text1.Text) • Text1.Text = ""• act = 3•Case 14• num1 = CDbl(Text1.Text) • Text1.Text = ""• act = 4•Case 15• num1 = CDbl(Text1.Text) • Text1.Text = ""• act = 5•Case 16• num1 = 0• num2 = 0• sum = 0• Text1.Text = ""•Case 17• num2 = CDbl(Text1.Text) •Select Case act• Case 1• sum = num1 + num2 • Case 2• sum = num1 - num2 •Case 3• sum = num1 * num2 • Case 4• sum = num1 / num2 • Case 5• sum = num1 Mod num2 • End Select• Text1.Text = ""• Text1.Text = CStr(sum) •Case 18• End•End Select•End Sub。
vba自动生成四则运算题VBA 自动化生成四则运算题目是通过编写 VBA 代码,利用Excel 软件的功能实现的。
下面是一个示例的 VBA 代码,用于生成 10 道四则运算题目:```vbaSub GenerateArithmeticQuestions()Dim i As IntegerDim number1 As IntegerDim number2 As IntegerDim operator As StringDim result As Variant' 清空工作表中的内容ThisWorkbook.Sheets("Sheet1").Cells.ClearContents' 在工作表中生成题目For i = 1 To 10' 随机生成两个数number1 = Int((100 - 1 + 1) * Rnd + 1)number2 = Int((100 - 1 + 1) * Rnd + 1)' 随机选择运算符Select Case Int((4 - 1 + 1) * Rnd + 1)Case 1operator = "+"result = number1 + number2Case 2operator = "-"result = number1 - number2Case 3operator = "*"result = number1 * number2Case 4operator = "/"result = number1 / number2End Select' 在工作表的 A 列和 B 列中写入题目和答案ThisWorkbook.Sheets("Sheet1").Cells(i, 1).Value = number1 & " " & operator & " " & number2 & " ="ThisWorkbook.Sheets("Sheet1").Cells(i, 2).Value = resultNext iEnd Sub```在这个示例代码中,我们使用了一个循环来生成 10 个题目。
vba 四则混合运算VBA(Visual Basic for Applications)是一种用于Microsoft Office套件中的宏编程语言。
它可以用于自动化和定制化Office 应用程序,包括Excel、Word和PowerPoint等。
在本文中,我们将探讨如何使用VBA进行四则混合运算。
四则混合运算是指同时使用加减乘除四种基本运算符进行计算的运算。
在VBA中,我们可以使用这些运算符来进行数值计算,从而实现各种复杂的计算任务。
我们需要了解VBA中的运算符。
在VBA中,加法运算使用"+"符号表示,减法运算使用"-"符号表示,乘法运算使用"*"符号表示,除法运算使用"/"符号表示。
通过使用这些运算符,我们可以在VBA程序中进行各种数值计算。
让我们以一个简单的例子开始。
假设我们有两个变量A和B,它们分别存储了两个数字。
现在,我们想要将这两个数字相加并将结果存储在一个新的变量C中。
我们可以使用VBA的加法运算符来实现这个任务,代码如下:```Dim A As IntegerDim B As IntegerDim C As IntegerA = 10B = 5C = A + BMsgBox "两个数字的和为:" & C```在这个例子中,我们首先声明了三个整型变量A、B和C。
然后,我们给变量A和B赋值,分别为10和5。
接下来,我们使用加法运算符将A和B相加,并将结果存储在变量C中。
最后,我们使用MsgBox函数输出结果。
除了加法运算,VBA还支持减法、乘法和除法运算。
我们可以使用类似的方法来进行这些运算。
下面是一个进行四则混合运算的示例代码:```Dim A As DoubleDim B As DoubleDim C As DoubleA = 10.5B = 2.5C = (A + B) * (A - B) / (A * B)MsgBox "四则混合运算的结果为:" & C```在这个例子中,我们首先声明了三个双精度浮点型变量A、B和C。
Option Base 1 '标识数组下标从1开始Dim x, y, z As IntegerPrivate Sub Command1_Click()Dim a(4) As StringDim b As IntegerText1.Text = Int(10 * Rnd + 0) '文本框1中随机产生0 - 9中的一个数a(1) = "+"a(2) = "-"a(3) = "*"a(4) = "/"b = Int(4 * Rnd + 1)Label1.Caption = a(b) '标签1随机产生“加”、“减”、“乘”、“除”号If Label1.Caption = a(4) ThenText2.Text = Int(9 * Rnd + 1) '如果标签1出现的是“/”号,则文本框2随机产生1-9中的一个数ElseText2.Text = Int(10 * Rnd + 0) '如果不是则文本框2随机产生0-9中的一个数End IfText3.SetFocusEnd SubPrivate Sub Command2_Click()Dim c As SingleIf IsNumeric(Text3.Text) = False ThenMsgBox "请输入数字!", vbOKOnly + vbExclamation, "提示" '如果文本框3输入的不是数字或没有输入,则提示“请输入数字!”Text3.Text = ""Text3.SetFocusElseSelect Case Label1.CaptionCase "+"c = Val(Text1.Text) + Val(Text2.Text)Case "-"c = Val(Text1.Text) - Val(Text2.Text)Case "*"c = Val(Text1.Text) * Val(Text2.Text)Case "/"c = Val(Text1.Text) / Val(Text2.Text) End SelectIf Text3.Text = c ThenMsgBox "恭喜你,回答正确!", vbOKOnly + vbInformation, "提示"x = x + 1Text4.Text = xz = z + 10Text6.Text = zElseMsgBox "回答错误!" & " " & "正确结果为" & c, vbOKOnly + vbCritical, "提示"y = y + 1Text5.Text = yz = z - 10Text6.Text = zEnd IfEnd IfEnd SubPrivate Sub Form_Load() RandomizeEnd SubPrivate Sub Label1_Change() Text3.Text = ""End SubPrivate Sub Text1_Change() Text3.Text = ""End SubPrivate Sub Text2_Change() Text3.Text = ""End Sub。
VB计算器程序代码下面是一个简单的VB计算器程序代码,可以进行基本的四则运算:```VBImports System.MathPublic Class Form1Dim num1, num2, result As DoubleDim operatorType As String = ""Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.LoadEnd SubPrivate Sub Button_Click(sender As Object, e As EventArgs) Handles btn0.Click, btn1.Click, btn2.Click, btn3.Click,btn4.Click, btn5.Click, btn6.Click, btn7.Click, btn8.Click, btn9.Click, btnDot.ClickDim button As Button = CType(sender, Button)If button.Text = "." ThenIf Not txtDisplay.Text.Contains(".") ThentxtDisplay.Text += button.TextEnd IfElsetxtDisplay.Text += button.TextEnd IfEnd SubPrivate Sub Operator_Click(sender As Object, e As EventArgs) Handles btnAdd.Click, btnSubtract.Click, btnMultiply.Click, btnDivide.ClickDim button As Button = CType(sender, Button)num1 = CDbl(txtDisplay.Text)operatorType = button.TexttxtDisplay.ClearEnd SubPrivate Sub btnEquals_Click(sender As Object, e As EventArgs) Handles btnEquals.Clicknum2 = CDbl(txtDisplay.Text)Select Case operatorTypeCase "+"result = num1 + num2Case "-"result = num1 - num2Case "*"result = num1 * num2Case "/"If num2 <> 0 Thenresult = num1 / num2ElseMessageBox.Show("除数不能为零!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error)End IfEnd SelecttxtDisplay.Text = result.ToStringEnd SubPrivate Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.ClicktxtDisplay.ClearEnd SubPrivate Sub btnSqrt_Click(sender As Object, e As EventArgs) Handles btnSqrt.ClickIf txtDisplay.Text = "" ThenMessageBox.Show("请输入一个数字!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error)Elsenum1 = CDbl(txtDisplay.Text)result = Sqrt(num1)txtDisplay.Text = result.ToStringEnd IfEnd SubPrivate Sub btnPower_Click(sender As Object, e As EventArgs) Handles btnPower.ClickIf txtDisplay.Text = "" ThenMessageBox.Show("请输入一个数字!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error)Elsenum1 = CDbl(txtDisplay.Text)result = num1 ^ 2txtDisplay.Text = result.ToStringEnd IfEnd SubPrivate Sub btnBackspace_Click(sender As Object, e As EventArgs) Handles btnBackspace.ClickIf txtDisplay.Text.Length > 0 ThentxtDisplay.Text = txtDisplay.Text.Substring(0, txtDisplay.Text.Length - 1)End IfEnd SubPrivate Sub btnNegative_Click(sender As Object, e As EventArgs) Handles btnNegative.ClickIf txtDisplay.Text.Length > 0 ThenIf txtDisplay.Text.Substring(0, 1) = "-" ThentxtDisplay.Text = txtDisplay.Text.Substring(1, txtDisplay.Text.Length - 1)ElsetxtDisplay.Text = "-" + txtDisplay.TextEnd IfEnd IfEnd SubEnd Class```这个计算器程序具有以下功能:1.支持0-9的数字输入和小数点的输入。
⽤VB制作四则运算器步骤及代码⽤V B制作四则运算器步骤及代码Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT⼀、实验⽬的、⽬标综合运⽤本课程的相关知识,完成两位数四则运算器的设计、编写与测试,培养学⽣的实践动⼿能⼒,并检测本课程的学习效果。
⼆、实验内容基本要求:两位数(指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 IntegerPrivate Sub Form_Load()= False= False==MsgBox "请选择题量和答题时间!", 48, "提⽰"Unload Form2End SubPrivate Sub Option1_Click(Index As Integer)tishu = Val(Option1(Index).Caption)= tishuEnd SubPrivate Sub Option2_Click(Index As Integer)shijian = Val(Option2(Index).Caption)= shijianEnd SubPrivate Sub Command1_Click()MsgBox "请直接在⽂本框中输⼊数字作答(其中除法为整除)," & vbLf & "回车完成⼀题,系统⾃动⽣成下⼀题", , "提⽰" End SubPrivate Sub Command2_Click()EndEnd Sub4、在Form2窗⼝,双击控件打开代码窗⼝,设计窗体及控件的事件代码。
计算方法VB源代码以下是一个计算器的VB源代码,用于进行基本的四则运算:```vbImports System.GlobalizationPublic Class CalculatorFormPrivate operand1 As DoublePrivate operand2 As DoublePrivate operation As StringPrivate Sub CalculateButton_Click(sender As Object, e As EventArgs) Handles CalculateButton.ClickIf Double.TryParse(Operand1TextBox.Text, operand1) AndAlso Double.TryParse(Operand2TextBox.Text, operand2) Then Select Case operationCase "+"ResultTextBox.Text = (operand1 +operand2).ToString(CultureInfo.InvariantCulture)Case "-"ResultTextBox.Text = (operand1 -operand2).ToString(CultureInfo.InvariantCulture)Case "*"ResultTextBox.Text = (operand1 *operand2).ToString(CultureInfo.InvariantCulture)Case "/"If operand2 <> 0 ThenResultTextBox.Text = (operand1 /operand2).ToString(CultureInfo.InvariantCulture)ElseMessageBox.Show("Division by zero is not allowed.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)End IfCase ElseMessageBox.Show("Invalid operation.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)End SelectElseMessageBox.Show("Invalid operands.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)End IfEnd SubPrivate Sub OperationButton_Click(sender As Object, e As EventArgs) Handles AdditionButton.Click, SubtractionButton.Click, MultiplicationButton.Click, DivisionButton.ClickDim button As Button = CType(sender, Button)operation = button.TextEnd SubEnd Class```这是一个简单的计算器窗体应用程序,由两个文本框(Operand1TextBox 和 Operand2TextBox) 用于输入操作数,一个结果文本框 (ResultTextBox) 用于显示结果,以及四个按钮 (AdditionButton、SubtractionButton、MultiplicationButton 和 DivisionButton) 用于选择四则运算操作。
VB简单计算代码一、设置控件属性text1(被除数):text=(空)label1:caption=“/”text2(除数):text=(空)label2:caption=“=”text3(商):text=(空)command1:caption=“计算”command2:caption=“清空”二、编写代码Private Sub Command1_Click()Dim a As Single,b As Single,c As Single (single单精度,可以精确到十进制的7位,)a=Val(Text1.Text)b=Val(Text2.Text)c=a/bText3.Text=cEnd SubPrivate Sub Command2_Click()Text1.Text=""Text2.Text=""Text3.Text=""End Sub1. 算术运算符VB中有八种运算符,按优先级别的高低顺序分别是:(1)指数运算符:^(2)取负:-(3)乘法*、除法/(4)整除:\(5)取模(取余):Mod(6)加+、减-在书写VB算术表达式时应注意:(1)可以用圆括弧()改变表达式的运算顺序,括弧内的运算符总是先被运算。
(2)同级别的运算符在一起时,按自左向右顺序运算。
(3)指数运算符与取负运算符在一起时,先取负。
比如3^-2表示3的-2次方。
(4)为了提高表达式的可读性,应尽可能用“()”标识出运算顺序。
2. 关系运算符关系运算符主要用于对两个运算量进行关系比较。
所谓运算量可以是常量、变量或算术表达式、函数等。
通过关系运算符将两个运算量连接起来形成关系表达式,关系表达式的值是逻辑值,只有真True 和假False两个值。
在相应的场合,VB把0解释为False,而任何非0的解释为True。
VB有六种关系运算符:大于 (>)小于 (<)等于 (=)不等于(<>)大于等于 (>=)小于等于(<=)它们的优先级是相同的,按自左向右运算,即用于对字符串或数字型数据进行比较。
vba自动生成四则运算题VBA(Visual Basic for Applications)是一种用于编写宏的编程语言,可以在Microsoft Office应用程序中自动化任务。
下面是一个示例代码,可以用VBA自动生成四则运算题:vba.Sub 自动生成四则运算题()。
Dim num1 As Integer, num2 As Integer.Dim operator As String.Dim result As Double.'设置题目数量。
Dim questionCount As Integer.questionCount = 10。
'设置题目范围。
Dim minNum As Integer, maxNum As Integer.minNum = 1。
maxNum = 10。
'清空工作表。
Sheets("Sheet1").UsedRange.Clear.'循环生成题目。
For i = 1 To questionCount.'生成随机数和运算符。
num1 = WorksheetFunction.RandBetween(minNum, maxNum)。
num2 = WorksheetFunction.RandBetween(minNum, maxNum)。
operator = GetRandomOperator()。
'计算结果。
Select Case operator.Case "+"result = num1 + num2。
Case "-"result = num1 num2。
Case ""result = num1 num2。
Case "/"result = num1 / num2。
End Select.'将题目和结果写入工作表。
Cells(i, 1).Value = num1 & " " & operator & " " & num2 & " = "Cells(i, 2).Value = result.Next i.'调整列宽。
Public Class Form1'计算器的原理:'将输入的算式以运算符进行分割并计算'例如1+1分割成1、+、1,三个部分,然后运算Function CutStr(ByVal InPutStr As String) As String()Dim CalStr(3) As StringIf InStr(InPutStr, "+") Then'算式中有+号那么就是加法CalStr(0) = InPutStr.Split("+")(0)CalStr(1) = "+"CalStr(2) = InPutStr.Split("+")(1)ElseIf InStr(InPutStr, "-") Then'算式中有-号那么就是减法CalStr(0) = InPutStr.Split("-")(0)CalStr(1) = "-"CalStr(2) = InPutStr.Split("-")(1)ElseIf InStr(InPutStr, "*") Then'算式中有*号那么就是乘法CalStr(0) = InPutStr.Split("*")(0)CalStr(1) = "*"CalStr(2) = InPutStr.Split("*")(1)ElseIf InStr(InPutStr, "/") Then'算式中有/号那么就是除法CalStr(0) = InPutStr.Split("/")(0)CalStr(1) = "/"CalStr(2) = InPutStr.Split("/")(1)Else'算式中没有运算符号CalStr(0) = InPutStrCalStr(1) = ""CalStr(2) = ""End IfReturn CalStrEnd FunctionPrivate Sub数字键_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles数字键0.Click, 数字键1.Click, 数字键2.Click, 数字键3.Click, 数字键4.Click, 数字键5.Click, 数字键6.Click, 数字键7.Click, 数字键8.Click, 数字键9.Click'输入键,如果当前是0那么覆盖输入,如果当前不是0那么追加输入If显示框.Text = "0"Then显示框.Text = sender.textElse显示框.Text = 显示框.Text & sender.textEnd IfEnd SubPrivate Sub小数点_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles小数点.Click'此处比较复杂举例说明'当前按下后输入'没有运算符没有小数的数字例如:2 2.'没有运算符含有小数的数字例如:2. 不输入仍是:2.'含有运算符没有小数例如:3+3 3+3.'含有运算符含有小数例如:3+3. 不输入仍是3+3.'含有运算符运算符后为空例如:3+ 补0输入:3+0.If CutStr(显示框.Text)(1) = ""Then'表示没有运算符If InStr(显示框.Text, sender.text) = False Then'没有运算符没有小数的数字例如:2 2.显示框.Text = 显示框.Text & sender.textEnd IfExit SubElse'表示含有运算符If InStr(CutStr(显示框.Text)(2), sender.text) = False ThenIf CutStr(显示框.Text)(2) = ""Then'含有运算符运算符后为空例如:3+ 补0输入:3+0.显示框.Text = 显示框.Text & "0" & sender.textElse'含有运算符没有小数例如:3+3 3+3.显示框.Text = 显示框.Text & sender.textEnd IfEnd IfEnd IfEnd SubPrivate Sub运算符_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles运算符乘.Click, 运算符除.Click, 运算符加.Click, 运算符减.Click'如果已经存在运算符了,那么,不允许输入If (InStr(显示框.Text, "+") Or InStr(显示框.Text, "-") Or InStr(显示框.Text, "*") Or InStr(显示框.Text, "/")) = False Then显示框.Text = 显示框.Text & sender.textEnd IfEnd SubPrivate Sub清零键_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles清零键.Click'清零就是在显示框显示0显示框.Text = "0"End SubPrivate Sub运算符等于_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles运算符等于.Click'对运算符进行判断,并进行相应的运算Select Case CutStr(显示框.Text)(1)Case"+"显示框.Text = Val(CutStr(显示框.Text)(0)) + Val(CutStr(显示框.Text)(2)) Case"-"显示框.Text = Val(CutStr(显示框.Text)(0)) - Val(CutStr(显示框.Text)(2)) Case"*"显示框.Text = Val(CutStr(显示框.Text)(0)) * Val(CutStr(显示框.Text)(2)) Case"/"显示框.Text = Val(CutStr(显示框.Text)(0)) / Val(CutStr(显示框.Text)(2)) Case ElseEnd SelectEnd SubEnd Class。
河北工业大学计算机软件技术基础(VB)课程设计任务书本题难度级别:C实现基本要求代码: 约150行主要控件及算法:Command、 Label、Text及Combo;Combo控件和数组的使用。
一、设计题目:算术四则运算(出题人:李惠然)二、目的与要求1.目的培养学生综合利用VB语言进行程序设计的能力,主要是通过使用VB的标准控件,加深对控件的多个属性的认识及如何使用属性进行程序设计。
2.基本要求⏹每次出题数为随机 1-20题、每次1题、每次2题、……、每次20题。
⏹试题分为10、20、30、40、50、100、1000以内的加减乘除整数运算题。
⏹题型分为加、减、乘、除、加减、乘除,共 6 种方式。
⏹除法题目要确保不出现不能整除的情况。
⏹用户答题完成后,单击“交卷”,程序马上进行对错判断,根据正确率的百分比显示得分,如果错误会给出正确答案。
⏹单击“开始”,程序根据设定的题数、题型等条件给出下一组试题。
3.创新要求⏹在完成基本要求后,可进行如下创新设计:⏹题型增加加减乘除混合运算方式。
⏹输入法不论处在英文还是中文状态,都能保证用户输入正确的数字。
三、设计方法和基本原理1.问题描述✧单击VB环境中的“运行”按钮,弹出如下图所示界面;单击“开始”按钮,系统给出30以内的加法运算共10题。
✧给出一道题的答案后按回车键,光标自动转到下一文本框中;✧当做完全部题目后单击“交卷”按钮,系统评分并给出对错标志及正确答案。
✧若想改变出题数、运算类型和运算范围,请在3个组合框中进行。
之后单击“开始”按钮,继续出题。
✧单击“退出”按钮,结束程序运行。
2. 问题的解决方案在窗体中放置 9 个控件,它们分别是:✧Label1:在属性窗口将其 Index 属性设置为 1✧Label2:在属性窗口将其 Index 属性设置为 1✧Label3:不用设置任何属性✧Text1:在属性窗口将其 Index 属性设置为 1✧Combo1:不用设置任何属性✧Combo2:不用设置任何属性✧Combo3:不用设置任何属性✧Command1:不用设置任何属性✧Command2:不用设置任何属性四、主要技术问题的描述:本题技术问题不多,主要解决vb中组合框的使用。
组合框的使用组合框控件(ComboBox)将文本框控件(TextBox)与列表框控件(ListBox)的特性结合为一体,兼具文本框控件与列表框控件两者的特性。
它可以如同列表框一样,让用户选择所需项目;又可以如文本框一样通过输入文本来选择表项。
组合框默认的名称是 ComboX(X为阿拉伯数字 1、2、3 ,等等),规则的命名方式为:CboX(X为用户自定义的名字,如 CboName、CboColor ,等等)。
(1)组合框控件的主要属性:列表框控件的大部分属性同样适合于组合框,此外,组合框还有一些自己的一些属性:✧Style(类型)属性组合框共有三种 Style :当值为 0 ,组合框是“下拉式组合框”(DropDown Combo),与下拉式列表框相似,但不同的是,下拉式组合框可以通过输入文本的方法在表项中进行选择,可识别 Dropdown 、Click、Change 事件。
当值为 1 ,组合框称为“简单组合框”(Simple Combo),由可以输入文本的编辑区与一个标准列表框组成,可识别 Change 、DblClick 事件。
当值为 2 ,组合框称为“下拉式列表框”(Dropdown ListBox),它的右边有个箭头,可供“拉下”或“收起”操作。
它不能识别DblClick 及Change 事件,但可识别Dropdown 、Click 事件。
综上所述,如果你想让用户能够输入项目,则应将组合框设置成 0 或 1 ,如果只想让用户对已有项目进行选择,则应将组合框设置成 2✧Text(文本)属性:本属性值返回用户选择的文本或直接在编辑区域输入的文本,可以在界面设置时直接输入但要显示多个选项,不能简单地用 Text 属性指定,因为后一选项会覆盖前面的选项,这时,常常要用到窗体的载入事件 Form_LoadForm_Load 的意思是,在打开窗口的同时,将指定的内容载入。
(2)组合框的事件:根据组合框的类型,它们所响应的事件是不同的。
例如,当组合框的 Style 属性为 1 时,能接收 DblClick 事件,而其他两种组合框能够接收 Click 与 Dropdown 事件;当 Style 属性为 0 或 1 时,文本框可以接收 Change 事件。
(3)组合框的方法:跟列表框一样,组合框也适用 AddItem 、Clear 、RemoveItem 方法。
(4)组合框举例:在名为 CboChoose 的下拉组合框中任意选择一种机型,自动会在名为 LblShow 的标签上显示出来。
程序代码如下:Private Sub Form_Load()CboChoose.AddItem "IBM"CboChoose.AddItem "AST"CboChoose.AddItem "Compaq"CboChoose.AddItem "联想"CboChoose.AddItem "长城"CboChoose.AddItem "东海"End SubPrivate Sub CboChoose_Click()LblShow.Caption = "你的机型是:" & CboChoose.TextEnd Sub五、参考资料Visual Basic 程序设计教程及 Visual Basic 实验教程MSDN中文版,课程设计网站上提供的其它资料。
Dim a() As IntegerDim b() As IntegerDim c() As StringPrivate Sub Combo1_Click()For i = 0 To 9Text1(i).Visible = TrueNextIf Combo1.ListIndex < 9 ThenFor i = 9 To Combo1.ListIndex + 1 Step -1Text1(i).Visible = FalseNextEnd IfLabel1.Caption = ""ReDim a(Combo1.ListIndex)ReDim b(Combo1.ListIndex)ReDim c(Combo1.ListIndex)End SubPrivate Sub Combo3_Click()If Combo3.ListIndex = 3 Or Combo3.ListIndex = 5 ThenFor i = 0 To Combo1.ListIndexWhile a(i) Mod b(i) <> 0b(i) = Int(((Combo2.ListIndex + 1) * 10) * Rnd + 1) WendNextEnd IfSelect Case Combo3.ListIndexCase 0For i = 0 To Combo1.ListIndexc(i) = "+"NextCase 1For i = 0 To Combo1.ListIndexc(i) = "-"NextCase 2For i = 0 To Combo1.ListIndexc(i) = "*"NextCase 3For i = 0 To Combo1.ListIndexc(i) = "/"NextCase 4For i = 0 To Combo1.ListIndexRandomizeIf Int(10 * Rnd + 1) Mod 2 = 0 Then c(i) = "+"Elsec(i) = "-"End IfNextCase 5For i = 0 To Combo1.ListIndexRandomizeIf Int(10 * Rnd + 1) Mod 2 = 0 Thenc(i) = "*"Elsec(i) = "/"End IfNextEnd SelectEnd SubPrivate Sub Command1_Click()For i = 0 To Combo1.ListIndexRandomizeIf Combo2.ListIndex < 5 Thena(i) = Int(((Combo2.ListIndex + 1) * 10) * Rnd + 1)b(i) = Int(((Combo2.ListIndex + 1) * 10) * Rnd + 1)ElseIf Combo2.ListIndex = 5 Thena(i) = Int(((Combo2.ListIndex + 1) * 100) * Rnd + 1)b(i) = Int(((Combo2.ListIndex + 1) * 100) * Rnd + 1)Elsea(i) = Int(((Combo2.ListIndex + 1) * 1000) * Rnd + 1)b(i) = Int(((Combo2.ListIndex + 1) * 1000) * Rnd + 1)End IfEnd IfNextLabel1.Caption = ""Call Combo3_ClickFor i = 0 To Combo1.ListIndexLabel1.Caption = Label1.Caption + "(" & i + 1 & ")" & a(i) & c(i) & b(i) & "=" & vbCrLf & vbCrLfNextLabel2.Caption = ""For i = 0 To 9Text1(i).Text = ""NextEnd SubPrivate Sub Command2_Click()For i = 0 To Combo1.ListIndexSelect Case c(i)Case "+"If a(i) + b(i) = Val(Text1(i).Text) ThenLabel2.Caption = Label2.Caption & "√" & vbCrLf & vbCrLfElseLabel2.Caption = Label2.Caption & "正确答案是:" & a(i) + b(i) & vbCrLf & vbCrLfEnd IfCase "-"If a(i) - b(i) = Val(Text1(i).Text) ThenLabel2.Caption = Label2.Caption & "√" & vbCrLf & vbCrLfElseLabel2.Caption = Label2.Caption & "正确答案是:" & a(i) - b(i) & vbCrLf & vbCrLfEnd IfCase "*"If a(i) * b(i) = Val(Text1(i).Text) ThenLabel2.Caption = Label2.Caption & "√" & vbCrLf & vbCrLfElseLabel2.Caption = Label2.Caption & "正确答案是:" & a(i) * b(i) & vbCrLf & vbCrLfEnd IfCase "/"If a(i) / b(i) = Val(Text1(i).Text) ThenLabel2.Caption = Label2.Caption & "√" & vbCrLf & vbCrLfElseLabel2.Caption = Label2.Caption & "正确答案是:" & a(i) / b(i) & vbCrLf & vbCrLfEnd IfEnd SelectNextEnd SubPrivate Sub Command3_Click()EndEnd SubPrivate Sub Form_Load()Command2.Enabled = FalseFor i = 1 To 10Combo1.AddItem "每次" & i & "题"NextFor i = 10 To 50 Step 10Combo2.AddItem i & "以内"NextCombo2.AddItem "100以内"Combo2.AddItem "1000以内"Combo3.AddItem "加"Combo3.AddItem "减"Combo3.AddItem "乘"Combo3.AddItem "除"Combo3.AddItem "加减"Combo3.AddItem "乘除"Combo1.Text = Combo1.List(0)Combo2.Text = Combo2.List(0)Combo3.Text = Combo3.List(0)End SubPrivate Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer) If KeyCode = 13 ThenIf Index = Combo1.ListIndex ThenCommand2.Enabled = TrueCommand2.SetFocusElseText1(Index + 1).SetFocusEnd IfEnd IfEnd Sub。