问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用vb编写科学计算器

发布网友 发布时间:2022-04-29 22:47

我来回答

5个回答

热心网友 时间:2022-06-24 23:22

呵呵,windows下的那个好像不是科学型的吧,所以楼上大哥直接调用calc.exe就不符合要求了。
我也不懂vb,但是我想把我的思路说一下你看对你有没有用。(代码我写不了)
菜单用菜单编辑器(ctrl+e),不知道你的菜单里想要啥功能,最后一个“帮助”可能是想显示一个使用手册吧,是的话有很多方法,比如新建一个窗体,窗体上加一个文本框或者标签之类的和一个按钮,并把文本框的text或标签的caption改成你想写的帮助内容,在“帮助”菜单的单击事件下写form2.show。按钮的单击事件下写unlod me。
(form中写
Private Sub 帮助_Click()
Form2.Show

form2中写
Private Sub Command1_Click()
Unload Me
End Sub
)各个窗体和控件的属性看着这改改

下面该写计算部分了
首先你需要确定你的计算器能算几步(最多几个运算符),一般70步就行了吧,定义一个数组“运算符(70)”整型的就行了,让他记录每一个输入的运算符(比如把所有的运算符编号,“+”记录1,“-”记录2,“(”记成3 ,“)”记成4。。。也就几十种吧)(不要考虑内存问题了,现在的电脑再垃圾的代码也能运行)
计算时先查出所有括号,直接把优先级放到括号内,然后查“运算符(i)”,用循环语句,从优先级低的开始算(这样计算出来就会反过来从高到低),然后再检查括号(因为括号要两个符号,而且可以重复,所以要把检查括号跟检查其他运算符分开讨论)这样就成为单步计算的问题了,应该很简单吧?
具体的计算方法就是
定义 Sub 检查运算符( 字符串)
如果出现超过某限值的运算附代码,则直接运算之
‘ 比如出现sin之类的或者^之类的
检查现有的最低级别的运算符,记录其代号‘如:运算符(2)
检查运算符后的字符串,分别赋值为字符串a,字符串b
如果a(或b)中没有运算符则i(或f)为1.否则为0
‘ a、b、c、都是动态的
‘a(或b)就是a检查一下,b检查一下
‘ 嫌麻烦以后就这样写了
End Sub

再定义个 Sub 单步计算(字符串a,字符串b,运算符代号,i,f)
如果运算符代号超过某
则 运算符(Call检查字符串(字符串b))
如果运算符为 某
如果i(或f)=0 ‘ 不能这样写,理解意思即可
那么 Call 检查字符串(a)运算符 Call检查字符串b
否则,~~ ‘无运算符的就不用调用“检查字符串”了
‘ 嵌套一下
‘呵呵,就这样写了,理解意思即可
或者分别写出各个运算(加、减、乘、除)然后调用,sin,
统计计算部分就简单了,定义一个数组,分别记录数据,求平均就
for,,,a = 数组(i)+ a
求什么就for什么

进制转换部分写在单选钮的事件下(为了简单你可以要求转换时文本框中必须是“数字”),具体转换过程你如果知道怎么手算的话应该就能写出来
唉,写了这么多才发现我的思路漏洞百出,算了。。。

最后再说一句vb界面直接画就可以了,不用自己建立模块

热心网友 时间:2022-06-24 23:22

如果是C语言的话还能自己写。VB就只能上网搜了,还真别说,搜到一大堆!
http://www.google.cn/search?client=aff-cs-360se&forid=1&ie=utf-8&oe=UTF-8&q=%E8%AE%A1%E7%AE%97%E5%99%A8VB

热心网友 时间:2022-06-24 23:23

最简单的计算器

Option Explicit

Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Const MAX_LEN = 200 '字符串最大长度

Private Sub Form_Load()
Dim WinPathLen As Long
Dim sTmp As String * MAX_LEN
WinPathLen = GetWindowsDirectory(sTmp, MAX_LEN)
Dim winPath As String
winPath = Left(sTmp, WinPathLen)
Shell winPath & "\system32\calc.exe", vbNormalFocus
End

End Sub

热心网友 时间:2022-06-24 23:23

Dim X As Double, Y As Double
Dim op As String
Private Sub Command1_Click(Index As Integer)
Select Case Index
Case 0
X = Val(Text1): Text1 = Sin(X * 3.1415926 / 180)
Case 1
X = Val(Text1): Text1 = 1 / Cos(X)
Case 2
X = Val(Text1): Text1 = Sin(X) * 180 / 3.1415926

Case 3
X = Val(Text1): Text1 = Atn(X) + 2 * Atn(1)
Case 5
X = Val(Text1): Text1 = Cos(X * 3.1415926 / 180)
Case 6
X = Val(Text1): Text1 = 1 / Sin(X)
Case 7
X = Val(Text1): Text1 = Cos(X) * 180 / 3.1415926
Case 8
X = Val(Text1)
If X <= 0 Then
Text1 = "负数或零的对数无意义"
Else
Text1 = Log(X)
End If
Case 10
X = Val(Text1): Text1 = Tan(X * 3.1415926 / 180)
Case 11
X = Val(Text1): Text1 = 1 / Tan(X)
Case 12
X = Val(Text1): Text1 = Atn(X) * 180 / 3.1415926

Case 13
X = Val(Text1)
If X <= 0 Then
Text1 = "负数或零的对数无意义"
Else
Text1 = Log(X) / Log(10)
End If
Case 14
X = Val(Text1)
If X <= 0 Then
X = Val(Text1): Text1 = Abs(X)

Else
X = Val(Text1): Text1 = Text1.Text

