【在VB中计算器的代码(要求0到9的加减乘除运算)只要0到9-查字典问答网
分类选择

来自何声亮的问题

  【在VB中计算器的代码(要求0到9的加减乘除运算)只要0到9的加减乘除还有等于号其他都不需要】

  在VB中计算器的代码(要求0到9的加减乘除运算)

  只要0到9的加减乘除还有等于号其他都不需要

1回答
2020-04-16 19:40
我要回答
请先登录
李沛琼

  DimNum1AsDouble

  DimNum2AsDouble

  DimEqualAsDouble

  DimMAsDouble

  DimEqual2AsInteger

  DimStrNum1AsString

  DimStrNum2AsString

  DimFirstPointAsBoolean

  DimFirstNumAsBoolean

  PrivateSubCommand1_Click(IndexAsInteger)'数字输入

  SelectCaseIndex

  Case0To9

  StrNum1=LTrim(StrNum1)+LTrim(Str(Index))

  DoWhileLeft(LTrim(StrNum1),1)="0"'去掉高位数字0

  StrNum1=Mid(StrNum1,2)

  Loop

  IfLeft(LTrim(StrNum1),1)="."ThenStrNum1="0"+LTrim(StrNum1)

  Text1.Text=StrNum1'数字显示

  Case10

  IfFirstPointThen'小数点的输入

  StrNum1=LTrim(StrNum1)+LTrim(".")

  DoWhileLeft(LTrim(StrNum1),1)="0"'去掉高位数字0

  StrNum1=Mid(StrNum1,2)

  Loop

  IfLeft(LTrim(StrNum1),1)="."ThenStrNum1="0"+LTrim(StrNum1)

  Text1.Text=StrNum1'数字显示

  FirstPoint=False

  Text1.Text=StrNum1

  EndIf

  Case11

  StrNum1=Text1.Text'退格

  IfLen(StrNum1)>0Then

  StrNum1=Left(StrNum1,Len(StrNum1)-1)'每一次退格,从字符串后面去掉一个字符

  Text1.Text=StrNum1

  Else

  Text1.Text="0.0"

  EndIf

  IfInStr(StrNum1,".")=0ThenFirstPoint=True'若字符串中没有小数点,把小数点开关打开

  Case12'清零

  StrNum1=""

  StrNum2=""

  Text1.Text="0.0"

  aa=""

  Equal=0

  Num1=0

  Num2=0

  FirstPoint=True'小数点开关

  FirstNum=True'第一个数开关

  Case13'正负符号

  IfVal(StrNum1)>0Then

  StrNum1="-"+LTrim(StrNum1)

  Else

  StrNum1=Abs(Val(StrNum1))

  EndIf

  Text1.Text=StrNum1

  Case14'电源开关

  End

  EndSelect

  EndSub

  PrivateSubCommand2_Click(IndexAsInteger)'+-*/运算

  Equal2=Index'=号开关

  IfFirstNumThen'存第一个数,其中FirstNum为开关

  StrNum2=StrNum1

  StrNum1=""

  FirstNum=False

  FirstPoint=True'小数点开,以便输入第二个数

  Else'若不是第一个数进入下面的+-*/运算

  SelectCaseIndex

  Case0'0为加法

  Num1=Val(StrNum2)'Num1存第一个数

  Num2=Val(StrNum1)'Num2存第二个数

  Equal=Num1+Num2'Equal存结果

  StrNum2=Str(Equal)'StrNum2返回结果,以便下次让Num1存结果

  StrNum1=""'StrNum1清空,以便下次数字输入

  aa=Str(Equal)

  IfLeft(LTrim(aa),1)="-"AndLeft(LTrim(aa),2)="-."Thenaa="-0"+LTrim(Abs(Equal))

  IfLeft(LTrim(aa),1)="."Thenaa="0"+LTrim(aa)

  Text1.Text=aa'显示结果

  FirstPoint=True'小数点开

  Case1'1为减法

  Num1=Val(StrNum2)

  Num2=Val(StrNum1)

  Equal=Num1-Num2

  StrNum2=Str(Equal)

  StrNum1=""

  aa=Str(Equal)

  IfLeft(LTrim(aa),1)="-"AndLeft(LTrim(aa),2)="-."Thenaa="-0"+LTrim(Abs(Equal))

  IfLeft(LTrim(aa),1)="."Thenaa="0"+LTrim(aa)

  Text1.Text=aa

  FirstPoint=True

  Case2'为乖法

  Num1=Val(StrNum2)

  IfStrNum1=""Then'便于+-*/之间切换

  Num2=1

  Else

  Num2=Val(StrNum1)

  EndIf

  Equal=Num1*Num2

  StrNum2=Str(Equal)

2020-04-16 19:42:19

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •