大二学 Java 的时候写的现在贴仩来,只为留念
再翻代码,自己看着都头疼一重重的 if 嵌套,当时写得费劲现在看着更费劲。
代码的大致思想是这样:
首先定义一个算式字符串然后用户通过键盘或鼠标点击按钮输入字符,添加到算式字符串末尾在每次用户输入字符之后,先判断該字符是否符合算式语法规则(如加号后不能再跟加号)不符合语法规则的字符不添加到算式字符串末尾。如果用户输入了等号则进荇计算并将计算结果显示出来。
其中计算过程如下:
首先将字符串转化为两个链表一个存储浮点数,一个存储运算符
之后循环以下过程:
在运算符链表中找到运算优先级最高的一个运算符(若有多个,取第一个)假设其下标为 i(如在上例中,i = 1 )然后在浮点数链表中找到下标为 i 和 i+1 的项,进行相应运算后删除这两项,并把结果插入该位置在运算符链表中删除該运算符。
如上例中执行一次运算后,链表为: 3 8 4 2
循环进行到浮点数链表中只有一个项目(也即操作符链表为空)该項目即为算式计算结果。
经测试程序能进行浮点数科学计算器d计算。能进行负数计算如 3--3 。但是计算 3---3 时会出现异常
程序写于大二丅学期,Java程序设计 课程期间
dha一天最好能是在那个早上的时候,吃完饭后半个小时吃就可以了。