主题:跪求VB科学计算器
Rebellion
[专家分:0] 发布于 2009-12-02 10:21:00
能+ - * /
能开方,平方,求正弦,求余弦,正切,余切
要求源代码和界面画面,或者可直接运行的exe
急啊~!!!!
谢谢哪位高人啊!!!!!!!!
回复列表 (共7个回复)
沙发
tanchuhan [专家分:15140] 发布于 2009-12-02 11:20:00
windows不是有个吗,做得很好呀.
板凳
老大徒伤悲 [专家分:29120] 发布于 2009-12-03 08:59:00
好吧,我来发一个。不过部分控件属性不是代码设置的,自己设;还有控件数组的配置,也自己配。
有开方。没有平方,考虑自乘就可以代替。
代码如下:
Option Explicit
Const PI = 3.14159265
Dim 弧度制 As Boolean
Dim 新数据 As Boolean
Dim 被运算数 As Double '第一个操作数
Dim 运算数 As Double '第二个操作数
Dim 当前运算符 As Integer '仅四则运算记录,函数不记录
Private Sub Command1_Click(Index As Integer) '数字键
If 新数据 Then
If Index <> 0 Then
Text1 = CStr(Index)
新数据 = False
End If
ElseIf Len(Text1) > 16 Then
Beep '报警二声
Beep
Exit Sub
Else
Text1 = Text1 & CStr(Index) '追加数据
End If
End Sub
Private Sub Command2_Click() '小数点
If Len(Text1.Text) > 16 Or InStr(Text1, ".") > 0 Then
Beep '报警二声
Beep
Exit Sub
End If
If 新数据 Then '以小数点开始前头补零
Text1 = "0."
新数据 = False
Else
Text1 = Text1 & "."
End If
End Sub
Private Sub Command3_Click() '清除
初始化
End Sub
Private Sub Command4_Click() '关机
End
End Sub
Private Sub Command5_Click(Index As Integer) '四则运算按钮
被运算数 = Val(Text1)
当前运算符 = Index
新数据 = True
End Sub
Private Sub Command6_Click() '执行计算
On Error GoTo 溢出了
运算数 = Val(Text1)
新数据 = True
Select Case 当前运算符
Case 0 '加法
Text1 = 被运算数 + 运算数
Case 1 '减法
Text1 = 被运算数 - 运算数
Case 2 '乘法
Text1 = 被运算数 * 运算数
Case 3 '除法
If 运算数 = 0 Then '除数为零的处理
Text1.Text = "除数为零!"
Beep
Beep
Else
Text1 = 被运算数 / 运算数
End If
End Select
Exit Sub
溢出了:
Beep
Beep
Text1 = "溢出了!"
End Sub
待续…………
3 楼
老大徒伤悲 [专家分:29120] 发布于 2009-12-03 08:59:00
续…………
Private Sub Command7_Click(Index As Integer) '立即对当前显示数据进行函数运算
运算数 = Val(Text1)
新数据 = True
Select Case Index
Case 0 '指数运算
On Error GoTo 溢出了
Text1 = Exp(运算数)
Case 1 '自然对数
On Error GoTo 真数非正
Text1 = Log(运算数)
Case 2 '常用对数
On Error GoTo 真数非正
Text1 = Log(运算数) / Log(10)
Case 3 '平方根
On Error GoTo 底数为负
Text1 = Sqr(运算数)
Case 4 '倒数
On Error GoTo 除数为零
Text1 = 1 / 运算数
Case 5 '阶乘
If 运算数 < 1 Then
Text1 = "阶乘的自变量不可以小于1!"
Else
On Error GoTo 溢出了
Dim 结果 As Long
Dim i As Integer
结果 = 1
For i = 1 To 运算数
结果 = 结果 * i
Next i
Text1 = 结果
End If
End Select
Exit Sub
溢出了:
Beep
Beep
Text1 = "溢出了!"
Exit Sub
真数非正:
Beep
Beep
Text1 = "真数不应该为小雨或等于0!"
Exit Sub
除数为零:
Beep
Beep
Text1 = "零不能做分母!"
Exit Sub
底数为负:
Beep
Beep
Text1 = "平方根的底数不能为负!"
End Sub
Private Sub Command8_Click(Index As Integer)
运算数 = Val(Text1)
新数据 = True
If Not 弧度制 Then 运算数 = 运算数 / 180 * PI
Select Case Index
Case 0 '正弦函数
Text1 = Sin(运算数)
Case 1 '余弦函数
Text1 = Cos(运算数)
Case 2 '正切函数
On Error GoTo 溢出了
Text1 = Tan(运算数)
End Select
Exit Sub
溢出了:
Beep
Beep
Text1 = "溢出了!"
End Sub
Private Sub Command9_Click(Index As Integer)
运算数 = Val(Text1)
新数据 = True
Select Case Index
Case 0 '反正弦函数
If Abs(运算数) > 1 Then
GoTo 定义域
ElseIf 运算数 = 1 Then
Text1 = PI / 2
ElseIf 运算数 = -1 Then
Text1 = -PI / 2
Else
Text1 = Atn(运算数 / Sqr(-运算数 * 运算数 + 1))
End If
Case 1 '反余弦函数
If Abs(运算数) > 1 Then
GoTo 定义域
ElseIf 运算数 = 1 Then
Text1 = 0
ElseIf 运算数 = -1 Then
Text1 = PI
Else
Text1 = Atn(-运算数 / Sqr(-运算数 * 运算数 + 1)) + 2 * Atn(1)
End If
Case 2 '反正切函数
Text1 = Atn(被运算数)
End Select
If Not 弧度制 Then Text1 = Val(Text1) / PI * 180
Exit Sub
定义域:
Beep
Beep
Text1 = "超出了定义域!"
End Sub
Private Sub Form_Load()
初始化
End Sub
Private Sub Option1_Click()
弧度制 = False
Option1.Enabled = False
Option2.Enabled = True
Text1 = Val(Text1) / PI * 180
End Sub
Private Sub Option2_Click()
弧度制 = True
Option1.Enabled = True
Option2.Enabled = False
Text1 = Val(Text1) * PI / 180
End Sub
Private Sub 初始化()
被运算数 = 0 '第一个操作数初值为0
运算数 = 0 '第地个操作数初值为0
当前运算符 = -1
Text1.Text = "0"
新数据 = True
弧度制 = False
Option1.Enabled = False
Option2.Enabled = True
end sub
4 楼
天天学习 [专家分:4570] 发布于 2009-12-03 10:34:00
老大 切换输入法辛苦了。
5 楼
Rebellion [专家分:0] 发布于 2009-12-03 21:01:00
谢谢!那怎么对键盘?我试了好久没法了
6 楼
merry05 [专家分:8920] 发布于 2009-12-04 00:36:00
年复一年,各位大佬们仍在这里诲人不倦
吾等小辈实属汗颜
7 楼
老大徒伤悲 [专家分:29120] 发布于 2009-12-04 16:48:00
[quote]老大 切换输入法辛苦了。[/quote]
嘿嘿,我编程时候标识符基本都是汉语,怕英语吧自己搞糊涂了【因为英语水平在86年的高考中只有19分,基本都是选择题蒙来,别的题可能就没有得分】。
实际上切换输入法也就是一个上档键(我用的是搜狗)。
我来回复