请教各位高手:关于计算器功能实现的问题

mike689689 2005-08-30 06:08:03
我现在想要做一个这样的计算器:在一个listbox控件里面放着一些函数如:“如果{条件}则{}否则{}”;“求平方根(表达式)”,一些button按钮,上面平时使用的1、2、3、4、5、6、7、8、9和加减乘除外还有一些逻辑运算符:and,or,not和比较运算符=>,=<,<>
请问:整个运算过程都显示在一textbox中,如何实现运算过程?而且把结果保存到一个变量中?
...全文
194 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
mike689689 2005-09-28
  • 打赏
  • 举报
回复
俺已经搞定了,不过我的是在日语系统下开发的,可能你看汉字都是乱码
mike689689 2005-09-21
  • 打赏
  • 举报
回复
郁闷,前几天要交货的时候才发现有些例外情况不能处理,正在修改中……
该好了再发给你
youandme520 2005-09-13
  • 打赏
  • 举报
回复
打错了 是 youandmeyy@163.com 发一个给我谢谢 让我学习一下
youandme520 2005-09-13
  • 打赏
  • 举报
回复
youandmeyy@153.com 我要
谢谢学习一下
mike689689 2005-09-13
  • 打赏
  • 举报
回复
感谢各位网友的提点!
本人经过不懈努力,再加上各位网友的提点后终于做出来了一个算法编译器!

如果哪位感兴趣,可以留下邮箱,我可以发给我,然后一起讨论,看看如何在改进、优化
mike689689 2005-09-06
  • 打赏
  • 举报
回复
感谢各位出谋划策的朋友
可是到现在还是没有人能帮我解答……
搞不定,郁闷……
chenqiu1024 2005-09-05
  • 打赏
  • 举报
回复
这样的话“则”这样一个运算符号的含义就是计算其前面操作数(是一个逻辑表达式)的值,为真则计算后面的操作数。我做表达式运算是把运算符号作为一个运算符号类的对象存储进栈里的,这样提高了通用性,增添某种运算符号时只需要派生出来一个类就可以了。对于这种逻辑操作这种方法可能会有用。
不过我还有一个问题:如果{}则{}否则{}这已经是一个完整的句子了,不可能再在前面或后面添加其它的表达式比如四则运算式了,而只能这一句话就是一行。既然这样干嘛非要用与四则运算表达式相同的处理方式来对待它呢?单独想办法对待好了,干嘛把“如果”“则”还当成运算对象压栈呢?
chenqiu1024 2005-09-05
  • 打赏
  • 举报
回复
像只有一般的运算符的是可以用堆栈按照波兰表达式的求法来计算。可是有“如果”、“否则”这样的表达式不能再按同样的方式做了吧? 那可能需要把“运算符”和“操作数”的概念推广一下了:把“如果”后的条件表达式看作一个操作数,“则”和“否则”看作运算符号,“则”和“否则”后面的赋值表达式看作操作数。具体怎么做我也不大懂,没系统地学过编译原理。楼主去查阅一下编译原理方面的书吧。
mike689689 2005-09-05
  • 打赏
  • 举报
回复
感谢各位的帮忙
字符串解析我已经可以做了,现在的问题是我把解析后的字符串放入两个栈中,不知道如何弹栈,进行递归运算,比如textbox的式子是:如果{基本工资<1200}则{基本工资*5%}否则{基本工资*10%}
注:工资为一整数常量
我已经把“如果{”、“}”、“<”、“则{”、“*”、“}”、“否则{”、“*”、“}”放入一个栈中;“基本工资”、“1200”、“基本工资”、“5%”、“基本工资”、“10%”放入另一个栈中,优先级跟平常我们一样,我知道进行运算的原理是进行递归,可是具体代码是怎么实现呢?请各位高手赐教
还想懒够 2005-09-02
  • 打赏
  • 举报
回复
需要利用字符串解析,然后根据条件进行计算

也是类似于金脚指老兄的说法,就是一个简单的编译器。


曾经在CodeProject里面见过类似的VC代码,没找到。帮你顶一下。
mike689689 2005-09-02
  • 打赏
  • 举报
回复
原理应该是这样,但是我还是做不出来,哪位大虾能不能给出代码我看看,麻烦各位了
fishmans 2005-09-01
  • 打赏
  • 举报
回复
这相当于一个编译器了
你得判断关键字如“如果”,“和”等等并限制其出现的位置,次数等等规则
想多了就复杂了
province_ 2005-09-01
  • 打赏
  • 举报
回复
行解释啊,基本思路和做四则运算差不多,只是关键词多了“如果”“则“”否则“还要有逻辑判断的代码,还要加上普通的+-*/的运算,需要递归。
mike689689 2005-09-01
  • 打赏
  • 举报
回复
这个是有些难度,所以才来这里请教各位高手,劳烦哪位能高手给我解答,最好附上代码,谢谢
threenewbee 2005-08-31
  • 打赏
  • 举报
回复
http://dev.csdn.net/article/26/26383.shtm
利用API 实现字符串表达式的计算
mike689689 2005-08-31
  • 打赏
  • 举报
回复
感谢两位,但是你们只是讲了四则运算的算法
如果我有这样一窜数据在textbox里:如果{1200<基本工资}则{(基本工资-1200)*5%}否则{}
怎样写这个程序,而且使“(基本工资-1200)*5%”保存在一变量i中
注:基本工资为一常量数值。
mike689689 2005-08-31
  • 打赏
  • 举报
回复
其实是检索到“如果{”和“}”就把其中的数据传到程序中,拿上面的例子说就是把“1200<基本工资”传到程序中的if()里,变成if(1200<基本工资)检索到"则{"和“}”就把其中的数据传到then后。最后在程序里的实现是:if(1200<基本工资)then(基本工资-1200)*5%
就是这样该怎么实现?
wwh999 2005-08-31
  • 打赏
  • 举报
回复
楼主好像超出了计算器讨论的范围了吧,汉字表达式用来搞计算器。

大家伙见过啥流行的用汉字编程的么?

代码如下:呵呵!

如果 搞编程有搞头
那么就搞
不然
就转行了。
结束
mike689689 2005-08-31
  • 打赏
  • 举报
回复
……
这个我还是会的,这里面主要是字符串的索引问题,在vb里面怎么做字符串的索引和索引位置的确定呢?
amanloveyou 2005-08-31
  • 打赏
  • 举报
回复
dim gz cl jg
cl=1200
if gz>cl then
jg=(gz-cl)*5%
endif
i=jg
加载更多回复(2)

1,451

社区成员

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

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