怎样用VB编写简单的计算器程序??

怎样用VB编写简单的计算器程序??,第1张

分类: 电脑/网络 >>程序设计 >>其他编程语言

解析:

其实比较简单啦,用一个窗体就可以实现啦!

我自己写的,你可以看看

Option Explicit

Dim strNumber As String

Dim strPoint As String

Dim dblNum1 As Double

Dim intOperator As Integer

'清除结果绝敏

Private Sub cmdGT_Click()

txtDisplay.Text = "0."

strNumber = ""

strPoint = "."

intOperator = 7

End Sub

'输入数字

Private Sub cmdNumber_Click(Index As Integer)

strNumber = strNumber &cmdNumber(Index).Caption

txtDisplay.Text = strNumber &strPoint

End Sub

Private Sub cmdOnOff_Click()

End

End Sub

'运算过程

Private Sub cmdOperator_Click(Index As Integer)

Dim dblnum2 As Double

'是第一次单击运算符时并告枝,将输入的值先赋给第一个数,否则赋值给第二个数进行运算

If intOperator = 7 Then

dblNum1 = CDbl(txtDisplay.Text)

Else

dblnum2 = CDbl(Val(txtDisplay.Text))

'根据输入的符号进行运算

'求普通运算

Select Case intOperator

Case 0

dblNum1 = dblNum1 + dblnum2

Case 1

dblNum1 = dblNum1 - dblnum2

Case 2

dblNum1 = dblNum1 * dblnum2

Case 3

If dblnum2 <>0 Then

dblNum1 = dblNum1 / dblnum2

Else

MsgBox "除数不能为“0”!请友贺重新输入除数。", vbOKOnly + vbInformation, "除零错误"

Index = intOperator

End If

Case 6

dblNum1 = dblNum1 * dblnum2 / 100

End Select

End If

'取得当前输入的运算符,以做下次运算

intOperator = Index

strNumber = ""

txtDisplay = CStr(dblNum1)

'判断是否为文本框中的数字加点

If Not txtDisplay Like "*.*" Then

txtDisplay.Text = txtDisplay.Text &"."

End If

End Sub

Private Sub cmdOtherOper_Click(Index As Integer)

Dim dblNum As Double

'求平方根,平方,

dblNum = CDbl(Val(txtDisplay.Text))

Select Case Index

Case 0

'验证数据是否有效

If dblNum >= 0 Then

txtDisplay.Text = CStr(Sqr(dblNum))

Else

MsgBox "负数不能开平方根!", _

vbOKOnly + vbCritical, "开平方根错误"

End If

Case 1

txtDisplay.Text = CStr(dblNum ^ 2)

End Select

'判断是否为文本框中的数字加点

If Not txtDisplay Like "*.*" Then

txtDisplay.Text = txtDisplay.Text &"."

End If

End Sub

Private Sub cmdPoint_Click()

strNumber = strNumber &strPoint

strPoint = ""

End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

'使被按下的数字键的对应按钮取得焦点

Select Case KeyCode

Case 48 To 57

cmdNumber(KeyCode - 48).SetFocus

Case 96 To 105

cmdNumber(KeyCode - 96).SetFocus

Case Else

'使按下的符号键对应的按钮取得焦点

If KeyCode = 107 Or (Shift = vbShiftMask And KeyCode = 187) Then

cmdOperator(0).SetFocus

cmdOperator_Click (0)

ElseIf KeyCode = 109 Or KeyCode = 189 Then

cmdOperator(1).SetFocus

cmdOperator_Click (1)

ElseIf KeyCode = 106 Or (Shift = vbShiftMask And KeyCode = 56) Then

cmdOperator(2).SetFocus

cmdOperator_Click (2)

ElseIf KeyCode = 111 Or KeyCode = 191 Then

cmdOperator(3).SetFocus

cmdOperator_Click (3)

ElseIf KeyCode = 13 Then

cmdOperator(7).SetFocus

cmdOperator_Click (7)

ElseIf KeyCode = 8 Then

cmdGT.SetFocus

Call cmdGT_Click

End If

End Select

End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)

'将合法的数据输入到文本框

Select Case KeyAscii

Case 48 To 58

'调用数字键点击处理程序

cmdNumber_Click KeyAscii - 48

KeyAscii = 0

Case 46

'调用小数点输入

cmdPoint_Click

KeyAscii = 0

Case 13

'当敲击回车时,不能触发Form的 KeyUp 事件,因此在这里设置文本框的焦点

txtDisplay.SetFocus

Case Else

KeyAscii = 0

End Select

End Sub

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)

txtDisplay.SetFocus

End Sub

Private Sub Form_Load()

strNumber = ""

strPoint = "."

intOperator = 7

End Sub

Mod

运算符

用来对两个数作除法并且只返回余数。

语法

result

=

number1

Mod

number2

Mod

的语法具有以下几个部分:

部分

描述

result

必需的;任何数值变量。

number1

必需的;任何数值表达式

number2

必需的;任何数值表达式。

说明

在进行

Mod

运算或求余数运算时,该运算符将

number1

number2

除(将浮点数字四舍五入成整数),并把余数作为

result

的值返回。例如差陪首,在下列表达式中,A

(result)

等于

5。

A

=

19

Mod

6.7

一般说来,不管

result

是否为一个整数,result

的数据类型为

Byte,Byte

变体、Integer、Integer

变体、Long

或一个包含

Long

Variant。任何小数部分都被删除。但是,如果任何一个

Null,类型的表达式出现时,result

都将是

Null。任何

Empty

类型表达式都作为

0

处理。

/

运算符

用来进行两个数的除法运算并返回一个浮点数。

语法

result

=

number1/number2

/

运算符的语法具有以下几个部分:

部分

描述

result

必需的;任何数值变量。

number1

必需的;任何数值表达式。

number2

必需的;任何数值表达式。

说明

result

的数据类型通常是

Double

Double

变体。下列情况是例外:

如果

result

两个表达式都是

Byte、Integer

或Single表达式时,

一个

Single,除非超出正确范围;如果发生这种情况,则产生错误。

两个表达式都是

Byte、Integer

或Single

变体,

一个

Single

变体,除非乱态已超出正确范围;一旦发生这种情况,result

是一个包含

Double

Variant。

除法运算中有一个

Decimal及其它任何数据类型,

一个

Decimal

数据类型。

如果有一个或是两个表达式是

Null

表达式,则

result

Null。如果一个表达式是

Empty

则作为

0

处理。

\

运算符

用来对两个数作除法并返回一个整数。

语法

result

=

number1\number2

\

运算符的语法具有以下几个部分:

部分

描述

result

必需的;任何数值变量。

number1

必需的;任何数值表达式。

number2

必需的;虚数任何数值表达式。

说明

在进行除法运算之前,数值表达式通过舍去小数部分转换成

Byte、Integer

Long表达式。

通常,无论

result

是不是整数,result

的数据类型都是

Byte、Byte

变体、Integer、Integer

变体、Long

Long

变体。任何小数部分都被删除。但是,如果任何一个表达式是

Null,则

result

Null。如果一个表达式是

Empty,则作为0

处理。


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

原文地址: http://outofmemory.cn/yw/12541939.html

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

发表评论

登录后才能评论

评论列表(0条)

保存