用VB设计一个计算器

用VB设计一个计算器,第1张

'这个很简单的了,你用记事本把这段代码复制过去,然后另存为frm就可以了

'然后用vb打开。看看效果。

'以下保存为 任务名称frm

VERSION 500

Begin VBForm Form1

Caption = "计算机"

ClientHeight = 4230

ClientLeft = 60

ClientTop = 750

ClientWidth = 3165

LinkTopic = "Form1"

MaxButton = 0 'False

MinButton = 0 'False

ScaleHeight = 4230

ScaleWidth = 3165

StartUpPosition = 2 '屏幕中心

Begin VBFrame Frame1

Height = 3495

Left = 120

TabIndex = 1

Top = 600

Width = 2895

Begin VBCommandButton cmdResult

Caption = "="

BeginProperty Font

Name = "宋体"

Size = 12

Charset = 134

Weight = 400

Underline = 0 'False

Italic = 0 'False

Strikethrough = 0 'False

EndProperty

Height = 375

Left = 1080

TabIndex = 20

Top = 3000

Width = 1695

End

Begin VBCommandButton cmdOff

Caption = "OFF"

Height = 375

Left = 1560

TabIndex = 19

Top = 240

Width = 495

End

Begin VBCommandButton cmdCE

Caption = "CE"

Height = 375

Left = 2280

TabIndex = 18

Top = 240

Width = 495

End

Begin VBCommandButton cmdchu

Caption = "/"

Height = 375

Left = 2280

TabIndex = 17

Top = 2520

Width = 495

End

Begin VBCommandButton cmdjia

Caption = "+"

Height = 375

Left = 2280

TabIndex = 16

Top = 720

Width = 495

End

Begin VBCommandButton cmd0

Caption = "0"

Height = 375

Left = 840

TabIndex = 15

Top = 2520

Width = 495

End

Begin VBCommandButton cmd6

Caption = "6"

Height = 375

Left = 1560

TabIndex = 14

Top = 1320

Width = 495

End

Begin VBCommandButton cmd8

Caption = "8"

Height = 375

Left = 840

TabIndex = 13

Top = 720

Width = 495

End

Begin VBCommandButton cmd4

Caption = "4"

Height = 375

Left = 120

TabIndex = 12

Top = 1320

Width = 495

End

Begin VBCommandButton cmd9

Caption = "9"

Height = 375

Left = 1560

TabIndex = 11

Top = 720

Width = 495

End

Begin VBCommandButton cmd2

Caption = "2"

Height = 375

Left = 840

TabIndex = 10

Top = 1920

Width = 495

End

Begin VBCommandButton cmdjian

Caption = "-"

Height = 375

Left = 2280

TabIndex = 9

Top = 1320

Width = 495

End

Begin VBCommandButton cmdPoint

Caption = ""

BeginProperty Font

Name = "宋体"

Size = 12

Charset = 134

Weight = 400

Underline = 0 'False

Italic = 0 'False

Strikethrough = 0 'False

EndProperty

Height = 375

Left = 1560

TabIndex = 8

Top = 2520

Width = 495

End

Begin VBCommandButton cmdcheng

Caption = ""

Height = 375

Left = 2280

TabIndex = 7

Top = 1920

Width = 495

End

Begin VBCommandButton cmd5

Caption = "5"

Height = 375

Left = 840

TabIndex = 6

Top = 1320

Width = 495

End

Begin VBCommandButton cmd3

Caption = "3"

Height = 375

Left = 1560

TabIndex = 5

Top = 1905

Width = 495

End

Begin VBCommandButton cmd1

Caption = "1"

Height = 375

Left = 120

TabIndex = 4

Top = 1920

Width = 495

End

Begin VBCommandButton cmd7

Caption = "7"

Height = 375

Left = 120

TabIndex = 3

Top = 720

Width = 495

End

Begin VBCommandButton cmdChange

Caption = "+/-"

Height = 375

Left = 120

TabIndex = 2

Top = 2520

Width = 495

End

End

Begin VBTextBox txt

Alignment = 1 'Right Justify

Enabled = 0 'False

BeginProperty Font

Name = "宋体"

Size = 105

Charset = 134

Weight = 400

Underline = 0 'False

Italic = 0 'False

Strikethrough = 0 'False

EndProperty

Height = 375

Left = 120

Locked = -1 'True

TabIndex = 0

Top = 120

Width = 2895

End

Begin VBMenu meuFile

Caption = "文件(&F)"

Begin VBMenu meuExit

