主题:十万火急,请帮下我好吗
cbqcbq2004
[专家分:0] 发布于 2006-04-09 19:39:00
[em8]好人啊,能帮我编个计算程序吗?非常感谢!!要程序计算出随便输入一个由5个数字组成的式子的结果(结果只需要显示1到50之间的整数)。这个5个数字是人为输入电脑的,都是1到9之间的个位数,而连接这5个数字之间的加减乘除运算符号是随即出现的,未知的,比如这次可以输入:6()9()8()7()5=?计算出结果,下次可以输入:2()3()5()4()1=?进行计算。 真心希望您的帮忙,等待您的好消息!!
联系电话:13694900905 QQ:154430622 邮箱:cbqcbq2004@126.com
回复列表 (共4个回复)
沙发
buzaihui [专家分:290] 发布于 2006-04-09 19:45:00
可以去具体编程论坛区问问,这里是软件创意
板凳
cbqcbq2004 [专家分:0] 发布于 2006-04-09 20:14:00
??????????
3 楼
aaronwang [专家分:16870] 发布于 2006-04-14 19:20:00
要考虑运算符优先级的问题哦.还有个问题,是先输入数字还是电脑先给定符号????
我的想法:
6 () 7 () 8 () 9 () 2 =?
1 2 3 4 5 6 7 8 9 (位)
一个数组结构来存储以每一位的内容:
struct Demo
{
bool IsNummber;//决定这一个是不是数字
int Number;//如果是数字则存储数值
char Operator;//如果不是则存储相应的操作符
int OperatorPrecedence;//决定操作符优先级.可以设为1最高,依次降低.
}
然后根据操作符优先级操作:
如第6位具体有最高优先级,则首先对第5位和第7位进行第六位给定的操作,然后这三位就合并为一位了,再依优先级进行操作.
按楼主给出的算式是不会出现括号的情况,可以只考虑=-*/就可以了.
4 楼
btxdlibin [专家分:2430] 发布于 2006-05-27 08:05:00
'用VB编的 主要添加控件Command1 ,text1, text2 再引用个Microsoft Script Control 1.0
Private Sub Command1_Click()
Dim X As String
Dim n(4) As Integer
Dim s(3) As String
For i = 0 To 4
n(i) = Val(InputBox("请输入第" & i + 1 & "个正整数", "数据输入"))
k = Int(Rnd * 4)
Select Case k
Case 0
s(i) = "+"
Case 1
s(i) = "-"
Case 2
s(i) = "*"
Case 3
s(i) = "/"
End Select
Next i
X = n(0) & s(0) & n(1) & s(1) & n(2) & s(2) & n(3) & s(3) & n(4)
Text1.Text = X
Text2.Text = RESULT(X)
End Sub
Function RESULT(ByVal X As String) As Double
Dim OBJ As Object
Set OBJ = CreateObject("MSScriptControl.ScriptControl")
OBJ.Language = "vbscript"
RESULT = OBJ.Eval(X)
Set OBJ = Nothing
End Function
我来回复