End If

End Select
End Sub

Private Sub Command2_Click(Index As Integer)
Select Case Index
Case 0 To 9
Text1.Text = Text1 & Command2(Index).Caption

Case 11
If InStr(Text1, ".") = 0 Then
Text1.Text = Text1 & Command2(Index).Caption
ElseIf Right(Text1, 1) = "." Then
Text1.Text = Text1 & ""
End If
Case 12
If InStr(Text1, "-") = 0 Then
Text1.Text = Text1 & Command2(Index).Caption
ElseIf Right(Text1, 1) = "-" Then
Text1.Text = Text1 & ""
End If
End Select

End Sub

Private Sub Command3_Click(Index As Integer)
Select Case Index
Case 0 To 6
X = Val(Text1)

If Index = 0 Then op = "+"
If Index = 1 Then op = "-"
If Index = 2 Then op = "*"
If Index = 3 Then op = "/"
If Index = 4 Then op = "^"
If Index = 5 Then op = "("
If Index = 6 Then op = ")"
Text1 = ""
End Select
End Sub

Private Sub Command4_Click()
If Len(Text1) <> 0 Then
Text1 = Left(Text1, Len(Text1) - 1)
End If
End Sub

Private Sub Command5_Click()
Text1 = ""
X = 0: Y = 0
End Sub

Private Sub Command6_Click()
Y = Val(Text1)
'Text1 = ""
If op = "^" Then Text1 = X ^ Y
If op = "+" Then Text1 = X + Y
If op = "-" Then Text1 = X - Y
If op = "*" Then Text1 = X * Y
If op = "/" Then
If Y <> 0 Then
Text1 = X / Y
Else
Text1 = "除数不能为零"
End If
End If

End Sub

Private Sub Form_Load()

End Sub

热心网友 时间:2022-06-24 23:24

只供参考:
Dim v As Boolean
Dim s As Integer
Dim X As Double
Dim Y As Double
Private Sub Command1_Click(Index As Integer)
If Form1.Tag = "s" Then

If Index = 10 Then
Text1.Text = "0."
Else
Text1.Text = Command1(Index).Caption
End If
Form1.Tag = ""
Else
Text1.Text = Text1.Text & Command1(Index).Caption
End If

End Sub

Private Sub Command2_Click(Index As Integer)

Form1.Tag = "s"

If v Then
X = Val(Text1.Text)
v = Not v

Else
Y = Val(Text1.Text)
Select Case s
Case 0
Text1.Text = X + Y
Case 1
Text1.Text = X - Y
Case 2
Text1.Text = X * Y
Case 3
If Y <> 0 Then
Text1.Text = X / Y
Else
MsgBox ("不能以0为除数")
Text1.Text = X
v = False
End If
Case 4
Y = 0
v = False
End Select
X = Val(Text1.Text)
End If
s = Index

End Sub

Private Sub Command4_Click()
Text1.Text = ""

End Sub

Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)

End Sub
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...△=口+口+口,问△、o、口谁大谁小,小学一年级数学期末附加题_百度知 ... 一年级数学△ +△ +〇 +〇 +〇=27,△ +△+ 〇 +〇+ △ +△=22问△=... 上海南浦大桥长途客运中心到虹桥机场第二航站楼怎么走? 上海浦东国际机场2号航站到上海长途汽车客运总站,最快怎么走,用时多少... 从上海长途汽车客运总站到虹桥机场2号航站楼 木头爱上烈火简介 省直遴选面向哪些群体? 义务教育阶段的学生有什么权利和义务? ngclz型带制动轮鼓形齿式联轴器内容简介 GⅡCL型基本型(窄型)鼓形齿式联轴器基本参数 怎样用vb编写一个加法计算器 怎样用vb编程一部简单的计算器呢? 如何用vb编写简单计算器 用VB编写一个简易的计算器? 智能手表锁屏后,在点亮触屏失效怎么办? 三星手表gear s2开机触摸屏没有反应怎么办 昨天收到的e度智能手表触屏失灵不能关机怎么办 智能手表触屏卡住了怎么办 wearfitpro智能手表屏幕怎么不动 为什么身体总是觉得很热,手心也很热,请问怎么回事 身体发热怎么办应该吃点什么东西 身体发热很烫怎么办 身体发热该怎么办 软文推广有哪些 身体发热怎么办 身体长期发热怎么办 主机号码把副号办呼叫转移主机可以看到来电号码吗? 固话呼叫转移是否显示来电号码 没有来电显示的固定电话呼叫转移到手机上,会显示电话号码吗 手机呼叫转移后打别人电话显示的是我的手机号码还是我转移的电话号码? 用VB制作计算器 如何用vb制作计算器(只要有加减乘除,三个文本框)? VB编写的计算器 用VB做计算器~ 用VB做一个计算器!!谢谢 用VB设计一个计算器 韩束氨基酸洗面奶怎么样? 我微信登录爱奇艺显示是新设备怎么办,几个小时前还正常,现在会员登不上去了? 韩束墨菊深度保湿氨基酸洁面乳 怎么样 韩束洗面奶好用吗? 韩束洗面奶怎么样?? 农行手机银行-能进行电子式国债的购买吗? 韩束护肤品怎么样 韩束洗面奶怎么样 微信为什么登录不了爱奇艺? 农业银行网上银行可以做(电子式)国债交易吗,需要办理哪些手续? 为什么爱奇艺微信登录不了还要扫码和短信? kans深海双萃清润卸妆水是洗面奶吗 农业银行可以网上购买电子式国债吗? 华为手机首次用要怎么充电?