Caption = "退出(&X)"

Shortcut = ^X

End

End

End

Attribute VB_Name = "Form1"

Attribute VB_GlobalNameSpace = False

Attribute VB_Creatable = False

Attribute VB_PredeclaredId = True

Attribute VB_Exposed = False

Dim XiaoShu As Boolean

'在窗体变量中声明一个布尔值来判断是否按下小数点键,防止txt中出现多个小数。如果已经输入了小数点则Xiaoshu为True,否则为False

Dim FuHao As Byte

'声明一个Byte来记录我们按下了什么符号,1为"+",2为"-",3为"",4为"/"

Dim FirstNumber As Double

'声明一个变量来记录 *** 作数的第一个数,如A+B,那么FirstNumber来记下A的值。

Dim DengHao As Boolean

'声明一个变量来记录是否按下了=号,如果按下了则为True

Private Sub cmd0_Click()

If txtText <> "" Then txtText = txtText + "0" '防止多个0在文本中出现

End Sub

Private Sub cmd1_Click() '按下1时

If Not DengHao Then '没按下等号

txtText = txtText + "1"

Else

txtText = "1" '按下了等号

DengHao = False

End If

End Sub

Private Sub cmd2_Click() '按下2时

If Not DengHao Then '没按下等号

txtText = txtText + "2"

Else

txtText = "2" '按下了等号

DengHao = False

End If

End Sub

Private Sub cmd3_click() '按下3时

If Not DengHao Then '没按下等号

txtText = txtText + "3"

Else

txtText = "3" '按下了等号

DengHao = False

End If

End Sub

Private Sub cmd4_Click() '按下4时

If Not DengHao Then '没按下等号

txtText = txtText + "4"

Else

txtText = "4" '按下了等号

DengHao = False

End If

End Sub

Private Sub cmd5_Click() '按下5时

If Not DengHao Then '没按下等号

txtText = txtText + "5"

Else

txtText = "5" '按下了等号

DengHao = False

End If

End Sub

Private Sub cmd6_Click() '按下6时

If Not DengHao Then '没按下等号

txtText = txtText + "6"

Else

txtText = "6" '按下了等号

DengHao = False

End If

End Sub

Private Sub cmd7_Click() '按下7时

If Not DengHao Then '没按下等号

txtText = txtText + "7"

Else

txtText = "7" '按下了等号

DengHao = False

End If

End Sub

Private Sub cmd8_Click() '按下8时

If Not DengHao Then '没按下等号

txtText = txtText + "8"

Else

txtText = "8" '按下了等号

DengHao = False

End If

End Sub

Private Sub cmd9_Click() '按下9时

If Not DengHao Then '没按下等号

txtText = txtText + "9"

Else

txtText = "9" '按下了等号

DengHao = False

End If

End Sub

Private Sub cmdCE_Click()

txtText = ""

XiaoShu = False

End Sub

Private Sub cmdChange_Click()

If (Sgn(Val(txtText))) = 1 Then txtText = "-" + txtText: Exit Sub '用Sgn来判断txt文本框内的值的符号。大于0的话就在前面加上"-"

If (Sgn(Val(txtText))) = -1 Then txtText = Abs(Val(txtText)) 'txt文本框的文本为大于0的数txt前面的"-"去掉。

End Sub

Private Sub cmdcheng_Click()

FirstNumber = Val(txtText)

FuHao = 3

txtText = ""

XiaoShu = False

End Sub

Private Sub cmdchu_Click()

FirstNumber = Val(txtText)

FuHao = 4

txtText = ""

XiaoShu = False

End Sub

Private Sub cmdjia_Click()

FirstNumber = Val(txtText)

FuHao = 1

txtText = ""

XiaoShu = False

End Sub

Private Sub cmdjian_Click()

FirstNumber = Val(txtText)

FuHao = 2

txtText = ""

XiaoShu = False

End Sub

Private Sub cmdOff_Click()

End

End Sub

Private Sub cmdPoint_Click()

If txtText = "" Then txtText = "0"

If Not XiaoShu Then '当我们以前没有按下小数点键时在txt中加上小数点

txtText = txtText + ""

XiaoShu = True

End If

End Sub

Private Sub cmdResult_Click()

If FuHao = 1 Then '按下了+号

txtText = FirstNumber + Val(txtText)

End If

If FuHao = 2 Then '按下了-号

txtText = FirstNumber - Val(txtText)

End If

If FuHao = 3 Then '按下了号

txtText = FirstNumber Val(txtText)

