该计算器是用纯m语言实现的,没有先GUI再callback的形式。
计算器编程中遇到的许多问题:
1.怎么样实现每按一个钮,数字增长一位,并且逐位左移。
2.为了与显示中的计算器保持一致,初始状态是显示0,但是在按下数字之后,初始状态的0应该
被覆盖掉,而不随之左移。
3.现实中的计算器是有
电源启动按钮的,如何
仿真实现。
4.特别要注意的是从显示框中取到的数是字符,不能直接用于数值运算,一定要先用函数
str2num,再进行运算,之后再num2str,从而显示出来结果。
5.当显示位数超过能显示的部分时,应如何处理以保证可读性。
6.最难处理的是加减乘除四则运算,因为他们需要多个操作数,至少两个,所以要多次输入数据
,而且中间还需要点击加减乘除的按钮,时序和数据保存最为重要。加减乘除不仅是对下次运算
的定义,同时也是对之前定义过了之后的运算进行计算,这在我们平时使用过程中可以察觉到。
以加号为例子,在计算器复位之后,比如你先按下数字1,然后按下加号,此时的加号并不对刚
才的输入进行运算,而是定义了当前操作数与下一个操作数的关系,当你再按下数字2后,如果
你按等号,那么它会显示结果3,但是如果你不按等号而是按加号,那么同样得到结果是3,这就
说明,加号不仅定义了下次输入数与当前数值的关系,而且还拥有等号的计算功能。
7.对数字进行正,余弦计算时,我们希望简单易懂,所以输入一个数字我们就把它直接当作角度
来运算,但是在实际理论中不是这样的,所以这也要我们注意。
8.我们常用的计算器上都带有记忆功能键,可为以保存计算的中间变量,为了实现这种功能,也要对它被按下的次数进行记数并且做相应的操作:首次被按下时保存当前显示的数字,之后按下时则不再保存,而是单纯地读出这个保存的数并且显示出来。
9.常见的计算器上会有一个短的减号,对,就是负号,添加上很简单,只要在按键时先把屏幕上的数字保存,再把它变成相反数显示出来就OK.
10.菜单Info中有制作信息,点击可以弹出对话框.
11.增加了进制转换功能和浮点数计算以及显示位数调整.