请教用VB编写一个简单计算器的方法

我是新手,想知道一个计算器的大概编程思路,还有计算器设计中小数点和退格的处理方法,谢谢大家了

定义2个公用变量 :变量1 变量2
储存 2个相加减乘除的值,

当按数字键 文本框显示按键 :变量1=按键1的值,
接着按键2时:变量1=变量1& 按键2的值,同时test1.text=变量1,(计算器显示框显示)
以此类推...
当按 加减乘除 4个键任意一个
test1.test=""
保存变量2=当前按键值 ,同时test1.text=变量2,(计算器显示框显示)
接着按其它键时,变量2=变量2& 按键的值,同时test1.text=变量1,(计算器显示框显示)
等于 test1.text=变量1+变量2
退格 :
计算器显示框显示 字符长度减一位 取左边字符,长度为 当前字符长度-1
test1.text=left(test1.text,len(test1.text)-1)
小数点 加 . 字符串相加追问

我在调用Left的时候,它提示说“Public property Left() As Integer”没有任何参数,并且无法对它的返回类型进行索引
另外小数点最多只能有一个,我怎样才能控制它只出现一次?
还有全局变量的声明方法是什么,应该放在什么地方声明?

追答

得到字符串左部指定个数的字符。
语法:LEFT( string, n )   
参数:string 指定要提取子串的字符串。n 指定子串长度返回值String。
说明:函数执行成功时返回string字符串左边n个字符,发生错误时返回空字符串("")。如果任何参数的值为NULL,Left()函数返回NULL。如果n的值大于string字符串的长度,那么Left()函数返回整个string字符串,但并不增加其它字符。
AnyString = "Hello World" '定义字符串.
MyStr = Left(AnyString, 1) '返回 "H"。
MyStr = Left(AnyString, 7) '返回 "Hello W"。
left() 函数不用定义。
变量的定义:如:Public intnum, intnum1, intnum2 As Integer 放在整个代码最上面。
用 instr()
如果 点了一次小数点,则再点不执行语句
if instr(显示框的值,".")>0 then '检测 是否包含 小数点
else
end if

追问

我用的是VB2005,好像语法有些不一样,好吧,小数点的检测如果遇到了Text=“0..”的状况怎么办,比如我现在显示框里已经有了“0.”,这个的值大于0么? 可以检测出来么?
还有就是,检测完之后怎么让它再点不再执行语句?

追答

用 instr() 能检测 是否有 "."
用个判断,如果有 "." 变量就不加 ". " 就可以了,不会出现 0.. 情况,如果有 replace() 过滤下。

追问

我还是不知道怎么让它停止 if instr(显示框的值,".")>0 then 这个后面应该写什么才能让小数点这个按钮点起来没用。。我只会写成
If InStr(Me.Text1.Text, ".") > 0 Then
Me.Text1.Text = "0"
Else
Me.Text1.Text = Me.Text1.Text + "."
Me.Command10.Enabled = False
End If
我只会这样防止那个按钮被点。。。但是这样的话退格的时候又要考虑会不会把小数点退掉,挺麻烦的

追答

If InStr(Me.Text1.Text, ".") =0 Then ' 如果没有小数点。则加,有小数点,这个就不运行。
Me.Text1.Text = Me.Text1.Text + "."
End If

正常情况下,退格 是 从右至左减少字符,点下减一个,包括小数点。

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网