VB编写简单计算器程序
VB简易计算器代码
VB简易计算器代码下面是一个简单的VB计算器代码,用于执行基本的加、减、乘、除运算。
```vbOption Strict OnPublic Class CalculatorPrivate Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.ClickDim num1 As Double = CDbl(txtNum1.Text)Dim num2 As Double = CDbl(txtNum2.Text)Dim result As Double = num1 + num2txtResult.Text = result.ToStringEnd SubPrivate Sub btnSubtract_Click(sender As Object, e As EventArgs) Handles btnSubtract.ClickDim num1 As Double = CDbl(txtNum1.Text)Dim num2 As Double = CDbl(txtNum2.Text)Dim result As Double = num1 - num2txtResult.Text = result.ToStringPrivate Sub btnMultiply_Click(sender As Object, e As EventArgs) Handles btnMultiply.ClickDim num1 As Double = CDbl(txtNum1.Text)Dim num2 As Double = CDbl(txtNum2.Text)Dim result As Double = num1 * num2txtResult.Text = result.ToStringEnd SubPrivate Sub btnDivide_Click(sender As Object, e As EventArgs) Handles btnDivide.ClickDim num1 As Double = CDbl(txtNum1.Text)Dim num2 As Double = CDbl(txtNum2.Text)If num2 = 0 ThenMessageBox.Show("除数不能为0!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error)ElseDim result As Double = num1 / num2txtResult.Text = result.ToStringEnd IfEnd Sub```此代码创建了一个简单的窗体应用程序,其中包含两个文本框用于输入两个数字,四个按钮用于执行不同的计算操作,以及一个文本框用于显示结果。
VB简单计算器(截图附代码)
VB程序简单计算器最近学完VB,感觉很好,写了个计算器程序,虽然花了不少时间,可也着实高兴。
其中遇到很多问题,最终也在各种资料中得到解决。
现在附上截图和全部代码,希望和大家交流一下,相互学习。
也希望能帮助到准备做计算器的同学。
计算器最终执行文件图标:计算器包括三个窗体(form):主页面form1:其中的“欢迎各位到此一游”是闪烁效果,呵呵,是自己想着无聊,就想出这么个玩意。
与计算器计算功能无关。
具体实现看下来代码。
Form1的实现代码:Public haha As BooleanPrivate Sub Command1_Click()Dim a As Integera = MsgBox("亲爱的你,真的想要退出本系统吗?", _vbYesNo + vbInformation + vbDefaultButton1, "退出系统前的询问撒(⊙o⊙)")If a = 6 Then '表示当选择“是”的时候的返回值EndEnd IfEnd SubPrivate Sub Command2_Click()Me.HideForm2.ShowEnd SubPrivate Sub Command3_Click()Me.HideForm3.ShowEnd SubPrivate Sub Form_Load()haha = FalseEnd SubPrivate Sub Timer1_Timer()haha = Not hahaIf haha ThenLabel2.ForeColor = &HFF00FFElseLabel2.ForeColor = vbWhiteEnd IfEnd Sub有些像图像等一些可见的控件属性就没在代码里写了,直接在属性里设置了。
页面(form2):此页面将鼠标点上去,还有意想不到的效果喲。
全部代码为:Dim isFocus1, isFocus2 As BooleanPrivate Sub Command1_Click()If isFocus1 Then '判断焦点在那个文本框中,便于实现按钮输入Text1.Text = Text1.Text & 0End IfIf isFocus2 ThenText2.Text = Text2.Text & 0End IfEnd SubPrivate Sub Command10_Click() If isFocus1 ThenText1.Text = Text1.Text & 9 End IfIf isFocus2 ThenText2.Text = Text2.Text & 9 End IfEnd SubPrivate Sub Command11_Click() If isFocus1 ThenText1.Text = Text1.Text & "." End IfIf isFocus2 ThenText2.Text = Text2.Text & "." End IfEnd SubPrivate Sub Command12_Click() If isFocus1 ThenText1.Text = -Val(Text1.Text)End IfIf isFocus2 ThenText2.Text = -Val(Text2.Text)End IfEnd SubPrivate Sub Command13_Click()Dim a As Integera = Val(Text1.Text) + Val(Text2.Text)Text3.Text = Val(Text1.Text) & "+" & Val(Text2.Text) & "=" & aIf Text1.Text = "" Or Text2.Text = "" ThenMsgBox "哼哼,双目运算一定要是两个数喔" & vbCrLf & vbCrLf & _ "不用说,补上去是必须的撒", vbCritical, "温馨小提醒(*^__^*)" End IfEnd SubPrivate Sub Command14_Click()Dim a As Integera = Val(Text1.Text) - Val(Text2.Text)Text3.Text = Val(Text1.Text) & "-" & Val(Text2.Text) & "=" & aIf Text1.Text = "" Or Text2.Text = "" ThenMsgBox "哼哼,双目运算一定要是两个数喔" & vbCrLf & vbCrLf & _ "不用说,补上去是必须的撒", vbCritical, "温馨小提醒(*^__^*)" End IfEnd SubPrivate Sub Command15_Click()a = Val(Text1.Text) * Val(Text2.Text)Text3.Text = Val(Text1.Text) & "×" & Val(Text2.Text) & "=" & aIf Text1.Text = "" Or Text2.Text = "" ThenMsgBox "哼哼,双目运算一定要是两个数喔" & vbCrLf & vbCrLf & _ "不用说,补上去是必须的撒", vbCritical, "温馨小提醒(*^__^*)" End IfEnd SubPrivate Sub Command16_Click() '除法的特殊性,除数不能为零If Val(Text2.Text) Thena = Val(Text1.Text) / Val(Text2.Text)Text3.Text = Val(Text1.Text) & "÷" & Val(Text2.Text) & "=" & aIf Text1.Text = "" Or Text2.Text = "" ThenMsgBox "哼哼,双目运算一定要是两个数喔" & vbCrLf & vbCrLf & _ "不用说,补上去是必须的撒", vbCritical, "温馨小提醒(*^__^*)" End IfElseText3.Text = "无穷大∞"MsgBox "亲,除数不可以为零的哟!", vbInformation, "矮油,不得了嘞(*^__^*)"Text2.Text = ""Text2.SetFocusEnd IfEnd SubPrivate Sub Command17_Click() '实现清零,并将焦点给文本框1Text1.Text = ""Text2.Text = ""Text3.Text = ""Text1.SetFocusEnd SubPrivate Sub Command18_Click()Me.Hide '进入计算器1Form1.ShowEnd SubPrivate Sub Command2_Click() If isFocus1 ThenText1.Text = Text1.Text & 1 End IfIf isFocus2 ThenText2.Text = Text2.Text & 1 End IfEnd SubPrivate Sub Command3_Click() If isFocus1 ThenText1.Text = Text1.Text & 2 End IfIf isFocus2 ThenText2.Text = Text2.Text & 2 End IfEnd SubPrivate Sub Command4_Click() If isFocus1 ThenText1.Text = Text1.Text & 3 End IfIf isFocus2 ThenText2.Text = Text2.Text & 3 End IfEnd SubPrivate Sub Command5_Click() If isFocus1 ThenText1.Text = Text1.Text & 4 End IfIf isFocus2 ThenText2.Text = Text2.Text & 4 End IfEnd SubPrivate Sub Command6_Click() If isFocus1 ThenText1.Text = Text1.Text & 5 End IfIf isFocus2 ThenText2.Text = Text2.Text & 5 End IfEnd SubPrivate Sub Command7_Click() If isFocus1 ThenText1.Text = Text1.Text & 6 End IfIf isFocus2 ThenText2.Text = Text2.Text & 6 End IfEnd SubPrivate Sub Command8_Click() If isFocus1 ThenText1.Text = Text1.Text & 7 End IfIf isFocus2 ThenText2.Text = Text2.Text & 7 End IfEnd SubPrivate Sub Command9_Click() If isFocus1 ThenText1.Text = Text1.Text & 8End IfIf isFocus2 ThenText2.Text = Text2.Text & 8End IfEnd SubPrivate Sub Form_Load()isFocus1 = False: isFocus2 = FalseEnd SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Label4.ForeColor = vbBlackLabel4.FontUnderline = FalseLabel4.FontBold = FalseEnd SubPrivate Sub Label4_Click()Form3.ShowEnd SubPrivate Sub Label4_MouseMove(Button As Integer, Shift As Integer, X AsSingle, Y As Single)Label4.ForeColor = vbGreen Label4.FontUnderline = True Label4.FontBold = True End SubPrivate Sub Text1_GotFocus() isFocus1 = TrueisFocus2 = FalseEnd SubPrivate Sub Text2_GotFocus() isFocus2 = TrueisFocus1 = FalseEnd Sub页面(form3):这里面的亮点自己找哦。
VB简易计算器代码
VB简易计算器代码以下是一个简单的VB计算器代码:```Public Class Form1Dim firstNum As Double ' 第一个数字Dim secondNum As Double ' 第二个数字Dim operation As Integer ' 1-加法,2-减法,3-乘法,4-除法Private Sub Button0_Click(sender As Object, e As EventArgs) Handles Button0.ClickTextBoxResult.Text = TextBoxResult.Text & "0"End SubPrivate Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.ClickTextBoxResult.Text = TextBoxResult.Text & "1"End SubPrivate Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.ClickTextBoxResult.Text = TextBoxResult.Text & "2"End SubHandles Button3.ClickTextBoxResult.Text = TextBoxResult.Text & "3"End SubPrivate Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.ClickTextBoxResult.Text = TextBoxResult.Text & "4"End SubPrivate Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.ClickTextBoxResult.Text = TextBoxResult.Text & "5"End SubPrivate Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.ClickTextBoxResult.Text = TextBoxResult.Text & "6"End SubPrivate Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.ClickTextBoxResult.Text = TextBoxResult.Text & "7"End SubHandles Button8.ClickTextBoxResult.Text = TextBoxResult.Text & "8"End SubPrivate Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.ClickTextBoxResult.Text = TextBoxResult.Text & "9"End SubPrivate Sub ButtonDot_Click(sender As Object, e As EventArgs) Handles ButtonDot.ClickIf Not TextBoxResult.Text.Contains(".") ThenTextBoxResult.Text = TextBoxResult.Text & "."End IfEnd SubPrivate Sub ButtonAdd_Click(sender As Object, e As EventArgs) Handles ButtonAdd.ClickfirstNum = Double.Parse(TextBoxResult.Text)TextBoxResult.Text = ""operation = 1End SubPrivate Sub ButtonSubtract_Click(sender As Object, e As EventArgs) Handles ButtonSubtract.ClickfirstNum = Double.Parse(TextBoxResult.Text)TextBoxResult.Text = ""operation = 2End SubPrivate Sub ButtonMultiply_Click(sender As Object, e As EventArgs) Handles ButtonMultiply.ClickfirstNum = Double.Parse(TextBoxResult.Text)TextBoxResult.Text = ""operation = 3End SubPrivate Sub ButtonDivide_Click(sender As Object, e As EventArgs) Handles ButtonDivide.ClickfirstNum = Double.Parse(TextBoxResult.Text)TextBoxResult.Text = ""operation = 4End SubPrivate Sub ButtonClear_Click(sender As Object, e As EventArgs) Handles ButtonClear.ClickTextBoxResult.Text = ""End SubPrivate Sub ButtonEquals_Click(sender As Object, e As EventArgs) Handles ButtonEquals.ClickDim result As DoublesecondNum = Double.Parse(TextBoxResult.Text)Select Case operationCase 1result = firstNum + secondNumCase 2result = firstNum - secondNumCase 3result = firstNum * secondNumCase 4result = firstNum / secondNumEnd SelectTextBoxResult.Text = result.ToStringEnd SubEnd Class```这个计算器包括数字按钮0-9、小数点按钮、加法、减法、乘法、除法和等于按钮。
简单的VB计算器代码
简单的VB计算器代码:'变量定义说明部分Dim x1 As Single, x2 As SingleDim Y As SingleDim n As Integer '标记使用运算符类型'接收数据输入Private Sub Command1_Click(Index As Integer)Text1.Text = Text1.Text + CStr(Index)End Sub'按运算符时的处理方法Private Sub Command3_Click(Index As Integer)x1 = Val(Text1.Text)Text1.Text = ""n = IndexEnd Sub'输入小数点时的处理办法Private Sub Command2_Click()Text1.Text = Text1.Text + "."End Sub'单击退格按钮时的处理方法Private Sub Command4_Click()Text1.Text = Mid(Text1.Text, 1, Len(Text1.Text) - 1) End Sub'单击清除按钮时的处理方法Private Sub Command5_Click() x1 = 0: x2 = 0: Y = 0Text1.Text = ""End Sub'单击退出按钮时的处理方法Private Sub Command6_Click() Unload MeEnd Sub'单击"="按钮时的处理方法Private Sub Command7_Click() x2 = Val(Text1.Text)On Error GoTo err1Select Case nCase 0Y = x1 + x2Case 1Y = x1 - x2Case 2Y = x1 * x2Case 3Y = x1 / x2End SelectText1.Text = CStr(Y)Exit Suberr1:MsgBox "您输入的数据有误,请重新输入!", vbOKOnly + vbCritical, "错误!"Text1.Text = ""x1 = 0: x2 = 0: Y = 0Exit SubEnd Sub运行界面如下:。
VB编写简易计算器(附图)
For personal use only in study and research;not for commercial use用VB6.0编写简易计算器效果图:废话不多说,直接上步骤一、创建控件组1、创建控件组的方法??首先创建一个命令按钮,调整其大小(觉得合适就行),名称为Command1,Caption 属性为数字 0 ;然后进行“复制”和“粘贴”,当选择“粘贴”时,出现对话框提示已有一个同名控件,询问是否创建控件组,选择“是”后,即创建了一个名为“Command”的控件组。
这时,第一个按钮的Index属性值默认为“0”,第二个的Index属性值自动设为“1”,并且大小与第一个按钮相同,只需修改其 Caption 属性为数字“1”并将其拖至合适位置即可。
此后继续使用“粘贴”的方法建立其他控件组中其余按钮,共20个按钮,每建立一个,就将它拖到合适处,并修改相应的Caption属性值。
2、各控件组其属性设置如下:二、编写代码Dim s1 As Single, s2 As Single, ysf As String'定义两个单精度数变量用与存放参与运算的数,一个字符型存放运算符Private Sub Command1_Click(Index As Integer)Text1.Text = Text1.Text & Command1(Index).Caption'将command1的单击事件与文本框显示的内容连接End SubPrivate Sub Command2_Click()Text1.Text = Text1.Text + "."If (InStr(Text1.Text, ".") = 1) Then'第一位不能为小数Text1.Text = ""End IfIf InStr(Text1.Text, ".") < Len(Text1.Text) Then '防止出现两个小数点Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)End IfEnd SubPrivate Sub Command3_Click()s2 = Val(Text1.Text) '开始加减乘除运算Select Case ysfCase "+"Text1.Text = s1 + s2Case "-"Text1.Text = s1 - s2Case "*"Text1.Text = s1 * s2Case "/"If s2 = 0 ThenMsgBox "分母不能为零!"Text1.Text = ""ElseText1.Text = s1 / s2End IfEnd SelectText1 = IIf(Left(Text1.Text, 1) = ".", 0 & Text1.Text, Text1.Text) '这个很关键,如果没有这个的话,得出小于1的小数前面没有0End SubPrivate Sub Command4_Click()If Text1.Text = "" Then '文本为空就结束Exit SubEnd IfText1.Text = Left(Text1.Text, Len(Text1.Text) - 1) '文本退一格End SubPrivate Sub Command5_Click()Text1.Text = "" '清除当前框内文本End SubPrivate Sub Command6_Click(Index As Integer)s1 = Val(Text1.Text) '将s1隐藏起来ysf = Command6(Index).CaptionText1.Text = ""End SubPrivate Sub Command7_Click()If Left(Text1.Text, 1) <> "-" Then '判断作为负数Text1.Text = "-" & Text1.TextElseText1.Text = Right(Text1.Text, Len(Text1.Text) - 1)End IfEnd SubPrivate Sub Command8_Click()Text1.Text = Text1.Text * Text1.Text '平方End Sub各位朋友,可以将红色代码复制到相应位置,不清楚的可以全选复制,但是一定要按照我的步骤和给的名称来哦!还可以再添加按钮Private Sub Command9_Click() '这是退出代码EndEnd Sub三、测试,成功的话给个好评哦!谢谢各位下载与支持!这个可以编写作为作业哦!仅供个人参考仅供个人用于学习、研究;不得用于商业用途。
vb计算器 简单程序(包含 进制转换 )
Option ExplicitDim s1 As Integer, N As Single, r As IntegerPrivate Sub Command1_Click(Index As Integer) Text1.Text = Text1.Text & IndexEnd Sub'CEPrivate Sub Command11_Click()Text1.Text = ""End SubPrivate Sub Command12_Click()Text1.Text = (Text1.Text) ^ 2End SubPrivate Sub Command17_Click()Text1.Text = " "End SubPrivate Sub Command18_Click()Text1.Text = (Text1.Text) ^ 3End SubPrivate Sub Command20_Click()If Text1.Text = "" ThenMsgBox ("²Ù×÷´íÎó")ElseText1.Text = Val(Text1.Text) * (-1)End IfEnd SubPrivate Sub Command21_Click()If InStr(Text1.Text, ".") ThenMsgBox ("СÊýµãÒÑ´æÔÚ")ElseText1.Text = Text1 & Chr(46)End IfEnd SubPrivate Sub Command23_Click()If N = 1 ThenIf Text1.Text = 0 ThenMsgBox "³ýÊý²»ÄÜΪÁã"ElseText1 = s1 / Text1.TextEnd IfElseIf N = 2 ThenText1 = s1 * Text1.TextElseIf N = 3 ThenText1 = s1 - Text1.TextElseIf N = 4 ThenText1 = s1 + Text1.TextEnd IfEnd SubPrivate Sub Command24_Click()Text1.Text = 1 / Text1.TextEnd SubPrivate Sub Command25_Click(Index As Integer) Select Case IndexCase 0Text1.Text = Text1.Text & "A"Case 1Text1.Text = Text1.Text & "B"Case 2Text1.Text = Text1.Text & "C"Case 3Text1.Text = Text1.Text & "D"Case 4Text1.Text = Text1.Text & "E"Case 5Text1.Text = Text1.Text & "F"End SelectEnd SubPrivate Sub Command4_Click(Index As Integer) Select Case IndexCase 0N = 1s1 = Text1.TextText1.Text = ""Case 1N = 2s1 = Text1.TextText1.Text = ""Case 2N = 3s1 = Text1.TextText1.Text = ""Case 3N = 4s1 = Text1.TextText1.Text = ""End SelectEnd SubPrivate Sub Command5_Click()Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1) End SubPrivate Sub Command6_Click()Text1.Text = Sqr(Text1.Text)End SubPrivate Sub Form_Load()r = 10End Sub'Ê®Áù½øÖÆPrivate Sub Option1_Click()Command25(1).Enabled = TrueCommand25(0).Enabled = TrueCommand25(2).Enabled = TrueCommand25(3).Enabled = TrueCommand25(4).Enabled = TrueCommand25(5).Enabled = TrueCommand1(6).Enabled = TrueCommand1(9).Enabled = TrueCommand1(2).Enabled = TrueCommand1(3).Enabled = TrueCommand1(4).Enabled = TrueCommand1(5).Enabled = TrueCommand1(7).Enabled = TrueIf r = 10 ThenText1.Text = trandec(Val(Text1.Text), 16) ElseText1.Text = Two16(Text1.Text)End Ifr = 16End Sub'Ê®½øÖÆPrivate Sub Option2_Click()Command1(6).Enabled = TrueCommand1(9).Enabled = TrueCommand1(2).Enabled = TrueCommand1(3).Enabled = TrueCommand1(4).Enabled = TrueCommand1(5).Enabled = TrueCommand1(8).Enabled = TrueCommand1(7).Enabled = TrueCommand25(0).Enabled = FalseCommand25(1).Enabled = FalseCommand25(2).Enabled = FalseCommand25(3).Enabled = FalseCommand25(4).Enabled = FalseCommand25(5).Enabled = FalseText1.Text = Convert(Text1.Text, r)r = 10End Sub'¶þ½øÖÆPrivate Sub Option3_Click()Command1(6).Enabled = FalseCommand1(9).Enabled = FalseCommand1(2).Enabled = FalseCommand1(3).Enabled = FalseCommand1(4).Enabled = FalseCommand1(5).Enabled = FalseCommand1(8).Enabled = FalseCommand1(7).Enabled = FalseCommand25(0).Enabled = FalseCommand25(1).Enabled = FalseCommand25(2).Enabled = FalseCommand25(3).Enabled = FalseCommand25(4).Enabled = FalseIf r = 10 ThenText1.Text = trandec(Val(Text1.Text), 2)ElseText1.Text = HEX_to_BIN(Text1.Text)End Ifr = 2End SubPrivate Sub Text1_Change()If Mid(Text1.Text, 1, 1) = "." ThenText1.Text = 0 & Text1.TextEnd IfEnd Sub'Ê®½øÖÆת¶þºÍÊ®Áù½øÖÆPublic Function trandec$(ByVal m%, ByVal r%)Dim strdtor$Dim iB%, mr%strdtor = ""Do While m <> 0mr = m Mod rm = m \ rIf mr >= 10 Thenstrdtor = Chr(mr - 10 + 65) & strdtorElsestrdtor = mr & strdtorEnd IfLooptrandec = strdtorEnd FunctionPublic Function Convert(ByVal S As String, ByVal N As Integer) As Double 'ÈÎÒâ½øÖÆת»»³É10½øÖÆDim L As StringDim r() As StringDim i As IntegerDim j As IntegerL = "0|1|2|3|4|5|6|7|8|9|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W |X|Y|Z" '½øÖÆ×Ö·û´®×Öµär = Split(L, "|")For i = 1 To Len(S)For j = 0 To UBound(r)If UCase(Mid(S, i, 1)) = r(j) ThenConvert = Convert * N + jEnd IfNext jNext iEnd FunctionPrivate Function Two16(ByVal X As String) As String '°Ñ¶þ½øÖÆÊýת»¯ÎªÊ®Áù½øÖÆÊýDo While Len(X) Mod 4 <> 0X = "0" + XLoopDo While Len(X) > 0Select Case Right(X, 4)Case "0000"Two16 = "0" + Two16Case "0001"Two16 = "1" + Two16Case "0010"Two16 = "2" + Two16Case "0011"Two16 = "3" + Two16Case "0100"Two16 = "4" + Two16Case "0101"Two16 = "5" + Two16Case "0110"Two16 = "6" + Two16Case "0111"Two16 = "7" + Two16Case "1000"Two16 = "8" + Two16Case "1001"Two16 = "9" + Two16Case "1010"Two16 = "A" + Two16Case "1011"Two16 = "B" + Two16Case "1100"Two16 = "C" + Two16Case "1101"Two16 = "D" + Two16Case "1110"Two16 = "E" + Two16Case "1111"Two16 = "F" + Two16End SelectX = Left(X, Len(X) - 4)LoopEnd Function'Ê®Áùת¶þPublic Function HEX_to_BIN(ByVal Hex As String) As String Dim i As LongDim B As StringHex = UCase(Hex)For i = 1 To Len(Hex)Select Case Mid(Hex, i, 1)Case "0": B = B & "0000"Case "1": B = B & "0001"Case "2": B = B & "0010"Case "3": B = B & "0011"Case "4": B = B & "0100"Case "5": B = B & "0101"Case "6": B = B & "0110"Case "7": B = B & "0111"Case "8": B = B & "1000"Case "9": B = B & "1001"Case "A": B = B & "1010"Case "B": B = B & "1011"Case "C": B = B & "1100"Case "D": B = B & "1101"Case "E": B = B & "1110"Case "F": B = B & "1111"End SelectNext iDo While Left(B, 1) = "0"B = Right(B, Len(B) - 1)LoopHEX_to_BIN = BEnd Function。
VB写简易计算器附图
用V B6.0编写简易计算器效果图:废话不多说,直接上步骤一、创建控件组1、创建控件组的方法??首先创建一个命令按钮,调整其大小(觉得合适就行),名称为Command1,Caption属性为数字 0 ;然后进行“复制”和“粘贴”,当选择“粘贴”时,出现对话框提示已有一个同名控件,询问是否创建控件组,选择“是”后,即创建了一个名为“Command”的控件组。
这时,第一个按钮的Index属性值默认为“0”,第二个的Index属性值自动设为“1”,并且大小与第一个按钮相同,只需修改其 Caption 属性为数字“1”并将其拖至合适位置即可。
此后继续使用“粘贴”的方法建立其他控件组中其余按钮,共20个按钮,每建立一个,就将它拖到合适处,并修改相应的Caption属性值。
二、编写代码Dim s1 As Single, s2 As Single, ysf As String'定义两个单精度数变量用与存放参与运算的数,一个字符型存放运算符Private Sub Command1_Click(Index As Integer)Text1.Text = Text1.Text & Command1(Index).Caption'将command1的单击事件与文本框显示的内容连接End SubPrivate Sub Command2_Click()Text1.Text = Text1.Text + "."If (InStr(Text1.Text, ".") = 1) Then'第一位不能为小数Text1.Text = ""End IfIf InStr(Text1.Text, ".") < Len(Text1.Text) Then '防止出现两个小数点Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)End IfEnd SubPrivate Sub Command3_Click()s2 = Val(Text1.Text) '开始加减乘除运算Select Case ysfCase "+"Text1.Text = s1 + s2Case "-"Text1.Text = s1 - s2Case "*"Text1.Text = s1 * s2Case "/"If s2 = 0 ThenMsgBox "分母不能为零!"Text1.Text = ""ElseText1.Text = s1 / s2End IfEnd SelectText1 = IIf(Left(Text1.Text, 1) = ".", 0 & Text1.Text, Text1.Text) '这个很关键,如果没有这个的话,得出小于1的小数前面没有0End SubPrivate Sub Command4_Click()If Text1.Text = "" Then '文本为空就结束Exit SubEnd IfText1.Text = Left(Text1.Text, Len(Text1.Text) - 1) '文本退一格End SubPrivate Sub Command5_Click()Text1.Text = "" '清除当前框内文本End SubPrivate Sub Command6_Click(Index As Integer)s1 = Val(Text1.Text) '将s1隐藏起来ysf = Command6(Index).CaptionText1.Text = ""End SubPrivate Sub Command7_Click()If Left(Text1.Text, 1) <> "-" Then '判断作为负数Text1.Text = "-" & Text1.TextElseText1.Text = Right(Text1.Text, Len(Text1.Text) - 1)End IfEnd SubPrivate Sub Command8_Click()Text1.Text = Text1.Text * Text1.Text '平方End Sub各位朋友,可以将红色代码复制到相应位置,不清楚的可以全选复制,但是一定要按照我的步骤和给的名称来哦!还可以再添加按钮Private Sub Command9_Click() '这是退出代码EndEnd Sub三、测试,成功的话给个好评哦!谢谢各位下载与支持!这个可以编写作为作业哦!。
VB计算器的程序设计(附代码)
计算器的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。
简单科学计算器vb程序
’//本人写的原始程序'注意没法实现如下功能:10+===然后输入10再=。
此程序会结果出错Dim denghao, fenghao As Boolean 'denghao判断是否按下“=”,fenghao判断是否按下“1/X”Dim xiaoshu, biaoji As Boolean 'xiaoshu判断是否已按“.”,biaoji第一次判断前面是否按过“+”“-”等运算符按钮Dim fuhao As Byte '运算符类型标号Dim leixin As Byte '进制转换类型Dim fistnumber, last As Double 'fistnumber第一个数据,最后一个数据Dim panduan, jinzhi As Boolean 'panduan判断前面是否连续按“+”“-”等运算符按钮Dim denglianxu As Boolean 'denglianxu判断前面是否连续安"="Dim m, n, i, sum As DoubleDim pi As Double 'sin,cosDim kuahao As Boolean '判断是否按下“(”Dim si As StringDim shilu, bajin As Boolean '十六进制下才能输入A-F;八进制下8-9不能输入Dim h, d, o, b As Integer '进制Dim se, s As DoubleDim ejin As Boolean '判断2-9,在二进制下不能输入Private Sub baifeng_Click() '1/X的程序If Not biaoji Thenfuhao = 7If Val(Text1.Text) = "0" ThenText1.Text = "除数不能为零"ElseCall jieguoEnd IfElseCall jieguofuhao = 7Call jieguoEnd Iffenghao = Truexiaoshu = FalseEnd SubPrivate Sub clear_Click()If clear.Value = 1 Then Text1.Text = "0"xiaoshu = Falseclear.Value = 0sum = 1biaoji = Falsepanduan = Falsedenghao = Falselast = 0fistnumber = 0denglianxu = FalseX = 0si = ""i = 0sum = 0shilu = Falsebajin = Falseejin = FalseEnd SubPrivate Sub Command11_Click() '+/-号Text1.Text = -1 * Val(Text1.Text)If Left(Val(Text1.Text), 1) = "." Then Text1.Text = "0" + Text1.Text If Left(Val(Text1.Text), 2) = "-." ThenText1.Text = -1 * Val(Text1.Text)Text1.Text = "-0" + Text1.TextEnd Ifpanduan = Truedenglianxu = Falsedenghao = TrueEnd SubPrivate Sub Command0_Click()If Text1.Text = "0" ThenText1.Text = 0ElseIf Not denghao And Not fenghao ThenIf Not kuahao Then Text1.Text = Text1.Text + "0"ElseText1.Text = "0"denglianxu = Falsefenghao = Falsedenghao = Falsepanduan = FalseEnd IfEnd SubPrivate Sub Command1_Click()If Text1.Text = "0" Then Text1.Text = ""If Not denghao And Not fenghao ThenIf Not kuahao Then Text1.Text = Text1.Text + "1" ElseText1.Text = "1"denglianxu = Falsefenghao = Falsedenghao = Falsepanduan = Falsekuahao = FalseEnd IfEnd SubPrivate Sub Command2_Click()If Text1.Text = "0" Then Text1.Text = ""If ejin ThenMsgBox "请输入二进制数"Text1.Text = 0Exit SubEnd IfIf Not denghao And Not fenghao ThenIf Not kuahao Then Text1.Text = Text1.Text + "2" ElseText1.Text = "2"fenghao = Falsedenghao = Falsepanduan = Falsedenglianxu = Falsekuahao = FalseEnd IfEnd SubPrivate Sub Command3_Click()If Text1.Text = "0" Then Text1.Text = ""If ejin ThenMsgBox "请输入二进制数"Text1.Text = 0Exit SubEnd IfIf Not denghao And Not fenghao ThenIf Not kuahao Then Text1.Text = Text1.Text + "3" ElseText1.Text = "3"fenghao = Falsedenghao = Falsepanduan = Falsedenglianxu = Falsekuahao = FalseEnd IfEnd SubPrivate Sub Command4_Click()If Text1.Text = "0" Then Text1.Text = ""If ejin ThenMsgBox "请输入二进制数"Text1.Text = 0Exit SubEnd IfIf Not denghao And Not fenghao ThenIf Not kuahao Then Text1.Text = Text1.Text + "4" ElseText1.Text = "4"fenghao = Falsedenghao = Falsepanduan = Falsekuahao = FalseEnd Ifdenglianxu = FalseEnd SubPrivate Sub Command5_Click()If Text1.Text = "0" Then Text1.Text = ""If ejin ThenMsgBox "请输入二进制数"Exit SubEnd IfIf Not denghao And Not fenghao ThenIf Not kuahao Then Text1.Text = Text1.Text + "5" ElseText1.Text = "5"denghao = Falsefenghao = Falsepanduan = Falsekuahao = FalseEnd Ifdenglianxu = FalseEnd SubPrivate Sub Command6_Click()If Text1.Text = "0" Then Text1.Text = ""If ejin ThenMsgBox "请输入二进制数"Text1.Text = 0Exit SubEnd IfIf Not denghao And Not fenghao ThenIf Not kuahao Then Text1.Text = Text1.Text + "6" ElseText1.Text = "6"denghao = Falsefenghao = Falsepanduan = Falsekuahao = FalseEnd Ifdenglianxu = FalseEnd SubPrivate Sub Command7_Click()If Text1.Text = "0" Then Text1.Text = ""If ejin ThenMsgBox "请输入二进制数"Text1.Text = 0Exit SubEnd IfIf Not denghao And Not fenghao ThenIf Not kuahao Then Text1.Text = Text1.Text + "7" Elsedenghao = Falsefenghao = Falsepanduan = Falsekuahao = FalseEnd Ifdenglianxu = FalseEnd SubPrivate Sub Command8_Click()If Text1.Text = "0" Then Text1.Text = ""If bajin ThenMsgBox "请输入八进制数"Text1.Text = 0Exit SubEnd IfIf ejin ThenMsgBox "请输入二进制数"Text1.Text = 0Exit SubEnd IfIf Not denghao And Not fenghao ThenIf Not kuahao Then Text1.Text = Text1.Text + "8" ElseText1.Text = "8"denghao = Falsefenghao = Falsepanduan = Falsekuahao = FalseEnd Ifdenglianxu = FalseEnd SubPrivate Sub Command9_Click()If Text1.Text = "0" Then Text1.Text = ""If bajin ThenMsgBox "请输入八进制数"Text1.Text = 0Exit SubEnd IfIf ejin ThenMsgBox "请输入二进制数"Text1.Text = 0Exit SubIf Not denghao And Not fenghao ThenIf Not kuahao Then Text1.Text = Text1.Text + "9" ElseText1.Text = "9"denghao = Falsefenghao = Falsepanduan = Falsekuahao = FalseEnd Ifdenglianxu = FalseEnd SubPrivate Sub Command17_Click(Index As Integer) If shilu ThenSelect Case IndexCase 0If Text1.Text = "0" Then Text1.Text = ""If Not denghao And Not fenghao ThenText1.Text = Text1.Text + "A"ElseText1.Text = "A"denghao = Falsefenghao = Falsepanduan = FalseEnd IfCase 1If Text1.Text = "0" Then Text1.Text = ""If Not denghao And Not fenghao ThenText1.Text = Text1.Text + "B"ElseText1.Text = "B"denghao = Falsefenghao = Falsepanduan = FalseEnd IfCase 2If Text1.Text = "0" Then Text1.Text = ""If Not denghao And Not fenghao ThenText1.Text = Text1.Text + "C"ElseText1.Text = "C"denghao = Falsefenghao = Falsepanduan = FalseCase 3If Text1.Text = "0" Then Text1.Text = "" If Not denghao And Not fenghao Then Text1.Text = Text1.Text + "D"ElseText1.Text = "D"denghao = Falsefenghao = Falsepanduan = FalseEnd IfCase 4If Text1.Text = "0" Then Text1.Text = "" If Not denghao And Not fenghao Then Text1.Text = Text1.Text + "E"ElseText1.Text = "E"denghao = Falsefenghao = Falsepanduan = FalseEnd IfCase 5If Text1.Text = "0" Then Text1.Text = "" If Not denghao And Not fenghao Then Text1.Text = Text1.Text + "F"ElseText1.Text = "F"denghao = Falsefenghao = Falsepanduan = FalseEnd IfEnd SelectElseMsgBox "无效函数"End IfEnd SubPrivate Sub eee_Click() 'e为底的指数fuhao = 5Call jieguoxiaoshu = FalsePrivate Sub lne_Click() 'e为底的对数If Text1.Text > 0 Thenfuhao = 6Call jieguoElseMsgBox "函数输入无效", vbRetryCancel, "信息提示" End Ifxiaoshu = FalseEnd SubPrivate Sub exit_Click()EndEnd SubPrivate Sub Form_Load()biaoji = FalseText1.Text = 0sum = 1si = ""xiaoshu = Falsepaiduan = Falsedenghao = Falsedenglianxu = Falseerjin = Falsed = 1i = 0bajin = Falseejin = False'x = 0End SubPrivate Sub jiahao_Click()If Not biaoji Thenfistnumber = Val(Text1.Text)ElseIf Not panduan ThenCall jieguofistnumber = Val(Text1.Text)ElseText1.Text = Val(Text1.Text)End Iffuhao = 1xiaoshu = Falsebiaoji = Truedenghao = Truepanduan = Truedenglianxu = FalseEnd SubPrivate Sub jianhao_Click()If Not biaoji Thenfistnumber = Val(Text1.Text)ElseIf Not panduan ThenCall jieguofistnumber = Val(Text1.Text)ElseText1.Text = Val(Text1.Text)End Iffuhao = 2xiaoshu = Falsedenghao = Truepanduan = Truebiaoji = Truedenglianxu = FalseEnd SubPrivate Sub chenghao_Click()If Not biaoji Then '没有按下运算符fistnumber = Val(Text1.Text)ElseIf Not panduan Then '没有连续按运算按钮Call jieguofistnumber = Val(Text1.Text)ElseText1.Text = Val(Text1.Text)End Iffuhao = 3xiaoshu = Falsebiaoji = Truedenghao = Truepanduan = Truedenglianxu = FalseEnd SubPrivate Sub chuhao_Click()If Not biaoji Thenfistnumber = Val(Text1.Text)ElseIf Not panduan ThenCall jieguofistnumber = Val(Text1.Text)ElseText1.Text = Val(Text1.Text)End Iffuhao = 4xiaoshu = Falsebiaoji = Truedenghao = Truepanduan = Truedenglianxu = FalseEnd SubPrivate Sub Command10_Click() '加“(”括号m = fuhaon = fistnumberbiaoji = FalseText1.Text = "("kuahao = FalseEnd SubPrivate Sub Com_Click() '加“)”括号Call jieguofistnumber = nfuhao = mpanduan = Falsefenghao = Truexiaoshu = FalseEnd SubPrivate Sub result_Click()If panduan Then '有两个以上连续的运算符If Not denglianxu Then '只按了一个等号Text1.Text = Val(Text1.Text)Call jieguoElse '按两个以上的等号Call jianchuEnd IfElse '没有连续运算符(运算符在两个数中间)'Call xxxdenglianxu = FalseCall jieguoEnd IfEnd SubPrivate Sub point_Click()If Not denghao And Not fenghao ThenIf Not kuahao ThenIf Text1.Text = "." Then Text1.Text = "0."End IfIf Not xiaoshu ThenText1.Text = Text1.Text + "."xiaoshu = TrueEnd IfElseText1.Text = "0."denghao = Falsefenghao = FalseEnd IfEnd SubPublic Sub jianchu() '多个等号连续时调用last = Val(Text1.Text)Text1.Text = fistnumberIf fuhao = 1 Then Text1.Text = last + Text1.TextIf fuhao = 2 Then Text1.Text = last - Text1.TextIf fuhao = 3 Then Text1.Text = last * Text1.TextIf fuhao = 4 ThenIf Val(Text1.Text) = "0" ThenText1.Text = "除数不能为零"ElseText1.Text = last / Val(Text1.Text)End IfEnd IfIf Left(Val(Text1.Text), 1) = "." Then Text1.Text = "0" + Text1.TextEnd SubPrivate Sub jiecheng_Click() '阶乘Dim n As Integer, Y As Double, i As Integer 'double和variant变量最多算到170!long最多算到12!If Val(Text1.Text) < 0 ThenText1.Text = "函数输入无效"ElseIf Val(Text1.Text) >= 171 ThenText1.Text = "超出本计算器计算范围"Elsen = Val(Text1.Text)Y = 1For i = 1 To nY = Y * iNext iText1.Text = Str(Y)End IfEnd SubPrivate Sub duishu_Click() '对数If Val(Text1.Text) <= 0 Or V al(Text1.Text) = 1 ThenText1.Text = "函数输入无效"ElseIf Not biaoji Thenfistnumber = Val(Text1.Text)ElseIf Not panduan ThenCall jieguofistnumber = Val(Text1.Text)ElseText1.Text = Val(Text1.Text)End Iffuhao = 9xiaoshu = Falsebiaoji = Truedenghao = Truepanduan = Truedenglianxu = FalseEnd SubPrivate Sub zhishu_Click() '指数If Not biaoji Thenfistnumber = Val(Text1.Text) ElseIf Not panduan ThenCall jieguofistnumber = Val(Text1.Text)ElseText1.Text = Val(Text1.Text)End Iffuhao = 8xiaoshu = Falsebiaoji = Truedenghao = Truepanduan = Truedenglianxu = FalseEnd SubPrivate Sub yuxuan_Click() '余弦fuhao = 10Call jieguoEnd SubPrivate Sub zhengxuan_Click() '正弦fuhao = 11Call jieguoEnd SubPrivate Sub Option1_Click() '16 leixin = 1shilu = Truebajin = Falseejin = FalseCall zhuanhuand = 0o = 0b = 0denghao = TrueEnd SubPrivate Sub Option2_Click() '10 leixin = 2shilu = Falsebajin = Falseejin = FalseCall zhuanhuand = 1h = 0o = 0b = 0denghao = TrueEnd SubPrivate Sub Option3_Click() '8 bajin = Trueleixin = 3shilu = Falseejin = FalseCall zhuanhuano = 1h = 0d = 0b = 0denghao = TrueEnd SubPrivate Sub Option4_Click() '2 leixin = 4ejin = Trueshilu = Falsebajin = FalseCall zhuanhuanb = 1h = 0o = 0denghao = TrueEnd SubPublic Sub zhuanhuan() '进制转换If leixin = 1 ThenIf d = 1 Then Text1.Text = Hex(Text1.Text) '十进制转换成十六进制If o = 1 Then Text1.Text = Hex("&o" & Text1.Text) '八进制转换成十六进制If b = 1 ThenCall ezsText1.Text = Hex(Text1.Text) '二进制转换成十六进制End IfEnd IfIf leixin = 2 ThenIf h = 1 Then Text1.Text = CLng("&h" & Text1.Text) '十六进制转换成十进制If o = 1 Then Text1.Text = CLng("&o" & Text1.Text) '八进制转换成十进制If b = 1 Then Call ezs '二进制转换成十进制End IfIf leixin = 3 Then'If Val(Text1.Text) > 7 Then'MsgBox "请输入八进制数"'Text1.Text = 0'Exit Sub'End If'If Val(Text1.Text) >= 0 And Val(Text1.Text) <= 32767 ThenIf h = 1 Then Text1.Text = Oct("&h" & Text1.Text) '十六进制转换成八进制If d = 1 Then Text1.Text = Oct$(Text1.Text) '十进制转换成八进制If b = 1 ThenCall ezsText1.Text = Oct$(Text1.Text) '二进制转换成八进制End If'Else'MsgBox "请输Integer类型的正数"'Text1.Text = 0'End IfEnd IfIf leixin = 4 ThenIf h = 1 Then '十六进制转换成二进制Text1.Text = CLng("&h" & Text1.Text)Call szeEnd IfIf d = 1 Then Call sze '十进制转换成二进制If o = 1 Then '八进制转换成二进制Text1.Text = CLng("&o" & Text1.Text)Call szeEnd IfIf b = 1 Then '二进制End IfEnd IfEnd SubPublic Sub jieguo() '计算过程和结果If fuhao = 1 ThenText1.Text = fistnumber + V al(Text1.Text)End IfIf fuhao = 2 ThenText1.Text = fistnumber - Val(Text1.Text)End IfIf fuhao = 3 ThenText1.Text = fistnumber * Val(Text1.Text)End IfIf fuhao = 4 ThenIf Val(Text1.Text) = "0" ThenText1.Text = "除数不能为零"ElseText1.Text = fistnumber / Val(Text1.Text)End IfEnd IfIf fuhao = 5 Then Text1.Text = Exp(Val(Text1.Text))If fuhao = 6 Then Text1.Text = Str(Log(Val(Text1.Text))) If fuhao = 7 Then Text1.Text = 1 / Val(Text1.Text)If fuhao = 8 Then '指数Text1.Text = fistnumber ^ Val(Text1.Text)End IfIf fuhao = 9 Then '对数If Val(Text1.Text) = 1 ThenText1.Text = 0Elsesum = Log(Val(Text1.Text)) / Log(fistnumber)Text1.Text = sumEnd IfEnd IfIf fuhao = 10 Thenpi = Val(Text1.Text) / 90If Val(Text1.Text) Mod 90 = 0 And pi Mod 2 <> 0 Then '判断输入值是否为90的奇数倍数,使cos90直接赋为0Text1.Text = 0ElseText1.Text = Cos(Val(Text1.Text) * 3.14159265368979 / 180)End IfEnd IfIf fuhao = 11 Thenpi = Val(Text1.Text) / 90If Val(Text1.Text) Mod 90 = 0 And pi Mod 2 = 0 ThenText1.Text = 0ElseText1.Text = Sin(Val(Text1.Text) * 3.14159265368979 / 180)End IfEnd IfIf Left(Val(Text1.Text), 1) = "." Then Text1.Text = "0" + Text1.TextIf Left(Val(Text1.Text), 2) = "-." ThenText1.Text = -1 * Val(Text1.Text)Text1.Text = "-0" + Text1.TextEnd Ifdenghao = Truexiaoshu = Falsebiaoji = Falsedenglianxu = TrueEnd SubPublic Sub sze() '十进制转换成二进制si = "" '不初始化将出现错误Do Until Val(Text1.Text) = 0s = Val(Text1.Text) Mod 2Text1.Text = Val(Text1.Text) \ 2si = si + Str$(s) 'str$()数值转换成字符串LoopText1.Text = StrReverse(si) '将字符串反序End SubPublic Sub ezs() '二进制转换成十进制sum = 0i = 0 '不赋为零,会出现错误Do Until Val(Text1.Text) = 0se = Val(Text1.Text) Mod 10Text1.Text = Val(Text1.Text) \ 10i = i + 1sum = sum + se * 2 ^ (i - 1)LoopText1.Text = sumEnd Sub。
用VB编写一个简单计算器
用VB编写一个简单计算器一、功能:实现简单的加减乘除功能,C归零,CE取消输入,%计算并显示第一个操作数的百分比。
二、控件:1个label,20个commandbutton。
三、计算器运行界面:四、详细代码:Option ExplicitDim Op1, Op2 '前面输入的操作数Dim DecimalFlag As Integer '小数点仍然存在吗?Dim NumOps As Integer '操作数个数Dim LastInput '指示上一次按键事件的类型Dim OpFlag '指示未完成的操作Dim TempReadout' C (取消) 按钮的Click 事件过程' 重新设置显示并初始化变量Private Sub Cancel_Click()Readout = Format(0, "0.")Op1 = 0Op2 = 0Form_LoadEnd Sub' CE (取消输入) 按钮的Click 事件过程Private Sub CancelEntry_Click()Readout = Format(0, "0.")DecimalFlag = FalseLastInput = "CE"End Sub' 小数点(.) 按钮的Click 事件过程' 如果上一次按键为运算符,初始化readout 为"0.";' 否则显示时追加一个小数点Private Sub Decimal_Click()If LastInput = "NEG" ThenReadout = Format(0, "-0.")ElseIf LastInput <> "NUMS" ThenReadout = Format(0, "0.")End IfDecimalFlag = TrueLastInput = "NUMS"End Sub' 窗体的初始化过程' 设置所有变量为其初始值Private Sub Form_Load()DecimalFlag = FalseNumOps = 0LastInput = "NONE"OpFlag = " "Readout = Format(0, "0.")'Decimal.Caption = Format(0, ".")End Sub' 数字键(0-9) 的Click 事件过程' 向显示中的数追加新数Private Sub Number_Click(Index As Integer)If LastInput <> "NUMS" ThenReadout = Format(0, ".")DecimalFlag = FalseEnd IfIf DecimalFlag ThenReadout = Readout + Number(Index).CaptionElseReadout = Left(Readout, InStr(Readout, Format(0, ".")) - 1) + Number(Index).Caption + Format(0, ".")End IfIf LastInput = "NEG" Then Readout = "-" & ReadoutLastInput = "NUMS"End Sub' 运算符(+, -, x, /, =) 的Click 事件过程' 如果接下来的按键是数字键,增加NumOps。
用VB制作计算器
用VB制作计算器在VB编程语言中,可以使用Windows Forms应用程序来制作一个简单的计算器。
Windows Forms应用程序是VB的一种可视化编程工具,可以为用户提供一个图形用户界面。
首先,我们需要创建一个新的Windows Forms应用程序项目,并打开默认生成的Form1窗体。
接下来,我们可以使用Windows Forms控件来创建一个计算器的用户界面。
在Form1窗体上,我们可以添加一个TextBox控件用于显示计算结果,并设置其属性为只读。
```vbPrivate ReadOnly resultTextBox As TextBox = New TextBox```然后,我们可以添加一些Button控件来表示计算器的数字和操作符。
我们可以使用按钮的Click事件来处理用户的点击操作。
```vbPrivate ReadOnly buttons As List(Of Button) = New List(Of Button)```接下来,我们需要实现按钮的Click事件处理程序来执行相应的计算逻辑。
我们可以使用Eval函数来计算表达式的值,并将结果显示在TextBox中。
Private Sub Button_Click(sender As Object, e As EventArgs) Dim button As Button = TryCast(sender, Button)If button IsNot Nothing ThenDim buttonText As String = button.TextIf buttonText = "=" Then'计算表达式的值Dim expression As String = resultTextBox.TextDim value As Double = Eval(expression)resultTextBox.Text = value.ToStringElseIf buttonText = "C" Then'清空文本框resultTextBox.Text = ""Else'添加数字或操作符resultTextBox.Text += buttonTextEnd IfEnd IfEnd Sub最后,我们需要在窗体的构造函数或Load事件处理程序中将按钮和TextBox添加到窗体上。
使用VB制作计算器程序
使用VB制作计算器程序计算器程序是一种用于进行数学计算的工具。
最常见的计算器是电子计算器,它可以实现简单的加减乘除等基本计算。
而现在,我们可以使用VB(即Visual Basic)编程语言制作一个计算器程序,使其在计算能力上有所提升。
首先,我们需要创建一个VB Windows Forms应用程序。
在创建项目时,我们可以选择桌面应用程序(Windows Forms)模板。
接下来,我们需要设计计算器的用户界面。
可以使用按钮、文本框等控件来实现基本的数字输入和计算。
假设我们的计算器有一个文本框用于显示输入和结果,并且有数字按钮和运算符按钮来输入表达式,并且还有一个等号按钮用于计算结果。
我们可以使用VB代码来实现各种按钮的功能。
以下是一个简单的计算器程序示例:```vbPublic Class Form1Dim num1 As Double ' 第一个操作数Dim num2 As Double ' 第二个操作数Dim result As Double ' 结果Dim operator As String ' 运算符'数字按钮的点击事件处理函数Private Sub NumberButton_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click, Button3.Click, Button4.Click, Button5.Click, Button6.Click, Button7.Click, Button8.Click, Button9.Click, Button0.ClickDim number As Button = CType(sender, Button)TextBox1.Text += number.TextEnd Sub'运算符按钮的点击事件处理函数Private Sub OperatorButton_Click(sender As Object, e As EventArgs) Handles PlusButton.Click, MinusButton.Click, MultiplyButton.Click, DivideButton.ClickDim op As Button = CType(sender, Button)num1 = CDbl(TextBox1.Text)TextBox1.Clear[operator] = op.TextEnd Sub'等号按钮的点击事件处理函数Private Sub EqualsButton_Click(sender As Object, e As EventArgs) Handles EqualsButton.Clicknum2 = CDbl(TextBox1.Text)Select Case [operator]Case "+"result = num1 + num2Case "-"result = num1 - num2Case "*"result = num1 * num2Case "/"result = num1 / num2End SelectTextBox1.Text = result.ToStringEnd Sub'清除按钮的点击事件处理函数Private Sub ClearButton_Click(sender As Object, e As EventArgs) Handles ClearButton.ClickTextBox1.ClearEnd SubEnd Class```以上代码实现了简单的加减乘除功能,并将结果显示在文本框中。
VB计算器程序代码
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实例代码-计算器
VB实例代码-计算器首先,需建立如下控件:标签:Label1命令按钮:名称 Caption值Cback ?Cclear CECstart CCsin SinCcos CosCsqrt SqrtCsign +/-Cpoint CpointCequal =控件数组:(命令按钮)Calcu(1) +Calcu(2) -Calcu(3) *Calcu(4) /Cnum(0) 0Cnum(1) 1...Cnum(9) 9然后在代码窗口写源码:Option ExplicitDim Num1, Num2 As Double Dim PointIn As Boolean Dim Inputing As Boolean Dim Operation1 As IntegerPrivate Sub Calcu_Click(i As Integer)If Inputing = False Then '在前次运算提交之后尚未输入新的数据Operation1 = i '运算符重置Num1 = Label1 '将显示栏里的数据赋值给第一个操作数Exit SubEnd IfInputing = False '将当前状态置为非输入数据阶段If Num1 <> 0 Then '非首次计算Num2 = Label1 '将显示栏里的数据赋值给第二个操作数Calculate (Operation1) '计算前一次运算并显示结果Else '首次计算Num1 = Label1 '将显示栏里的数据赋值给第一个操作数End IfOperation1 = i '提交运算符End SubPrivate Sub Cback_Click()Dim TheLen As IntegerTheLen = Len(Label1)If TheLen > 2 ThenIf Right(Label1, 1) = "." ThenLabel1 = Left(Label1, TheLen - 2) & "."ElseLabel1 = Left(Label1, TheLen - 1)End IfElseCclear_ClickEnd IfEnd SubPrivate Sub Cclear_Click()Label1 = "0."Num2 = 0PointIn = FalseEnd SubPrivate Sub Ccos_Click()Calculate (6)Inputing = FalseEnd SubPrivate Sub Cequal_Click()If Inputing Then '如果刚输入过数据'Or Operation1 > 0 Then Num2 = Label1 '将显示栏里的数据赋值给第二个操作数End IfInputing = False '将当前状态置为非输入数据阶段Calculate (Operation1) '计算提交的运算并显示结果Num1 = 0Operation1 = 0End SubPrivate Sub Calculate(Oprt As Integer) Select Case OprtCase 1Num1 = Num1 + Num2ShowResult (Num1)Case 2Num1 = Num1 - Num2ShowResult (Num1)Case 3Num1 = Num1 * Num2ShowResult (Num1)Case 4Num1 = Num1 / Num2ShowResult (Num1)Case 5Num2 = Label1Num1 = Sin(Num2)ShowResult (Num1)Case 6Num2 = Label1Num1 = Cos(Num2)ShowResult (Num1)Case 7Num2 = Label1Num1 = Sqr(Num2)ShowResult (Num1)End SelectEnd SubPrivate Sub ShowResult(Num As Double)If Num = Fix(Num) Then '整数Label1 = Num & "."ElseIf Left(Num, 1) = "." Then '第一个字符为小数点Label1 = "0" & NumElseIf Left(Num, 2) = "-." Then '前两个字符为"-." Label1 = "-0." & Right(CStr(Num), Len(CStr(Num)) - 2) ElseLabel1 = NumEnd IfEnd SubPrivate Sub Cnum_Click(Index As Integer)NumInput (Index)End SubPrivate Sub Cpoint_Click()If Inputing = False ThenLabel1 = "0."Inputing = TrueEnd IfPointIn = TrueEnd SubPrivate Sub Csign_Click()If Label1 <> "0." ThenDim StrTemp As StringStrTemp = Label1If Left(StrTemp, 1) = "-" ThenLabel1 = Right(StrTemp, Len(StrTemp) - 1) ElseLabel1 = "-" & StrTempEnd IfEnd IfEnd SubPrivate Sub Csin_Click()Calculate (5)Inputing = FalseEnd SubPrivate Sub Csqrt_Click()Dim x As Longx = Label1If x >= 0 ThenCalculate (7)ElseLabel1 = "Error!"End IfInputing = FalseEnd SubPrivate Sub Cstart_Click()Label1 = "0."Num1 = 0Num2 = 0PointIn = FalseInputing = TrueOperation1 = 0End SubPrivate Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Cequal.SetFocusIf KeyCode = 46 Then '按Del键Cclear_ClickEnd IfEnd SubPrivate Sub Form_KeyPress(KeyAscii As Integer)Select Case KeyAscii'键入数字:Case 48 To 57NumInput (KeyAscii - 48)Case 46 '小数点Cpoint_Click'键入运算符:Case 43 '加号Calcu_Click (1)Case 45 '减号Calcu_Click (2)Case 42 '乘号Calcu_Click (3)Case 47 '除号Calcu_Click (4)Case 27 '重新开始(退出键)Cstart_ClickCase 8 '退格Cback_ClickCase 13 '等于(回车键)Cequal_ClickEnd SelectEnd SubPrivate Sub Form_Load()Me.Top = (Screen.Height - Me.Height) / 2 Me.Left = (Screen.Width - Me.Width) / 2 Me.KeyPreview = TrueCstart_ClickEnd SubPrivate Sub NumInput(n As Integer) If Len(Label1) > 15 ThenExit SubEnd IfIf Inputing = False ThenCclear_ClickLabel1 = n & "."Inputing = TrueElseIf Label1 <> "0." ThenIf Right(Label1, 1) = "." ThenIf PointIn = False ThenDim TheLen As IntegerTheLen = Len(Label1)Label1 = Left(Label1, TheLen - 1) Label1 = Label1 & n & "."ElseLabel1 = Label1 & nEnd IfElseLabel1 = Label1 & nEnd IfElseIf PointIn ThenLabel1 = Label1 & nElseLabel1 = n & "." End IfEnd IfEnd Sub。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Option ExplicitDim LastInput As String * 3 '记录上次按下的按键Dim Num1 As Double '第一个操作数Dim Num2 As Double '第二个操作数Dim OptType As Integer '按下哪一个操作符Dim Result As Double '表示运算结果Dim shuzhi As Integer '表示当前采用的shuzhiDim FirstNum As Boolean '是否是第一个操作数Sub keyp(keynum As Integer)Dim CHAR As String * 1CHAR = Chr(keynum)If CHAR = "+" Or keynum = 43 Then Command5(0).Value = TrueIf CHAR = "-" Or keynum = 45 Then Command5(1).Value = TrueIf CHAR = "*" Or keynum = 42 Then Command5(2).Value = TrueIf CHAR = "/" Or keynum = 47 Then Command5(3).Value = TrueIf shuzhi = 2 And CHAR >= "2" And CHAR <= "9" Thenkeynum = 0Exit SubEnd IfIf keynum >= 48 And keynum <= 57 Then Command1(keynum - 48).Value = True If keynum = 46 Then Command2.Value = TrueIf UCase(CHAR) = "C" Then Command3.Value = TrueIf keynum = 27 Then Command4.Value = TrueIf keynum = 61 Then Command6.Value = Truekeynum = 0End SubFunction angle(ByVal j1 As Integer) As Singleangle = j1If Option1.Value Then angle = j1 * 3.14 / 180End FunctionFunction ArcSin(ByVal Num As Single) As SingleIf Num = 1 ThenArcSin = 3.1415926 / 2ElseIf Num = -1 ThenArcSin = 3.1415926 * 3 / 2ElseArcSin = Atn(Num / Sqr(-Num * Num + 1))End IfIf Option1.Value Then ArcSin = ArcSin * 180 / 3.1415926End FunctionFunction ArcCos(ByVal Num As Single) As SingleIf Num = 1 ThenArcCos = 0ElseIf Num = -1 ThenArcCos = 3.1415926ElseArcCos = Atn(-Num / Sqr(-Num * Num + 1)) + 2 * Atn(1)End IfIf Option1.Value Then ArcCos = ArcCos * 180 / 3.1415926 End FunctionFunction jiecheng(ByVal n As Integer) As SingleDim COUNT As Integerjiecheng = 1For COUNT = 1 To njiecheng = jiecheng * COUNTNextEnd FunctionFunction n10to2(ByVal Number As Single) As SingleDim IntN As Long 'Number的整数部分Dim FracN As Single 'Number的小数部分Dim ModN As Integer '整数部分换算时,记录余数Dim RltN As String '换算结果Dim i As IntegerIf InStr(Number, "e") > 0 Or InStr(Number, "E") > 0 Then MsgBox "不能转换以科学记数法表示的数据!"Exit FunctionEnd IfModN = 0'Number = Val(Text1.Text)IntN = Int(Number)FracN = Number - IntN'以下代码用于将十进制的整数部分换算为二进制Do While IntN > 0ModN = IntN Mod 2IntN = IntN \ 2RltN = ModN & RltNLoopRltN = RltN & "."i = 1'以下代码用于将十进制的小数部分换算为二进制Do While i <= 7 Or FracN <> 0FracN = FracN * 2If FracN >= 1 ThenFracN = FracN - 1RltN = RltN & "1"ElseRltN = RltN & "0"End Ifi = i + 1Loopn10to2 = RltN'Option3.Value = TrueEnd FunctionFunction n2to10(ByVal Number As Double) As SingleDim i As Integer, j As IntegerDim IntN As Long, FracN As SingleDim RltN As SingleDim POS As Integer '记录小数点位置If InStr(Number, "e") > 0 Or InStr(Number, "E") > 0 ThenMsgBox "不能转换以科学记数法表示的数据!"Exit FunctionEnd IfOn Error GoTo ErrIntN = Int(Number)FracN = Number - IntNDo While IntN > 0 '换算整数部分RltN = RltN + (IntN Mod 10) * 2 ^ jj = j + 1IntN = IntN \ 10LoopPOS = InStr(1, Str(FracN), ".")j = -1For i = POS + 1 To Len(Str(FracN)) '换算小数部分RltN = RltN + 2 ^ j * Val(Mid(Str(FracN), i, 1))j = j - 1Next in2to10 = RltN'Option4.Value = TrueExit FunctionErr:Text1.Text = "数据太大,溢出!"End FunctionPrivate Sub Command1_Click(Index As Integer)'当按下数字键(0-9)时,向文本框尾部追加数据'并通过变量LastInput记录上次按键为数字键If Len(Text1.Text) > 16 Then Exit SubIf Text1.Text = "0" Or LastInput = "Eqv" Then Text1.Text = ""Text1.Text = Text1.Text & Index '追加数据LastInput = "Num"Command1(0).SetFocusEnd SubPrivate Sub Command1_KeyPress(Index As Integer, KeyAscii As Integer) Call keyp(KeyAscii)End SubPrivate Sub Command2_Click()'按下小数点按钮的处理过程'如果数据位数超出范围,或数据中已包含小数点,退出本过程If Len(Text1.Text) > 16 Or InStr(1, Text1.Text, ".") > 0 _And LastInput <> "Eqv" Then Exit Sub'如果以"."开始输入新数据,在"."前加"0";'如果在数据输入过程中按下".",直接将"."追加在数据尾部If LastInput = "Opt" Or LastInput = "Eqv" Or LastInput = "Neg" Then Text1.Text = Text1.Text + "0."ElseText1.Text = Text1.Text + "."End IfLastInput = "Num"Command1(0).SetFocusEnd SubPrivate Sub Command3_Click()'按下"C"(取消) 按钮的Click 事件过程'重新设置并初始化变量。
Num1 = 0Num2 = 0Text1.Text = "0"OptType = -1LastInput = "Nul"Command1(0).SetFocusFirstNum = TrueEnd SubPrivate Sub Command4_Click()'单击"OFF"键退出程序EndEnd SubPrivate Sub Command5_Click(Index As Integer)'单击运算符(+、-、*、/)按钮的事件过程'按下运算符后,单击"-","-"作为负号使用If LastInput = "Opt" And Command5(Index).Caption = "-" Then Text1.Text = "-"LastInput = "Neg"Exit SubEnd If'按下"C"(取消)键后,单击"-","-"作为负号使用If LastInput = "Nul" And Command5(Index).Caption = "-" Then Text1.Text = "-"LastInput = "Neg"OptType = -1Exit SubEnd If'按下运算符键后,获取第一个操作数Num1,并记录按下的运算符Num1 = Val(Text1.Text)If shuzhi = 2 Then Num1 = n2to10(Num1)Text1.Text = ""LastInput = "Opt"OptType = IndexCommand1(0).SetFocusFirstNum = FalseEnd SubPrivate Sub Command6_Click()'单击"="按钮时,计算并显示结果Num2 = Val(Text1.Text)If shuzhi = 2 Then Num2 = n2to10(Num2)Select Case OptTypeCase 0 '加法Result = Num1 + Num2Case 1 '减法Result = Num1 - Num2Case 2 '乘法Result = Num1 * Num2Case 3 '除法If Num2 = 0 ThenText1.Text = "EEEE.EEEE"ElseResult = Num1 / Num2End IfEnd SelectIf shuzhi = 2 Then Result = n10to2(Result)If Text1.Text <> "EEEE.EEEE" Then Text1.Text = Trim(Str(Result)) '显示结果Num1 = 0Num2 = 0LastInput = "Eqv"OptType = -1Command1(0).SetFocusFirstNum = TrueEnd SubPrivate Sub Command7_Click(Index As Integer)On Error Resume NextNum1 = Val(Text1.Text)If shuzhi = 2 Then Num1 = n2to10(Num1)Select Case IndexCase 0 'Sin(x)Text1.Text = Sin(angle(Num1))Case 1 'Cos(x)Text1.Text = Cos(angle(Num1))Case 2 'Tan(x)Text1.Text = Tan(angle(Num1))Case 3 'ASin(x)If Abs(Num1) <= 1 ThenText1.Text = ArcSin(Num1)ElseText1.Text = "EEEE.EEEE"End IfCase 4If Abs(Num1) <= 1 ThenText1.Text = ArcCos(Num1)ElseText1.Text = "EEEE.EEEE"End IfCase 5Text1.Text = Atn(Num1)If Option1.Value Then Text1.Text = Atn(Num1) * 180 / 3.1415926 End SelectIf Option3.Value Then Text1.Text = n10to2(Text1.Text)Num1 = 0Num2 = 0LastInput = "Eqv"OptType = -1Command1(0).SetFocusFirstNum = TrueEnd SubPrivate Sub Command8_Click(Index As Integer)Num1 = Val(Text1.Text)If shuzhi = 2 Then Num1 = n2to10(Num1)Select Case IndexCase 0 'E^xText1.Text = 2.7182 ^ Num1Case 1 'LN(X)If Num1 <= 0 ThenText1.Text = "EEEE.EEEE"ElseText1.Text = Log(Num1)End IfCase 2 'LOG(X)If Num1 <= 0 ThenText1.Text = "EEEE.EEEE"ElseText1.Text = Log(Num1) / Log(10)End IfCase 3 'Sqr(x)If Num1 < 0 ThenText1.Text = "EEEE.EEEE"ElseText1.Text = Sqr(Num1)End IfCase 4 '1/XIf Num1 = 0 ThenText1.Text = "EEEE.EEEE"ElseText1.Text = 1 / Num1End IfCase 5 'N!If Num1 < 0 ThenText1.Text = "EEEE.EEEE"ElseText1.Text = jiecheng(Int(Num1))End IfEnd SelectIf shuzhi = 2 Then Text1.Text = n10to2(Val(Text1.Text))Num1 = 0Num2 = 0LastInput = "Eqv"OptType = -1Command1(0).SetFocusFirstNum = TrueEnd SubPrivate Sub Form_Load()'加载窗体,变量初始化LastInput = "Nul"Num1 = 0Num2 = 0OptType = -1Text1.Text = "0"Text1.Locked = Trueshuzhi = 10Option1.Value = TrueOption4.Value = TrueText1.Locked = TrueEnd SubPrivate Sub Option1_Click()Static i As IntegerIf i > 0 Then Command1(0).SetFocus i = i + 1End SubPrivate Sub Option2_Click() Command1(0).SetFocusEnd SubPrivate Sub Option3_Click()Dim i As Integershuzhi = 2For i = 2 To 9Command1(i).Enabled = False Next iIf FirstNum ThenNum1 = Val(Text1.Text)Text1.Text = n10to2(Num1)ElseNum2 = Val(Text1.Text)Text1.Text = n10to2(Num2)End IfCommand1(0).SetFocusEnd SubPrivate Sub Option4_Click()Dim i As IntegerStatic j As IntegerIf shuzhi = 2 ThenFor i = 2 To 9Command1(i).Enabled = TrueNext ishuzhi = 10End IfIf FirstNum ThenNum1 = Val(Text1.Text)Text1.Text = n2to10(Num1)ElseNum2 = Val(Text1.Text)Text1.Text = n2to10(Num2)End IfFirstNum = TrueIf j > 0 Then Command1(0).SetFocus j = j + 1End Sub。