数字键(1-9)、0键、正负转换、小数点、平方开方取倒数、CE、C、退格、加减乘除、等于
数字键(1-9):
按下后屏幕上的字符串多加一个数字字符
如果是按下运算符后第一个数字,则先将屏幕清空,再同上
判断:前面有没有按过运算符,如果按过,前面是否按过其他数字
0键:
按下零键,只要屏幕上不是零,就会在字符串后面加一个零字符
当屏幕上只有一个0时,无论怎么按都是一个零
判断:屏幕上的是不是零
小数点:
如果前面是个零,按下小数点,再按运算符,屏幕上显示零(按运算符同事时,将该数冗余部分去掉,与等号一样)
按下后在字符串后面加一个小数点字符
如果前面已经有小数点,后面不能再输入小数点,直到按下运算符或等号或CE或退格删掉了小数点开始输入下一个数
判断:前面是否按过小数点,按下运算符后,小数点状态应该回到可以按的状态
正负转换:
如果是一个数字加一个小数点,按正负转换后,小数点不消失
如果屏幕上只有零,按此键无变化
如果屏幕上除了另还有别的并且没有负号,按此键在该字符串前面加负号
如果屏幕上有负号,就把负号去掉
判断:按下后只要不是只有零,全部都直接加减负号即可,无需对第一条单独考虑,因此判断屏幕上是否是零;屏幕第一个字符是否是负号
平方:
按下后会对前面的那个数字进行平方运算
当前面已经有另一个加减乘除,按下后对前面的数字进行平方运算后显示平方结果,再按下等于,才显示总结果
当按下一个数字和一个加减乘除,再按下此键,显示第一个数字的平方结果,再按等于,显示总结果
判断:
开方:
1.按下后会对前面的那个数字进行开方运算
2.当前面已经有另一个加减乘除,按下后对前面的数字进行开方运算后显示开方结果,再按下等于,才显示总结果
3.当按下一个数字和一个加减乘除,再按下此键,显示第一个数字的开方结果,再按等于,显示总结果
取倒数:
1.按下后会对最近输入的那个数字进行取倒数运算
2.当前面已经有另一个加减乘除,按下后对前面的数字进行取倒数运算后显示取倒数结果,再按下等于,才显示总结果
3.当按下一个数字和一个加减乘除,再按下此键,显示第一个数字的取倒数结果,再按等于,显示总结果
CE:
按下后会对最近输入的的数清零
无需判断
C:按下后全部归零,全部回到初始状态
无需判断
退格:按下后会删掉屏幕上字符串的最后一个字符
无需判断
加减乘除:
按下后,会记录一个运算,屏幕上的第一个数不变,若直接按运算符,则第一个数默认零
若前面已经有一次运算并且按了等于,则再按运算符时,将上次运算结果作为第一个数字,屏幕上显示的仍是第一次运算结果
若前面有一次运算但没有按等于,则再按运算符时,屏幕上显示第一次运算结果,并将其作为下一次运算的第一个数字
判断:1.需要judge记录运算方式;2.
等于:
若前面有数字和运算符按过,按下后,将屏幕上的数字作为第二个数进行运算,显示运算结果,如果继续按等于,则第二个数始终作为第二个数,进行该运算
如果按了一个数或数和小数点,按等于变成原数,并且如果最后一个字符是零或者小数点,会全去掉(循环)
按下等于号后,再按数字键,开始新一次运算