救命!求WINDOWS简易计算器VB代码!

herokof2561996 2008-06-10 11:44:41
救命!求WINDOWS简易计算器VB代码!
这是老师布置的作业,教都未教好就要我们做,
求各位高手拔刀相助,救救小弟!
我绝不是一个不听课而靠网友打救的人!
我有心学好VB!
...全文
718 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuyanhe 2008-06-12
  • 打赏
  • 举报
回复
这个网上应该很多的
  • 打赏
  • 举报
回复
我写了一个工程计算器。
lhyhb 2008-06-11
  • 打赏
  • 举报
回复
做统计时编了一个统计计算器,要我可发给你,很简单的
lan563 2008-06-11
  • 打赏
  • 举报
回复
哈~又是迟来的老马
波导终结者 2008-06-11
  • 打赏
  • 举报
回复
作业题又要锁了
of123 2008-06-11
  • 打赏
  • 举报
回复
Dim s

If Text1 = "" Then Exit Sub
On Error GoTo errHandler

Set s = CreateObject("ScriptControl")
s.Language = "VBScript"
Text1 = s.Eval(Text1)
Set s = Nothing
flag = True
Exit Sub
errHandler: Text1 = "E"
yuewei1231 2008-06-11
  • 打赏
  • 举报
回复
下载频道搜索个就行了
嗷嗷叫的老马 2008-06-11
  • 打赏
  • 举报
回复
K,我就准备转那个来着......被抢先了~~~~~~
lan563 2008-06-11
  • 打赏
  • 举报
回复
转自http://topic.csdn.net/u/20080529/00/573e70c3-e6c5-43be-86da-8654e8fb841b.html

194楼~张郎

'standard project 
'all in module
Option Explicit

Private Function Eval(ByVal s As String) As Variant
Dim Lb As Long, Rb As Long
Lb = InStrRev(s, "(")
While Lb <> 0
Rb = InStr(Lb, s, ")")
s = Replace(s, Mid$(s, Lb, Rb - Lb + 1), CStr(Eval(Mid$(s, Lb + 1, Rb - Lb - 1))))
Lb = InStrRev(s, "(")
Wend
If IsNumeric(s) Then
Eval = Val(s)
Else
Dim High As Long
High = InStr(s, "+")
If High <> 0 Then
Eval = Eval(Left$(s, High - 1)) + Eval(Right$(s, Len(s) - High))
Exit Function
End If
High = InStrRev(s, "-")
If High <> 0 Then
Eval = Eval(Left$(s, High - 1)) - Eval(Right$(s, Len(s) - High))
Exit Function
End If
High = InStr(s, "*")
If High <> 0 Then
Eval = Eval(Left$(s, High - 1)) * Eval(Right$(s, Len(s) - High))
Exit Function
End If
High = InStrRev(s, "/")
If High <> 0 Then
Eval = Eval(Left$(s, High - 1)) / Eval(Right$(s, Len(s) - High))
Exit Function
End If
High = InStrRev(s, "%")
If High <> 0 Then
Eval = Eval(Left$(s, High - 1)) Mod Eval(Right$(s, Len(s) - High))
Exit Function
End If
High = InStrRev(s, "!=")
If High <> 0 Then
Eval = Eval(Left$(s, High - 1)) <> Eval(Right$(s, Len(s) - High - 1))
Exit Function
End If
High = InStrRev(s, "==")
If High <> 0 Then
Eval = (Eval(Left$(s, High - 1)) = Eval(Right$(s, Len(s) - High - 1)))
Exit Function
End If
End If
End Function

'主函数
Public Sub main()
Dim Expression As String
Expression = "149.5+((100+(6+(90-5*2*2)*4+(1-1))+202)%441)*2*2+0.88+150.5"
MsgBox Eval(Expression)
End Sub
lan563 2008-06-10
  • 打赏
  • 举报
回复
你这个问题~基本有看过一下书应该都能做出来吧`~~


先看下书吧~兄台~

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