急急急,求大神用vb教做一个简易计算器,加减乘除就可以。能用加分

来自:    更新日期:早些时候
有没有大神帮我用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教做一个简易计算器,加减乘除就可以。能用加分视频

相关评论:
  • 17588055946急急急,求大神用vb教做一个简易计算器,加减乘除就可以。能用加分
    郎贤华添加1个Command控件数组(4个符号)用作加减乘除按钮,name=cmdArithmetic,index=0~3 好了,然后复制以下代码运行即可成功啦:'Private strCalculateType As String '存放运算类型 Private blnCalFlag As Boolean '标记是否已经输入加数、或减数、或乘数、或除数等 Private dblNum1 As Double '存放被加数、...

  • 17588055946用vb语言中的do 来做 急急急
    郎贤华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...

  • 17588055946用vb怎么做出如图,这样的效果?求大神解答!!!
    郎贤华打开VB,新建一个标准EXE。2 \/9 拖动一个按钮,它属性的caption改为按钮。再放进一个图片框,名称改为图片。3 \/9 双击按钮,进入代码编程,输入 图片.print "你好 呵呵呵"4 \/9 返回,将图片的属性AutoRedraw改为True。即设置为自动重画。5 \/9 点击运行,按下按钮,出现文字。6 \/9 上面是第一...

  • 17588055946VB问题!!!急急急!!!如何msgbox一张图片!
    郎贤华新建一个工程,在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 在工程中添加一个窗体,添加...

  • 17588055946用VB制作个小游戏。急急急急急~!!!马上就要交了,随便什么都行,简单的小...
    郎贤华(最好我可以直接将代码复制到VB中,设置下属性便可以运行!!!)代码越简单越好,符合初学者,好的我会追加分,谢谢~~!!! 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 更多回答(1) 其他类似问题 2013-09-30 急求!急求!要一个vb制作小游戏全过程,要有代码和Timer... 2 2012-05-01 简单小游戏VB...

  • 17588055946急! 用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...

  • 17588055946VB如何开发一个五笔输入法
    郎贤华好了,现在开始讲做用VB做输入法的第一步,做一个无焦点的窗体,输入法一般都是没有标题栏的,就算有标题栏也是没有焦点的(本文来自wb86.com)。用VB做焦点的窗体,我们要靠API来帮VB实现此功能。先在窗体模块输入:Private Const GWL_STYLE = (-16)Private Const HWND_TOPMOST = -1 Private ...

  • 17588055946急 如何用VB编写一个生命倒计时程序?
    郎贤华编写示例代码如下: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岁生日 ...

  • 17588055946急!求高手制作VB连连看小游戏
    郎贤华1、图标没多大关系,把图片裁成统一尺寸,每张图用一个picturebox装起来,就是一个图标了。2、倒计时用timer稳定性,但不好写,可以用timer控件,结合一个进度条,每次循环进度条长度减少,当长度为零时提示timer over,也可长度为某某值事提示“加油”等等 3、音效如果要求不高就弄一点喜欢的轻音乐用...

  • 17588055946急急急。给女友做vb课设!!!求科普啊大婶
    郎贤华,msgbox点对应按钮会返回一个值,用于判断,但是inputbox 没有 你只能这样 你点取消时返回的是"",空白字符串,如 a(i).Name = InputBox("输入第" & i & "个学生姓名", "提示")if a(i).name="" then exit sub'退出过程 end if ...方法大概是这样,具体操作改一下就可以了 ...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网