求实现一种特殊的四则计算器

kkkgho 2008-03-20 08:41:03
我用弄成二个文本框,一个显示答案,一个做计算
只有一个计算按钮,没有加减乘除按钮,然后在文本框1输入例如:
2389+2+8*10/2-200点击计算,就可以在文本框2输出结果
如何做到呢(效果图如下)

麻烦各位大虾了,一定要是这样的计算方式哦
...全文
629 点赞 收藏 43
写回复
43 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
可西哥 2008-04-17
回复
sea_zzh 2008-03-25
判断运算符号啊和数字位数,用字符串函数,简单
回复
caprason 2008-03-24
LZ是牛人!
回复
oykur 2008-03-24
刚好写过一个模仿windows计算器的咚咚,讨论贴在这里:
http://topic.csdn.net/u/20070828/02/48a980b0-2a22-4eb5-b34a-f0ba55bb2250.html

我没有调用任何部件,用栈的数据结构即可完成。写成的成品在这里,vb绿色软件,有兴趣可以去下个,没毒的,在华军和硅谷动力都有:
http://download.enet.com.cn/html/033432007101201.html

回复
ScorpioLibra 2008-03-24
还是自己写解析式吧,有助于练手。
回复
Tiger_Zhao 2008-03-24
24 楼的只能在 VB-IDE 中运行的,这种鸡肋就不要拿出来现了。

To 6楼:用 Script Control 可以添加自定义函数的,如下方式就可以在表达式中使用函数 Max
Option Explicit

Private Sub Command1_Click()
Text2.Text = ScriptControl1.Eval(Trim(Text1.Text))
End Sub

Private Sub Form_Load()
ScriptControl1.AddCode _
"Function Max(v1, v2)" & vbCrLf & _
" If v1>=v2 Then" & vbCrLf & _
" Max = V1" & vbCrLf & _
" Else" & vbCrLf & _
" Max = V2" & vbCrLf & _
" End If" & vbCrLf & _
"End Function"
End Sub
回复
luojj02 2008-03-23
好复杂啊!
回复
mufy 2008-03-23
长知识了,谢谢
回复
netluck 2008-03-23
用栈再将符号分级是计算器的做法吧,以前在哪本书上见过
回复
fengsky491 2008-03-22
唉,忍不住就-_-了。
回复
vxinfo 2008-03-21
回帖是一种美德!传说每天回帖即可获得 10 分可用分!
回复
qiu5208 2008-03-21
很强,很牛。
回复
of123 2008-03-21
哈哈哈,楼主够棒的。
回复
tzwsoho 2008-03-21
仅仅想mark一下~~~~~~~
回复
Jorge-Merodio 2008-03-21
数据结构里栈那章的题目
回复
nixnybf69 2008-03-21
[Quote=引用 16 楼 kkkgho 的回复:]
jennyvenus 兄,你的200-10+10应该还是200,/2后是100,结果却是195
[/Quote]

我彻底晕倒!!
回复
zzyong00 2008-03-20
把我看傻了,倒不是因为楼上几位的代码
回复
forbearORfolie 2008-03-20
我来抢0.5分就可以了
回复
cbm6666 2008-03-20
呵呵...可能你分不够吧.

jennyvenus 同志代码很不错,你就把分给他吧,给我1分即可.
回复
cbm6666 2008-03-20
Attn: 20F

哈哈, 那我就来个有点点点........技术含量的代码

Option Explicit
Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long
Dim result
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then Command1_Click
End Sub

Private Sub Command1_Click()
Call calc(Text1)
End Sub

Sub calc(ByVal textstr As String)
ExecuteLine "Dim X As Long, Y As Long"
ExecuteLine "textstr= " & textstr
ExecuteLine "clipboard.settext textstr"
result = Clipboard.GetText
Text2.Text = "结果为:" & result
Set result = Nothing
End Sub

Public Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
End Function

回复
加载更多回复
相关推荐
发帖
VB基础类
创建于2007-09-28

7491

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2008-03-20 08:41
社区公告
暂无公告