End If

If FuHao = 4 Then '按下了、号

txtText = FirstNumber / Val(txtText)

End If

DengHao = True '记录下按了=号

XiaoShu = False

End Sub

Private Sub meuExit_Click()

End

End Sub

Dim N1 As Single

Dim ysf As String

Dim qing As Boolean

Dim M As Single

Private Sub C_Click(Index As Integer)

If qing = True Then

LCaption = ""

qing = False

End If

LCaption = LCaption & C(Index)Caption

End Sub

Private Sub Command1_Click()

qing = True

Dim N2 As Single

Dim T As Single

N2 = Val(LCaption)

Select Case ysf

Case "+"

T = N1 + N2

Case "-"

T = N1 - N2

Case ""

T = N1 N2

Case "/"

T = N1 / N2

End Select

LCaption = T

End Sub

Private Sub Command10_Click()

M = Val(LCaption)

L1Caption = "M"

End Sub

Private Sub Command11_Click()

M = M + Val(LCaption)

End Sub

Private Sub Command2_Click()

LCaption = -Val(LCaption)

End Sub

Private Sub Command3_Click()

If LCaption <> "" Then

LCaption = Left(LCaption, Len(LCaption) - 1)

End If

End Sub

Private Sub Command4_Click()

N1 = 0

LCaption = ""

ysf = "+"

End Sub

Private Sub Command5_Click()

LCaption = ""

End Sub

Private Sub Command6_Click()

LCaption = Sqr(Val(LCaption))

qing = True

End Sub

Private Sub Command7_Click()

LCaption = 1 / (Val(LCaption))

End Sub

Private Sub Command8_Click()

M = 0

L1Caption = ""

End Sub

Private Sub Command9_Click()

LCaption = M

End Sub

Private Sub Form_Load()

ysf = "+"

End Sub

Private Sub s_Click(Index As Integer)

N1 = LCaption

ysf = s(Index)Caption

qing = True

End Sub

Private Sub xsd_Click()

If qing = True Then

LCaption = ""

qing = False

End If

If InStr(1, LCaption, "") = 0 Then

LCaption = LCaption & ""

End If

End Sub

很简单的:窗口放入四个COMMAND控件(Caption属性分别为+、-、X、÷),三个TEXT控件,再放入三个Label控件(Caption属性分别为: *** 作数1、 *** 作数2和计算结果),窗口的Caption属性改为“四则运算”

代码如下:

Private Sub Command1_Click()

If Val(Text1Text) + Val(Text2Text) <> Int(Val(Text1Text) + Val(Text2Text)) Then

Text3Text = Format(Val(Text1Text) + Val(Text2Text), "0######")

Else

Text3Text = Val(Text1Text) + Val(Text2Text)

End If

End Sub

Private Sub Command2_Click()

If Val(Text1Text) - Val(Text2Text) <> Int(Val(Text1Text) - Val(Text2Text)) Then

Text3Text = Format(Val(Text1Text) - Val(Text2Text), "0######")

Else

Text3Text = Val(Text1Text) - Val(Text2Text)

End If

End Sub

Private Sub Command3_Click()

If Val(Text1Text) Val(Text2Text) <> Int(Val(Text1Text) Val(Text2Text)) Then

Text3Text = Format(Val(Text1Text) Val(Text2Text), "0######")

Else

Text3Text = Val(Text1Text) Val(Text2Text)

End If

End Sub

Private Sub Command4_Click()

If Val(Text1Text) / Val(Text2Text) <> Int(Val(Text1Text) / Val(Text2Text)) Then

Text3Text = Format(Val(Text1Text) / Val(Text2Text), "0######")

Else

Text3Text = Val(Text1Text) / Val(Text2Text)

End If

End Sub

给你个稍微简单一点的。。。。用控件数组的。

Dim v As Boolean

Dim s As Integer

Dim x As Double

Dim y As Double

Private Sub Command1_Click(Index As Integer)

If Form1Tag = "s" Then

If Index = 10 Then

Text1Text = "0"

Else

Text1Text = Command1(Index)Caption

End If

Form1Tag = ""

Else

Text1Text = Text1Text & Command1(Index)Caption

End If

End Sub

Private Sub Command2_Click(Index As Integer)

Form1Tag = "s"

If v Then

x = Val(Text1Text)

v = Not v

Else

y = Val(Text1Text)

Select Case s

Case 0

Text1Text = x + y

Case 1

Text1Text = x - y

Case 2

Text1Text = x y

