急急急,求大神用vb教做一个简易计算器,加减乘除就可以。能用加分
界面上放1个文本框。6个按钮,分别为+、-、*、/、=、C
定义几个窗体级变量
dim x1 as double, x2 as double
dim OperateID as integer
窗体装载时给初值
Private Sub Form1_Load()
x1 = 0
x2 = 0
OperateID = 0
End Sub
C按钮,即清零按钮
Private Sub Button6_Click()
x1 = 0
x2 = 0
OperateID = 0
Text1.Text = 0
End Sub
+按钮
Private Sub Button1_Click()
Calculate()
x1 = Val(Text1.Text)
OperateID = 1
End Sub
-按钮
Private Sub Button2_Click()
Calculate()
x1 = Val(Text1.Text)
OperateID = 2
End Sub
*按钮
Private Sub Button3_Click()
Calculate()
x1 = Val(Text1.Text)
OperateID = 3
End Sub
/按钮
Private Sub Button4_Click()
Calculate()
x1 = Val(Text1.Text)
OperateID = 4
End Sub
=按钮
Private Sub Button5_Click()
Calculate()
End Sub
计算用的函数
Sub Calculate()
x2 = Val(Text1.Text)
Select Case OperateID
Case 1
TextBox1.Text = x1 + x2
Case 2
TextBox1.Text = x1 - x2
Case 3
TextBox1.Text = x1 * x2
Case 4
TextBox1.Text = x1 / x2
End Select
OperateID = 0
End Sub
可以。字符串的相加为字符串的连接。例如 "a"+"b"="ab".但是字符串不能相减 你给的算式结果为 .04 因为a赋值为12数据类型为数值型。他只是把结果变成了STR型的数据。
按你的要求做的代码如下:
在1个新窗体上编排以下控件:
添加1个Label1控件用作显示数据,name=lblScreen
添加1个Command控件数组(10个数字)用作输入数据的按钮0~9,name=cmdNumber,index=0~9
添加1个Command控件用作小数点按钮“.”,name=cmdPoint
添加1个Command控件等号按钮“=”,name=cmdEqual
添加1个Command控件数组(4个符号)用作加减乘除按钮,name=cmdArithmetic,index=0~3
好了,然后复制以下代码运行即可成功啦:
'***************************************************************************************
Private strCalculateType As String '存放运算类型
Private blnCalFlag As Boolean '标记是否已经输入加数、或减数、或乘数、或除数等
Private dblNum1 As Double '存放被加数、或被减数、或被乘数、或被除数等
Private dblNum2 As Double '存放加数、或减数、或乘数、或除数等
Private dblMemo As Double '内存中的数
Private Sub Form_Load()
Dim i As Integer
lblScreen = "0" '初始化显示屏和关闭按钮
lblScreen.BackColor = vbBlack
strCalculateType = "" '初始化运算符类型和标记变量
blnCalFlag = False
dblMemo = 0 '初始化内存变量
End Sub
'四则运算
Private Sub cmdArithmetic_Click(Index As Integer)
Select Case Index
Case 0 '输入加法
cmdEqual_Click
strCalculateType = "+"
dblNum1 = Val(lblScreen)
Case 1 '输入减法
cmdEqual_Click
strCalculateType = "-"
dblNum1 = Val(lblScreen)
Case 2 '输入乘法
cmdEqual_Click
strCalculateType = "*"
dblNum1 = Val(lblScreen)
Case 3 '输入初法
cmdEqual_Click
strCalculateType = "/"
dblNum1 = Val(lblScreen)
End Select
End Sub
'求结果(即等于)
Private Sub cmdEqual_Click()
dblNum2 = Val(lblScreen)
If strCalculateType = "/" Then
lblScreen = dblNum1 / dblNum2
ElseIf strCalculateType = "*" Then
lblScreen = dblNum1 * dblNum2
ElseIf strCalculateType = "-" Then
lblScreen = dblNum1 - dblNum2
ElseIf strCalculateType = "+" Then
lblScreen = dblNum1 + dblNum2
ElseIf strCalculateType = "x^y" Then
lblScreen = dblNum1 ^ dblNum2
End If
' If Left(lblScreen.Caption, 1) = "." Then lblScreen.Caption = "0" & lblScreen.Caption
' If Len(lblScreen.Caption) > 15 Then lblScreen.Caption = Left(lblScreen.Caption, 15)
strCalculateType = ""
blnCalFlag = False
End Sub
'使用控件数组输入数据
Private Sub cmdNumber_Click(Index As Integer)
If lblScreen = "0" Then
lblScreen = ""
End If
If blnCalFlag = False Then
lblScreen = CStr(Index)
blnCalFlag = True
Else
lblScreen = lblScreen + CStr(Index)
End If
End Sub
'输入小数点
Private Sub cmdPoint_Click()
If blnCalFlag = True Then
If InStr(1, lblScreen, ".") = 0 Then
If lblScreen <> "" Then
lblScreen = lblScreen + "."
Else
lblScreen = "0."
End If
End If
Else
If blnCalFlag = False Then
lblScreen = "0."
blnCalFlag = True
End If
End If
End Sub
'***************************************************************************************
怎么样?给你的代码非常详细了吧,包括给你的解说哦!
用SELECT CASE 语句 很简单的
急急急,求大神用vb教做一个简易计算器,加减乘除就可以。能用加分视频
相关评论:
郎贤华添加1个Command控件数组(4个符号)用作加减乘除按钮,name=cmdArithmetic,index=0~3 好了,然后复制以下代码运行即可成功啦:'Private strCalculateType As String '存放运算类型 Private blnCalFlag As Boolean '标记是否已经输入加数、或减数、或乘数、或除数等 Private dblNum1 As Double '存放被加数、...
郎贤华2016-07-07 VB的问题,要用VB语言做,很急 2014-01-04 VB 中DoEvents和RaiseEvent的用法是什么? 5 2007-11-07 vb do loop 急急急急!!!11 2011-09-27 在VB语言中,DOEVENTS的具体的用法和含义是什么 53 2009-03-14 VB中的do while loop语句 99 2009-02-09 VB中的Do...Loop语句怎么使用? 2...
郎贤华打开VB,新建一个标准EXE。2 \/9 拖动一个按钮,它属性的caption改为按钮。再放进一个图片框,名称改为图片。3 \/9 双击按钮,进入代码编程,输入 图片.print "你好 呵呵呵"4 \/9 返回,将图片的属性AutoRedraw改为True。即设置为自动重画。5 \/9 点击运行,按下按钮,出现文字。6 \/9 上面是第一...
郎贤华新建一个工程,在form1上添加一个按钮,写入下面代码:Private Sub Msgbox(Cps As String, Tp As String)Form2.Image1.Picture = LoadPicture(Tp)Form2.Caption = Cps Form2.Show 1 End Sub Private Sub Command1_Click()Msgbox "我的Msgbox", "D:\\a.jpg"End Sub 在工程中添加一个窗体,添加...
郎贤华(最好我可以直接将代码复制到VB中,设置下属性便可以运行!!!)代码越简单越好,符合初学者,好的我会追加分,谢谢~~!!! 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 更多回答(1) 其他类似问题 2013-09-30 急求!急求!要一个vb制作小游戏全过程,要有代码和Timer... 2 2012-05-01 简单小游戏VB...
郎贤华“蓝方”Label 下方的分数 Label 名称为 Label2 代码如下:Private Sub Command1_Click() Label1.Caption = Label1.Caption + 1 If Label1.Caption >= 5 Then MsgBox "红方胜!" End If Command1.Enabled = False Command2.Enabled = FalseEnd SubPrivate Sub Command2_Click...
郎贤华好了,现在开始讲做用VB做输入法的第一步,做一个无焦点的窗体,输入法一般都是没有标题栏的,就算有标题栏也是没有焦点的(本文来自wb86.com)。用VB做焦点的窗体,我们要靠API来帮VB实现此功能。先在窗体模块输入:Private Const GWL_STYLE = (-16)Private Const HWND_TOPMOST = -1 Private ...
郎贤华编写示例代码如下:Private Sub Command1_Click() Dim Birthday As Date '出生日期 Dim DieDay As Date '死亡日期(100岁) Dim Days As Long '剩余天数 Birthday = CDate(Text1.Text) DieDay = DateAdd("yyyy", 100, Birthday) '计算出死亡日期,也就是100岁生日 ...
郎贤华1、图标没多大关系,把图片裁成统一尺寸,每张图用一个picturebox装起来,就是一个图标了。2、倒计时用timer稳定性,但不好写,可以用timer控件,结合一个进度条,每次循环进度条长度减少,当长度为零时提示timer over,也可长度为某某值事提示“加油”等等 3、音效如果要求不高就弄一点喜欢的轻音乐用...
郎贤华,msgbox点对应按钮会返回一个值,用于判断,但是inputbox 没有 你只能这样 你点取消时返回的是"",空白字符串,如 a(i).Name = InputBox("输入第" & i & "个学生姓名", "提示")if a(i).name="" then exit sub'退出过程 end if ...方法大概是这样,具体操作改一下就可以了 ...