添加10个按钮作为按钮数组,表示0-9,在加几个按钮表示+-*/=之类的,用一个textbox作显示屏。设置几个模块变量,如当前状态(正在输入数字 或 刚刚按完运算符或等号)
添加按钮的Click事件,如数字键的功能如下:
Private Sub cmdNum_Click(Index As Integer)
    If 状态 = 输入数字 Then
        Text1.Text = Text1.Text & Index
    Else
        Text1.Text = Index
    End If
End Sub

解决方案 »

  1.   

    我有个原代码把你信箱给我![email protected]
      

  2.   

    http://fohu.myetang.com/myworks/calcplus.zip(算霸1.0)是用BCB编的
      

  3.   

    我有一个源程序,还能自定义计算符以及扩展命令
    email me:
    [email protected]
      

  4.   

    上面的老兄,把你的源代码给我一份~~!谢了!
    [email protected]
      

  5.   

    '请把下面的保存为 form1.frmVERSION 5.00
    Begin VB.Form Calculator 
       BorderStyle     =   1  'Fixed Single
       Caption         =   "计算器"
       ClientHeight    =   2970
       ClientLeft      =   2580
       ClientTop       =   1485
       ClientWidth     =   3270
       ClipControls    =   0   'False
       BeginProperty Font 
          Name            =   "System"
          Size            =   9.75
          Charset         =   0
          Weight          =   700
          Underline       =   0   'False
          Italic          =   0   'False
          Strikethrough   =   0   'False
       EndProperty
       Icon            =   "CALC.frx":0000
       LinkMode        =   1  'Source
       LinkTopic       =   "Form1"
       MaxButton       =   0   'False
       PaletteMode     =   1  'UseZOrder
       ScaleHeight     =   2970
       ScaleWidth      =   3270
       WhatsThisHelp   =   -1  'True
       Begin VB.CommandButton Number 
          Caption         =   "7"
          Height          =   480
          Index           =   7
          Left            =   120
          TabIndex        =   7
          Top             =   600
          Width           =   480
       End
       Begin VB.CommandButton Number 
          Caption         =   "8"
          Height          =   480
          Index           =   8
          Left            =   720
          TabIndex        =   8
          Top             =   600
          Width           =   480
       End
       Begin VB.CommandButton Number 
          Caption         =   "9"
          Height          =   480
          Index           =   9
          Left            =   1320
          TabIndex        =   9
          Top             =   600
          Width           =   480
       End
       Begin VB.CommandButton Cancel 
          Caption         =   "C"
          Height          =   480
          Left            =   2040
          TabIndex        =   10
          Top             =   600
          Width           =   480
       End
       Begin VB.CommandButton CancelEntry 
          Caption         =   "CE"
          Height          =   480
          Left            =   2640
          TabIndex        =   11
          Top             =   600
          Width           =   480
       End
       Begin VB.CommandButton Number 
          Caption         =   "4"
          Height          =   480
          Index           =   4
          Left            =   120
          TabIndex        =   4
          Top             =   1200
          Width           =   480
       End
       Begin VB.CommandButton Number 
          Caption         =   "5"
          Height          =   480
          Index           =   5
          Left            =   720
          TabIndex        =   5
          Top             =   1200
          Width           =   480
       End
       Begin VB.CommandButton Number 
          Caption         =   "6"
          Height          =   480
          Index           =   6
          Left            =   1320
          TabIndex        =   6
          Top             =   1200
          Width           =   480
       End
       Begin VB.CommandButton Operator 
          Caption         =   "+"
          Height          =   480
          Index           =   1
          Left            =   2040
          TabIndex        =   12
          Top             =   1200
          Width           =   480
       End
       Begin VB.CommandButton Operator 
          Caption         =   "-"
          Height          =   480
          Index           =   3
          Left            =   2640
          TabIndex        =   13
          Top             =   1200
          Width           =   480
       End
       Begin VB.CommandButton Number 
          Caption         =   "1"
          Height          =   480
          Index           =   1
          Left            =   120
          TabIndex        =   1
          Top             =   1800
          Width           =   480
       End
       Begin VB.CommandButton Number 
          Caption         =   "2"
          Height          =   480
          Index           =   2
          Left            =   720
          TabIndex        =   2
          Top             =   1800
          Width           =   480
       End
       Begin VB.CommandButton Number 
          Caption         =   "3"
          Height          =   480
          Index           =   3
          Left            =   1320
          TabIndex        =   3
          Top             =   1800
          Width           =   480
       End
       Begin VB.CommandButton Operator 
          Caption         =   "X"
          Height          =   480
          Index           =   2
          Left            =   2040
          TabIndex        =   14
          Top             =   1800
          Width           =   480
       End
       Begin VB.CommandButton Operator 
          Caption         =   "/"
          Height          =   480
          Index           =   0
          Left            =   2640
          TabIndex        =   15
          Top             =   1800
          Width           =   480
       End
       Begin VB.CommandButton Number 
          Caption         =   "0"
          Height          =   480
          Index           =   0
          Left            =   120
          TabIndex        =   0
          Top             =   2400
          Width           =   1080
       End
       Begin VB.CommandButton Decimal 
          Caption         =   "."
          Height          =   480
          Left            =   1320
          TabIndex        =   18
          Top             =   2400
          Width           =   480
       End
       Begin VB.CommandButton Operator 
          Caption         =   "="
          Height          =   480
          Index           =   4
          Left            =   2040
          TabIndex        =   16
          Top             =   2400
          Width           =   480
       End
       Begin VB.CommandButton Percent 
          Caption         =   "%"
          Height          =   480
          Left            =   2640
          TabIndex        =   17
          Top             =   2400
          Width           =   480
       End
       Begin VB.Label Readout 
          Alignment       =   1  'Right Justify
          BackColor       =   &H0000FFFF&
          BorderStyle     =   1  'Fixed Single
          Caption         =   "0."
          BeginProperty Font 
             Name            =   "MS Sans Serif"
             Size            =   12
             Charset         =   0
             Weight          =   700
             Underline       =   0   'False
             Italic          =   0   'False
             Strikethrough   =   0   'False
          EndProperty
          ForeColor       =   &H00000000&
          Height          =   375
          Left            =   120
          TabIndex        =   19
          Top             =   105
          Width           =   3000
       End
    End
    Attribute VB_Name = "Calculator"
    Attribute VB_GlobalNameSpace = False
    Attribute VB_Creatable = False
    Attribute VB_PredeclaredId = True
    Attribute VB_Exposed = False
    ' --------------------------------------------------------------------------
    '        版权所有 (C) 1994 Microsoft Corporation
    '
    ' 您可以免费以任何方式使用、修改、复制并分发您认为有用的
    ' 示例应用程序文件 (或任何修改过的版本)。Microsoft 对任何
    ' 示例应用程序文件不做任何保证,不负任何责任和义务。
    ' --------------------------------------------------------------------------
    Option Explicit
    Dim 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 = 0
        Op2 = 0
        Form_Load
    End Sub' CE (取消输入) 按钮的 Click 事件过程
    Private Sub CancelEntry_Click()
        Readout = Format(0, "0.")
        DecimalFlag = False
        LastInput = "CE"
    End Sub' 小数点 (.) 按钮的 Click 事件过程
    ' 如果上一次按键为运算符,初始化 readout 为 "0.";
    ' 否则显示时追加一个小数点
    Private Sub Decimal_Click()
        If LastInput = "NEG" Then
            Readout = Format(0, "-0.")
        ElseIf LastInput <> "NUMS" Then
            Readout = Format(0, "0.")
        End If
        DecimalFlag = True
        LastInput = "NUMS"
    End Sub' 窗体的初始化过程
    ' 设置所有变量为其初始值
    Private Sub Form_Load()
        DecimalFlag = False
        NumOps = 0
        LastInput = "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" Then
            Readout = Format(0, ".")
            DecimalFlag = False
        End If
        If DecimalFlag Then
            Readout = Readout + Number(Index).Caption
        Else
            Readout = Left(Readout, InStr(Readout, Format(0, ".")) - 1) + Number(Index).Caption + Format(0, ".")
        End If
        If LastInput = "NEG" Then Readout = "-" & Readout
        LastInput = "NUMS"
    End Sub' 运算符 (+, -, x, /, =) 的 Click 事件过程
    ' 如果接下来的按键是数字键,增加 NumOps。
    ' 如果有一个操作数,则设置 Op1。
    ' 如果有两个操作数,则将 Op1 设置为 Op1 与
    ' 当前输入字符串的运算结果,并显示结果
    Private Sub Operator_Click(Index As Integer)
        TempReadout = Readout
        If LastInput = "NUMS" Then
            NumOps = NumOps + 1
        End If
        Select Case NumOps
            Case 0
            If Operator(Index).Caption = "-" And LastInput <> "NEG" Then
                Readout = "-" & Readout
                LastInput = "NEG"
            End If
            Case 1
            Op1 = Readout
            If Operator(Index).Caption = "-" And LastInput <> "NUMS" And OpFlag <> "=" Then
                Readout = "-"
                LastInput = "NEG"
            End If
            Case 2
            Op2 = TempReadout
            Select Case OpFlag
                Case "+"
                    Op1 = CDbl(Op1) + CDbl(Op2)
                Case "-"
                    Op1 = CDbl(Op1) - CDbl(Op2)
                Case "X"
                    Op1 = CDbl(Op1) * CDbl(Op2)
                Case "/"
                    If Op2 = 0 Then
                       MsgBox "除数不能为 0", 48, "计算器"
                    Else
                       Op1 = CDbl(Op1) / CDbl(Op2)
                    End If
                Case "="
                    Op1 = CDbl(Op2)
                Case "%"
                    Op1 = CDbl(Op1) * CDbl(Op2)
                End Select
            Readout = Op1
            NumOps = 1
        End Select
        If LastInput <> "NEG" Then
            LastInput = "OPS"
            OpFlag = Operator(Index).Caption
        End If
    End Sub' 百分比键 (%) 的 Click 事件过程
    ' 计算并显示第一个操作数的百分数
    Private Sub Percent_Click()
        Readout = Readout / 100
        LastInput = "Ops"
        OpFlag = "%"
        NumOps = NumOps + 1
        DecimalFlag = True
    End Sub
      

  6.   

    我编了一个,支持所有四则运算、取模、整除、三角及反三角函数、幂运算和对数、还有数据统计功能、大数运算功能(高精度的运算,没有四舍五入)、表达式计算功能(输入表达式就能计算,目前支持普通运算、三角对数等运算、逻辑表达式运算、解一元一次方程,以及它们的混合运算)。要的话请给我发e-mail,[email protected],并注明是否要源代码。