Case 3

If y <> 0 Then

Text1Text = x / y

Else

MsgBox ("不能以0为除数")

Text1Text = x

v = False

End If

Case 4

y = 0

v = False

End Select

x = Val(Text1Text)

End If

s = Index

End Sub

10个数字按钮,四个四则运算按钮,一个小数点按钮和一个等于号按钮,一个文本框

数字和小数点做成一组控件数组,其他的运算按钮做一个控件数组,

完全版的前后台代码

'请把下面的保存为 form1frm

VERSION 500

Begin VBForm Calculator

BorderStyle = 1 'Fixed Single

Caption = "计算器"

ClientHeight = 2970

ClientLeft = 2580

ClientTop = 1485

ClientWidth = 3270

ClipControls = 0 'False

BeginProperty Font

Name = "System"

Size = 975

Charset = 0

Weight = 700

Underline = 0 'False

Italic = 0 'False

Strikethrough = 0 'False

EndProperty

Icon = "CALCfrx":0000

LinkMode = 1 'Source

LinkTopic = "Form1"

MaxButton = 0 'False

PaletteMode = 1 'UseZOrder

ScaleHeight = 2970

ScaleWidth = 3270

WhatsThisHelp = -1 'True

Begin VBCommandButton Number

Caption = "7"

Height = 480

Index = 7

Left = 120

TabIndex = 7

Top = 600

Width = 480

End

Begin VBCommandButton Number

Caption = "8"

Height = 480

Index = 8

Left = 720

TabIndex = 8

Top = 600

Width = 480

End

Begin VBCommandButton Number

Caption = "9"

Height = 480

Index = 9

Left = 1320

TabIndex = 9

Top = 600

Width = 480

End

Begin VBCommandButton Cancel

Caption = "C"

Height = 480

Left = 2040

TabIndex = 10

Top = 600

Width = 480

End

Begin VBCommandButton CancelEntry

Caption = "CE"

Height = 480

Left = 2640

TabIndex = 11

Top = 600

Width = 480

End

Begin VBCommandButton Number

Caption = "4"

Height = 480

Index = 4

Left = 120

TabIndex = 4

Top = 1200

Width = 480

End

Begin VBCommandButton Number

Caption = "5"

Height = 480

Index = 5

Left = 720

TabIndex = 5

Top = 1200

Width = 480

End

Begin VBCommandButton Number

Caption = "6"

Height = 480

Index = 6

Left = 1320

TabIndex = 6

Top = 1200

Width = 480

End

Begin VBCommandButton Operator

Caption = "+"

Height = 480

Index = 1

Left = 2040

TabIndex = 12

Top = 1200

Width = 480

End

Begin VBCommandButton Operator

Caption = "-"

Height = 480

Index = 3

Left = 2640

TabIndex = 13

Top = 1200

Width = 480

End

Begin VBCommandButton Number

Caption = "1"

Height = 480

Index = 1

Left = 120

TabIndex = 1

Top = 1800

Width = 480

End

Begin VBCommandButton Number

Caption = "2"

Height = 480

Index = 2

Left = 720

TabIndex = 2

Top = 1800

Width = 480

End

Begin VBCommandButton Number

Caption = "3"

Height = 480

Index = 3

Left = 1320

TabIndex = 3

Top = 1800

Width = 480

End

Begin VBCommandButton Operator

Caption = "X"

Height = 480

Index = 2

Left = 2040

TabIndex = 14

Top = 1800

Width = 480

End

Begin VBCommandButton Operator

Caption = "/"

Height = 480

Index = 0

Left = 2640

TabIndex = 15

Top = 1800

Width = 480

End

Begin VBCommandButton Number

Caption = "0"

Height = 480

Index = 0

Left = 120

TabIndex = 0

Top = 2400

Width = 1080

End

Begin VBCommandButton Decimal

Caption = ""

Height = 480

Left = 1320

TabIndex = 18

Top = 2400

Width = 480

End

Begin VBCommandButton Operator

Caption = "="

Height = 480

Index = 4

Left = 2040

TabIndex = 16

Top = 2400

Width = 480

End

Begin VBCommandButton Percent

Caption = "%"

Height = 480

Left = 2640

TabIndex = 17

Top = 2400

Width = 480

End

Begin VBLabel 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")

'DecimalCaption = 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

以上就是关于用VB设计一个计算器全部的内容,包括:用VB设计一个计算器、用vb语言编写一个简易计算器、如何用VB做简易的四则运算计算器等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/9301746.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存